8.х ОБМЕН Номерациия документов при обмене

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем Yoda, 30 янв 2010.

  1. TopicStarter Overlay
    Yoda
    Offline

    Yoda Опытный в 1С

    Регистрация:
    5 сен 2008
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Привет!
    Установлены 2 почти идентичные базы , обмен документов из первой 3 типа документа, а из второй в первую 4й тип документа.
    Как в первой так и во втророй базе 3 типа документа (счёт, реализация, счет фактура) создаются разными сотрудниками от имени одной организации.
    Как сделать так чтобы во обеих базах была единая номерация документов?

    пока "летают" 2 идеи :
    1) в первой базе в событии "после записи"(или перед записью) документа создаётся ком-соединение со второй и при успешном создании пустого аналога во второй базе берётся его номер и присваивается первому; :unsure:
    2) запретить выставлять документы во второй базе определённого числа (возможно т.к. утверждён порядок номерации в пределах дня);

    Посоветуйте 1й вариант нормально будет работать или есть более удачный механизм ?
  2. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Никак!
    Установите префиксы баз.
  3. TopicStarter Overlay
    Yoda
    Offline

    Yoda Опытный в 1С

    Регистрация:
    5 сен 2008
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Но первый вариант нормально будет работать? (нормальный способ реализации?)
  4. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Работать будет, но будет очень сильно тупить, Вы собрались при каждой записи документа соединяться с другой базой данных, это долго, и ненадежно, к тому же, после получения номера пока Вы записываете документ, другой пользователь может запросить запись нового документа, и в 1 момент у Вас будут записываться два документа с одним номером. Вам нужны эти проблемы?
  5. TopicStarter Overlay
    Yoda
    Offline

    Yoda Опытный в 1С

    Регистрация:
    5 сен 2008
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    Если постоянно "хранить" 1 сом-соединение и каждых из немногочисленных пользователей будет использовать его при при записи,то время торможения сократится?
  6. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    1. А как Вы собираетесь передавать объект СОМ между клиентами, клиент получил ОСМ объект, но передать его не сможет другому клиенту, да и платформа заблокирует соединение, если Вы будете обращаться по нему с нескольких ip адресов, соединение передается для конкретного клиента.
    2. Лучше опишите подробно, в иллюстрациях, в чем проблема, и какой результат Вы хотите получить?
    3. Распределенным базам данных посвящено много дискуссий и теорий, дело в том что нет идеального механизма, есть лишь кое какие решения, которые не позволят Вашей базе работать не адекватно, но эти решения накладывают свой опечаток на требования к распределённым базам.
  7. TopicStarter Overlay
    Yoda
    Offline

    Yoda Опытный в 1С

    Регистрация:
    5 сен 2008
    Сообщения:
    120
    Симпатии:
    0
    Баллы:
    26
    2. Лучше опишите подробно, в иллюстрациях, в чем проблема, и какой результат Вы хотите получить? илюстрации подготовлю. Перед записью документа в переферийной базе в центральной создаётся псевдодокумент для получения номера. При обмене УРИБ в центральнай базе псевдодокумент превратится в реальный.

    В модуле приложения объявил глобальную переменную :

    Код:
    Перем глКомСоединение Экспорт; 
    
    
    
    
    
    
    проверяю на наличие соединеиния при запуске системы
    Код:
        Если РольДоступна(Метаданные.Роли.Менеджер) тогда
    
    
    Если глКомСоединение = Неопределено  тогда
    БДv8 = Новый COMОбъект("V81.COMConnector"); //Application  COMConnector
    
    глКомСоединение = БДv8.Connect("File=""C:МОЁПолная"";Usr=""КомЮзер"";Pwd=""11111"""); 
    
    
    КонецЕсли;
    
    КонецЕсли;
    
    
    
    
    
    
    в модуле документа , в процедуре "ПередЗаписью" добавлен код с целью получения нового номера (создание нового документа в общей базе). Потом документ дозаполнится при одностороннем обмене.
    Код:
            Если ЭтоНовый() тогда
    Если РольДоступна(Метаданные.Роли.Менеджер) тогда
    //Ком = Константы.КОМАгент.Получить();
    #Если клиент и не ВнешнееСоединение Тогда 
    НовыйСчёт = глКомСоединение.Documents.СчетНаОплатуПокупателю.CreateDocument();
    НовыйСчёт.Дата = ЭтотОбъект.Дата;
    НовыйСчёт.записать();
    Сообщить(НовыйСчёт.Номер);
    #КонецЕсли 
    КонецЕсли;
    КонецЕсли;
    
    
    
    
    
    

    А он мне :unsure: :
    Код:
    Ошибка при выполнении обработчика - '{Документ.СчетНаОплатуПокупателю(5107)}: Ошибка при вызове метода контекста (записать): Произошла исключительная ситуация: Операция <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/не')">не выполнена!'</span>
    по причине:
    {Документ.СчетНаОплатуПокупателю(5107)}: Ошибка при вызове метода контекста (записать): Произошла исключительная ситуация: Операция <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/не')">не выполнена!</span>
    
    по причине:
    Произошла исключительная ситуация: Операция <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/не')">не выполнена!</span>
    
    
    
    
    
    Если написать Write()

    Код:
    Ошибка при выполнении обработчика - '{Документ.СчетНаОплатуПокупателю(5107)}: Ошибка при вызове метода контекста (Write): Произошла исключительная ситуация: Конфликт блокировок при выполнении транзакции:'
    по причине:
    Произошла исключительная ситуация: Конфликт блокировок при выполнении транзакции:
    
    
    
    
    
  8. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Это как раз тот момент о котором я Вам и говорил. Данные заблокированы, и запись клиенту запрещена.

Поделиться этой страницей