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