Как зарегистрировать пропущенную номенклатуру для синхронизации из УТ 11 в БП 3?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Бухгалтерский учет Торговля и дистрибуция
← На главную

При регулярном обмене данными между конфигурациями 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 3 нередко возникает ситуация, когда документы успешно выгружаются, а элементы справочника Номенклатура по разным причинам снимаются с регистрации обмена. В результате в базе-приемнике (БП) в табличных частях накладных и актов появляются строки с битыми ссылками вида <Объект не найден>.

Попытка выгрузить справочник целиком (особенно если объем номенклатуры составляет десятки тысяч позиций) часто приводит к аварийному завершению сеанса из-за нехватки оперативной памяти или превышения времени ожидания (таймаута). Рассмотрим, как точечно и быстро зарегистрировать к обмену только те позиции номенклатуры, которые реально участвовали в движениях за выбранный период или входят в конкретные документы.

Способ 1. Регистрация номенклатуры по движениям за период через запрос

Разберем самый эффективный способ, позволяющий выбрать только те товары, по которым было движение за определенный интервал времени. Для этого воспользуемся типовой обработкой Регистрация изменений для обмена, которая встроена в подсистему синхронизации данных.

  1. Откроем в конфигурации Управление торговлей меню Администрирование → Синхронизация данных → Настройки синхронизации данных.
  2. Выделим нужную настройку обмена с Бухгалтерией предприятия и нажмем кнопку Состав отправляемых данных (или откроем обработку Регистрация изменений для обмена через функции технического специалиста).
  3. В дереве объектов найдем справочник Номенклатура, нажмем по нему правой кнопкой мыши и выберем пункт Зарегистрировать изменения по запросу (или откроем окно ввода произвольного запроса).
  4. В поле текста запроса укажем выборку элементов из регистра накопления, отвечающего за складские движения. Важно присвоить полю имя Ссылка, чтобы механизм платформы смог корректно сопоставить результаты:

ВЫБРАТЬ РАЗЛИЧНЫЕ
    ТоварыНаСкладах.Номенклатура КАК Ссылка
ИЗ
    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
    ТоварыНаСкладах.Период МЕЖДУ НАЧАЛОПЕРИОДА(&НачДата, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонДата, ДЕНЬ)

Установим параметры &НачДата и &КонДата в соответствии с периодом, за который в базе-приемнике были обнаружены пропущенные элементы, и нажмем Выполнить. Выбранные позиции будут добавлены в очередь плана обмена.

Способ 2. Регистрация номенклатуры из конкретного документа

Если пропуски зафиксированы только в отдельных накладных (например, в нескольких реализациях), можно зарегистрировать номенклатуру непосредственно из их табличных частей. Разберем текст запроса для документа реализации товаров и услуг:


ВЫБРАТЬ РАЗЛИЧНЫЕ
    РеализацияТовары.Номенклатура КАК Ссылка
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТовары
ГДЕ
    РеализацияТовары.Ссылка = &Документ

В параметре &Документ указываем конкретный экземпляр документа. Если требуется охватить также услуги, к запросу можно добавить объединение с табличной частью Документ.РеализацияТоваровУслуг.Услуги.

Что происходит со строками <Объект не найден> после догрузки

В платформе 1С ссылка на объект базы данных формируется на основе глобального уникального идентификатора (GUID). В табличной части документа в базе-приемнике уже сохранен GUID отсутствующего элемента. Как только номенклатура с этим же идентификатором поступит из базы-источника и запишется в базу БП:

  1. Строки <Объект не найден> автоматически заменятся на корректные наименования товаров без необходимости ручного редактирования каждого документа.
  2. Поскольку для бухгалтерского учета критически важны счета учета номенклатуры (счет учета, счет доходов, счет расходов), которые подставляются при проведении, рекомендуется выполнить процедуру Групповое перепроведение документов за исправляемый период.

Устранение ошибки «Для уникального идентификатора назначено несколько ссылок»

При синхронизации справочников через универсальный формат XDTO / EnterpriseData можно столкнуться с ошибкой: «Для уникального идентификатора <...> и узла <...> назначено несколько ссылок». Выясним причину ее появления и разберем по шагам порядок устранения:

  1. Причина: В служебном регистре сведений Публичные идентификаторы синхронизируемых объектов базы Бухгалтерия предприятия для одного GUID образовалось несколько сопоставленных записей либо присутствует битая ссылка.
  2. Перейдем в базе БП в меню Функции для технического специалиста (или Все функции) и откроем регистр сведений Публичные идентификаторы синхронизируемых объектов.
  3. Найдем записи по проблемному GUID и узлу обмена с УТ.
  4. Удалим повторяющиеся записи или строки, содержащие значение <Объект не найден>.
  5. Если в справочнике Номенклатура базы БП присутствуют физические дубликаты, предварительно объединим их с помощью типовой обработки Поиск и удаление дублей, после чего повторим синхронизацию.

Рекомендации по выгрузке больших объемов номенклатуры

Если требуется передать существенный массив номенклатуры (от десятков тысяч позиций), избегайте полной регистрации всего справочника за один раз. Разделите выгрузку на порции:

  1. Выполняйте регистрацию по отдельным группам (папкам) справочника через обработку Регистрация изменений для обмена.
  2. Используйте отборы по видам номенклатуры или свойствам на вкладке Правила отправки данных в свойствах подключения синхронизации.
← На главную