Продвинутый курс. Мастер-группа Q&A от 02.08.2011
Представляем серию ответов на вопросы по механизмам обмена данными.
1. Предопределенный узел плана обмена.
При первом открытии плана обмена в пользовательском режиме появляется пустой элемент. В лекции он назван предопределенный. Однако, в стандартных реквизитах поля предопределенный у плана обмена нет.
Кнопки “предопределенные” на закладке “Прочее” тоже нет. Особенности реализации!?
2. Регистрация изменений.
Событие ПриОтправкеДанныхУзлаПодчиненному срабатывает в момент регистрации изменения или в момент формирования сообщения?
Правильно ли я понимаю, что при РИБ для всех объектов будут накапливаться изменения для всех узлов.
В событии ПриОтправкеДанныхУзлаПодчиненному мы можем лишь отказаться от ПОСЫЛКИ. Таким образом “работа” по сбору изменений в такой схеме сделана напрасно. И еще не ясно как в случае отказа от посылки будет “сброшена” регистрация изменения.
3. RLS и выгрузка данных РИБ.
При формировании начального образа я получил такое сообщение:
{mngbase/DataExchangeCreateInitialImage.lf(107)}: Ошибка при вызове метода контекста (СоздатьНачальныйОбраз) ExchangePlans.CreateInitialImage(Node, ConnectionString);по причине:У пользователя недостаточно прав на исполнение операции над базой данных.Разве не должны были быть “пропущены” не разрешенные записи. Я не чувствую разницы между 2 “режимами” RLS “Разрешенные” в запросе и,(даже не знаю как назвать) спец.полем запроса.
4. Квитанция об успешном приеме.
Что возвращает подчиненная БД в качестве “квитанции” об успешном приеме?
При загрузке пакетов с ПОЧИНЕННОГО на ГЛАВНЫЙ я так и не смог отловить подтверждение об успешной загрузке в обработчике ПриПолученииДанныхОтПодчиненного(), ХОТЯ они приходили, т.к. изменения исчезали (проверял через консоль запроса).
5. Главный узел РИБ.
Вы анализируете какой этот узел строчкой
ПланыОбмена.ГлавныйУзел()<>Неопределено
Но ведь один и тот же узел может быть для кого-то главным и для кого-то подчиненным.
И хуже того, у нее может быть много главных узлов.
6. Передача узлов РИБ.
1. Ввел узлы плана обмена Центр – Регламент – Кадры
2. Сделал начальные образы Регламента и Кадров. Сохранил их в отдельные базы.
Регистрация документов и их наборов в узлах проходила по задуманному.
После загрузки пакетов В ПОДЧИНЕННОМ УЗЛЕ в реквизите документа со ссылкой на узел плана обмена стояли БИТЫЕ ССЫЛКИ. Сам план обмена РИБ не выгружается??
7. Конструктор для ссылочных типов.
В синтакс-помощнике в описании конструктора для ПланОбменаСсылка.< Имя плана обмена>(< УникальныйИдентификатор>) рекомендуется использовать второй вариант оператора Новый.
Судя по найденным примерам – в рекомендуемом варианте всегда указывается тип создаваемого значения.
Хотелось бы узнать об этом подробней, чем такой вариант лучше, почему рекомендуется именно он, поиск по синтакс-помощнику выдаёт 13 результатов – это исчерпывающий перечень случаев применения?
Если не активировали токен — посмотрите видео-инструкцию (видео N5)
Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.
Не совсем согласен с ответом на вопрос 2 “И еще не ясно как в случае отказа от посылки будет «сброшена» регистрация изменения?”
По моему, механизм работы платформы по умолчанию (без кодирования) следующий:
1. При записи объекта в таблице регистрации создается запись вида с незаполненным (Null) номером сообщения.
2. При отправке данных подчиненному узлу номер сообщения заполняется значением N, в том числе для объектов с Игнорировать = Истина в ПриОтправкеДанныхПодчиненному.
3. При получении данных от подчиненного квитанция (сообщение) содержит номер принятого. При обработке удаляются все записи регистрации для узла у которых номер сообщения меньше или равен номеру принятого.
П
Удаление неотправленных записей журнала регистрации при получении подтверждения имеет и “негативную сторону” – нельзя “притормозить” отправку, например, до какой-то даты.
Пример: документ “Переоценка” цены устанавливаются датой документа, при приеме сообщения цены сразу выгружаются на POS-терминалы. Хотелось бы приостановить выгрузку “Переоценки”, которая вступает послезавтра, но не выгружать мы можем (Игнорировать = Истина), а вот выгрузка послезавтра ранним утром средствам РИБ невозможна – запись журнала регистрации уже удалена.
Понятно, что можно организовать регистр сведений + регламентное задание + ЗарегистрироватьИзменения()
Да, так и есть.
Спасибо за поправку!