При переносе данных и бухгалтерских операций из конфигурации «Управление производственным предприятием 1.3» (УПП) в «Бухгалтерию предприятия 3.0» (БП 3.0) с помощью конфигурации «Конвертация данных 2.1» разработчики часто сталкиваются с проблемой синхронизации аналитики по подразделениям. Попытка перенести субконто «Подразделения» напрямую приводит к ошибкам или пустой аналитике на счетах затрат.
Разберем причины такого поведения платформы, проанализируем различия в архитектуре двух конфигураций и настроим правила конвертации для корректного переноса данных.
Выясним причину, почему стандартная синхронизация субконто не работает:
ВидыСубконтоХозрасчетные. Подразделение выступает в качестве одного из субконто счета. В БП 3.0 архитектура изменена: подразделение является не субконто, а отдельным измерением регистра бухгалтерии Хозрасчетный — ПодразделениеДт и ПодразделениеКт.Подразделения (управленческие) либо ПодразделенияОрганизаций. В БП 3.0 используется исключительно справочник ПодразделенияОрганизаций, подчиненный справочнику Организации.Рассмотрим порядок выгрузки структуры конфигураций:
При выгрузке метаданных из БП 3.0 с помощью внешней обработки MD83.epf обязательно убедимся, что снят флаг Не выгружать регистры бухгалтерии. Это необходимо для того, чтобы в конфигурации «Конвертация данных» появились измерения ПодразделениеДт и ПодразделениеКт регистра Хозрасчетный.
Создадим правило конвертации объектов (ПКО) для подразделений:
СправочникСсылка.Подразделения (или ПодразделенияОрганизаций), Приемник — СправочникСсылка.ПодразделенияОрганизаций.Наименование и Владелец (Организация).Наименование и Владелец. Это исключит дублирование подразделений с одинаковыми названиями для разных организаций.Проанализируем два способа передачи подразделений в измерения регистра Хозрасчетный при выгрузке проводок документа ОперацияБух.
Способ 1. Выборка через запрос при формировании проводок
Посмотрим на пример текста запроса к таблице движений с субконто регистра Хозрасчетный в УПП (аналогичный алгоритм используется в типовых правилах перехода):
ВЫБОР
КОГДА ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения)
ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт1
КОГДА ХозрасчетныйДвиженияССубконто.ВидСубконтоДт2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения)
ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт2
КОГДА ХозрасчетныйДвиженияССубконто.ВидСубконтоДт3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения)
ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоДт3
ИНАЧЕ НЕОПРЕДЕЛЕНО
КОНЕЦ КАК ПодразделениеДт,
ВЫБОР
КОГДА ХозрасчетныйДвиженияССубконто.ВидСубконтоКт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения)
ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт1
КОГДА ХозрасчетныйДвиженияССубконто.ВидСубконтоКт2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения)
ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт2
КОГДА ХозрасчетныйДвиженияССубконто.ВидСубконтоКт3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения)
ТОГДА ХозрасчетныйДвиженияССубконто.СубконтоКт3
ИНАЧЕ НЕОПРЕДЕЛЕНО
КОНЕЦ КАК ПодразделениеКт
Сформированная таблица передается во ВходящиеДанные набора записей регистра Хозрасчетный документа ОперацияБух.
Способ 2. Заполнение через обработчики ПКС измерений
Если проводки переносятся через коллекцию движений объекта, настроим ПКС для свойств ПодразделениеДт и ПодразделениеКт. В обработчике Перед выгрузкой свойства ПодразделениеДт пропишем:
// Извлекаем значение подразделения из коллекции субконто дебета
Значение = Неопределено;
ВидСубконтоПодразделения = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения;
Если ОбъектКоллекции.СубконтоДт.Свойство(ВидСубконтоПодразделения) Тогда
Значение = ОбъектКоллекции.СубконтоДт[ВидСубконтоПодразделения];
КонецЕсли;
Для свойства ПодразделениеКт настраиваем аналогичный код с обращением к ОбъектКоллекции.СубконтоКт.
Чтобы избежать ошибок при заполнении субконто счета в БП 3.0, необходимо удалить вид субконто «Подразделения» из передаваемой структуры субконто. В обработчике Перед выгрузкой группы свойств (ПКГС) субконто или в обработчике коллекции движений добавим удаление:
ВидСубконтоПодразделения = ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения;
Если ОбъектКоллекции.СубконтоДт.Свойство(ВидСубконтоПодразделения) Тогда
ОбъектКоллекции.СубконтоДт.Удалить(ВидСубконтоПодразделения);
КонецЕсли;
Если ОбъектКоллекции.СубконтоКт.Свойство(ВидСубконтоПодразделения) Тогда
ОбъектКоллекции.СубконтоКт.Удалить(ВидСубконтоПодразделения);
КонецЕсли;
Обратим внимание на настройки целевой базы БП 3.0:
ПодразделениеДт и ПодразделениеКт сохраняются и отображаются в стандартных отчетах (оборотно-сальдовая ведомость, карточка счета) только для тех счетов, у которых в плане счетов установлен признак УчетПоПодразделениям = Истина.