При регулярном обмене данными между конфигурациями 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 3 нередко возникает ситуация, когда документы успешно выгружаются, а элементы справочника Номенклатура по разным причинам снимаются с регистрации обмена. В результате в базе-приемнике (БП) в табличных частях накладных и актов появляются строки с битыми ссылками вида <Объект не найден>.
Попытка выгрузить справочник целиком (особенно если объем номенклатуры составляет десятки тысяч позиций) часто приводит к аварийному завершению сеанса из-за нехватки оперативной памяти или превышения времени ожидания (таймаута). Рассмотрим, как точечно и быстро зарегистрировать к обмену только те позиции номенклатуры, которые реально участвовали в движениях за выбранный период или входят в конкретные документы.
Разберем самый эффективный способ, позволяющий выбрать только те товары, по которым было движение за определенный интервал времени. Для этого воспользуемся типовой обработкой Регистрация изменений для обмена, которая встроена в подсистему синхронизации данных.
Регистрация изменений для обмена через функции технического специалиста).Номенклатура, нажмем по нему правой кнопкой мыши и выберем пункт Зарегистрировать изменения по запросу (или откроем окно ввода произвольного запроса).Ссылка, чтобы механизм платформы смог корректно сопоставить результаты:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ТоварыНаСкладах.Номенклатура КАК Ссылка
ИЗ
РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
ГДЕ
ТоварыНаСкладах.Период МЕЖДУ НАЧАЛОПЕРИОДА(&НачДата, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонДата, ДЕНЬ)
Установим параметры &НачДата и &КонДата в соответствии с периодом, за который в базе-приемнике были обнаружены пропущенные элементы, и нажмем Выполнить. Выбранные позиции будут добавлены в очередь плана обмена.
Если пропуски зафиксированы только в отдельных накладных (например, в нескольких реализациях), можно зарегистрировать номенклатуру непосредственно из их табличных частей. Разберем текст запроса для документа реализации товаров и услуг:
ВЫБРАТЬ РАЗЛИЧНЫЕ
РеализацияТовары.Номенклатура КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТовары
ГДЕ
РеализацияТовары.Ссылка = &Документ
В параметре &Документ указываем конкретный экземпляр документа. Если требуется охватить также услуги, к запросу можно добавить объединение с табличной частью Документ.РеализацияТоваровУслуг.Услуги.
В платформе 1С ссылка на объект базы данных формируется на основе глобального уникального идентификатора (GUID). В табличной части документа в базе-приемнике уже сохранен GUID отсутствующего элемента. Как только номенклатура с этим же идентификатором поступит из базы-источника и запишется в базу БП:
При синхронизации справочников через универсальный формат XDTO / EnterpriseData можно столкнуться с ошибкой: «Для уникального идентификатора <...> и узла <...> назначено несколько ссылок». Выясним причину ее появления и разберем по шагам порядок устранения:
Публичные идентификаторы синхронизируемых объектов базы Бухгалтерия предприятия для одного GUID образовалось несколько сопоставленных записей либо присутствует битая ссылка.Публичные идентификаторы синхронизируемых объектов.<Объект не найден>.Номенклатура базы БП присутствуют физические дубликаты, предварительно объединим их с помощью типовой обработки Поиск и удаление дублей, после чего повторим синхронизацию.Если требуется передать существенный массив номенклатуры (от десятков тысяч позиций), избегайте полной регистрации всего справочника за один раз. Разделите выгрузку на порции:
Регистрация изменений для обмена.