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