При переносе данных между базами 1С с помощью конфигурации «Конвертация данных 2.0» часто возникает необходимость сформировать документы ввода начальных остатков в приемнике на основе остатков по регистрам источника. В этом случае физического документа-источника в исходной базе не существует, поэтому правила обмена выгружаются по произвольному алгоритму. Рассмотрим подробно, как правильно настроить правила конвертации объектов (ПКО) и правила выгрузки данных (ПВД) для такой задачи, а также разберем типичные ошибки, из-за которых возникают пустые ссылки или не заполняются реквизиты.
Когда выгрузка происходит по произвольному запросу к остаткам, нам необходимо передать сформированную Таблицу Значений в документ-приемник. Проанализируем основной алгоритм передачи данных:
ПередВыгрузкой создается и заполняется структура ИсходящиеДанные. В нее помещается Таблица Значений с остатками товаров, сумм и других показателей.
// Пример заполнения в обработчике "Перед выгрузкой"
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("ТаблицаТовары", ТЗОстатки);
ИсходящиеДанные.Вставить("Организация", ОрганизацияСсылка);
ИсходящиеДанные.Вставить("Дата", ДатаОстатков);
Товары), переходим в обработчик «Перед обработкой». В этом обработчике связываем переданную таблицу с переменной КоллекцияОбъектов:
КоллекцияОбъектов = ВходящиеДанные.ТаблицаТовары;
Номенклатура, Количество, Сумма и т.д.), обязательно устанавливаем флаг «Получать из входящих данных». Без этой настройки конвертация попытается прочитать свойства из несуществующего объекта-источника, и колонки в приемнике останутся пустыми.Выясним причину, почему после выгрузки документы могут создаваться с некорректной ссылкой, перезаписывать друг друга или не отображаться в списках базы-приемника:
КлючВыгружаемыхДанных: При переносе без объекта-источника (когда Источник = Неопределено) платформа КД 2.0 не может автоматически вычислить УИД (GUID) создаваемого документа. Если не задать КлючВыгружаемыхДанных явно на основе комбинации реквизитов (например, дата + организация + вид остатков), выгруженные объекты будут перезаписывать друг друга или создавать битые ссылки.Дата, Номер и Организация). Также убедитесь, что эти реквизиты передаются во ВходящиеДанные.ПослеЗагрузки ПКО документа рекомендуется проверить заполненность ключевых полей и при необходимости явно вызвать метод записи документа.Разберем еще одну распространенную проблему: когда документ загружается, но колонки с характеристиками или сериями номенклатуры остаются незаполненными.
Часто имена реквизитов в метаданных источника и приемника различаются. Например, в типовых конфигурациях или справочниках характеристики могут называться ХарактеристикаНоменклатуры, а в документе ввода остатков приемника реквизит называется просто Характеристика. Аналогично с сериями: СерияНоменклатуры против Серия. Обязательно проверяйте точные имена реквизитов приемника в ПКС и настраивайте правила конвертации для них соответствующим образом.
Если характеристики выгружаются как подчиненные справочники через произвольные данные, в ПКО характеристики необходимо также передавать ссылку на номенклатуру-владельца во ВходящиеДанные, чтобы элемент корректно записался с заполнением реквизита Владелец.