Тсд для 1с как работает

Обновлено: 06.07.2024

Эта часть появилась после того, как я начал полноценную реализацию. После боевой эксплуатации, появилась потребность изменить структуру обмена данными. Оказалось очень тяжело вводить ТСД в работу. В качестве ПО была выбрана «1С мобильная платформа», т.к. Kotlin давался очень тяжело. В этой части я расскажу о том как был реализован обмен изначально, и предоставлю код на примере одного справочника как на стороне сервера, так и на стороне клиента.

1. Общее описание алгоритма обмена.

На стороне сервера используются планы обмена с автоматической регистрацией изменений. Практика показала, что это наименее затратный способ с точки зрения программирования. На стороне ТСД в каждом справочнике, документе был добавлен реквизит ПризнакОбновления , в регистрах добавлен реквизит с таким же наименованием.

Сам обмен теперь разнесен на две стадии.

  1. Получаем новые данные, фиксируем признак обновления;
  2. Отправляем подтверждение, что данные получены. При положительном ответе, убираем признак обновления;

Для облегчения ввода ТСД в работу появился справочник с предопределенными значениями, для каждого Узла Обмена(Код ТСД) .

2. Как было реализовано до.

Запрос инициировал ТСД. Каждые 15 секунд шел запрос на новые данные, по каждому справочнику, документу, регистру. Данные забираются пачками по 100 элементов. Что накладывало свои ограничения. Если выполнить регистрацию для всего узла, то данные грузились порядка 30 минут. Т.к. в текущей реализации не был предусмотрен механизм оповещения ТСД о наличии еще одной пачки.

После того как количество справочников стало больше пяти, вырисовалась печальная картина: Каждое действие на стороне сервера однотипно. Запрос данных разный. Но вот фиксация изменений для справочников одна и та же. Разберем на примере ОКЕИ. Если вкратце, то


Тут надо выделить вот эту функцию УдалитьРегистрациюСправочникиИзмененныеДляУзла

В этой статье рассмотрена реализация в лоб. Не делайте так, если только не требуется быстро собрать прототип, и проверить на боевых условиях.

Читайте также: