Как перенести не предопределенные счета учета при конвертации данных из УПП в БП 3.0?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Бухгалтерский учет Промышленность, строительство и АПК
← На главную

При переносе данных между конфигурациями УПП 1.3 и БП 3.0 часто возникает задача переноса счетов учета, созданных бухгалтерами вручную. В отличие от стандартных предопределенных счетов, у таких объектов нет уникального имени предопределенного элемента, что приводит к ошибкам при загрузке. Рассмотрим, как эффективно решить эту проблему.

Метод 1: Настройка полей поиска в ПКО

Самый простой и правильный способ для справочника ПланСчетов — это отказаться от поиска по внутреннему идентификатору и использовать бизнес-ключ, которым является Код. Для этого выполним следующие действия:

  1. Откроем Конвертацию данных 2.1.
  2. Перейдем в Правила конвертации объектов (ПКО) для плана счетов.
  3. На вкладке Поля поиска явно укажем, что поиск должен осуществляться по реквизиту Код.
  4. Убедимся, что стандартный поиск по идентификатору отключен.

Пример настройки логики поиска в обработчике:


// Вкладка Поля поиска
СтрокаИменСвойствПоиска = "Код";

Этот подход позволяет системе 1С автоматически находить соответствующие счета в базе приемнике, ориентируясь на их коды, при условии, что они идентичны в обеих базах.

Метод 2: Использование параметров при выгрузке

Если счета в базе источнике и приемнике имеют разные коды или требуется сложная логика подмены, воспользуемся передачей данных через параметры в ПКС (правилах конвертации свойств). Рассмотрим этот алгоритм по шагам:

  1. В правиле ПКС для реквизита документа, содержащего счет, запишем значение в параметр.
  2. В ПКО документа на стороне приемника в обработчике Перед загрузкой или После загрузки прочитаем этот параметр.
  3. Произведем поиск нужного счета в базе БП 3.0 и присвоим его реквизиту объекта.

Пример реализации:


// В ПКС передаем данные в параметр
Параметры.Вставить("СчетДляПереноса", Источник.СчетУчета);

// В ПКО документа используем полученное значение
Объект.СчетУчета = ПланыСчетов.Хозрасчетный.НайтиПоКоду(Параметры.СчетДляПереноса.Код);

Решение проблемы проведения документа

Часто после успешного переноса счета документ отказывается проводиться. Это связано с тем, что в БП 3.0 проверки заполнения субконто значительно строже, чем в УПП. Если вы столкнулись с тем, что документ не проводится автоматически, необходимо выполнить проведение программно после завершения загрузки всех объектов.

Используем следующий подход в обработчике После загрузки:


Если НЕ Объект.Проведен Тогда
    Объект.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;

Важно: Перед вызовом проведения обязательно убедитесь, что все аналитики (субконто) заполнены корректно. Если аналитика передана некорректно, проведение не выполнится, и система выдаст ошибку. В таких случаях рекомендуем проверять состав субконто для каждого конкретного счета перед записью объекта.

Рекомендации по поддержке правил

Помните, что конфигурация БП 3.0 обновляется достаточно часто, что может приводить к изменению состава субконто или метаданных. Мы рекомендуем:

Применяя данные методы, вы сможете настроить надежный перенос любых бухгалтерских документов вне зависимости от сложности планов счетов.

← На главную