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