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

Программист 1С v8.3 (Управляемые формы) Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

Решение проблемы поиска не предопределенных счетов

Если счета не являются предопределенными, Конвертация данных не может сопоставить их автоматически. Первое, что нам нужно сделать — это обеспечить поиск по ключевым полям, таким как Код.

  1. Перейдите в правила конвертации объектов (ПКО) для плана счетов.
  2. Убедитесь, что для свойства Код установлен флаг Поиск.
  3. Если коды счетов в УПП и БП 3.0 совпадают, этого часто бывает достаточно для корректного сопоставления.

Однако, если прямой поиск по коду невозможен или требуется более гибкая логика выбора (например, сложная зависимость от условий документа), используйте механизм параметров. Автор темы предложил следующее решение:

В правиле конвертации свойств (ПКС) документа мы можем передать нужный счет через параметр:


// В событии ПослеВыгрузки (или соответствующем обработчике ПКС)
Параметры.Вставить("НужныйСчетДляДокумента", Источник.СчетУчета);

Затем, в ПКС объекта или в обработчике ПередЗагрузкой, мы используем этот параметр для поиска счета в базе-приемнике:


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

Решение проблем с проведением документов после загрузки

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

Разберем способы исправления ситуации:

1. Отложенное проведение: Не пытайтесь проводить документы непосредственно в процессе загрузки. Установите РежимЗаписи = "Запись". После того как все данные будут перенесены в БП 3.0, выполните групповое перепроведение документов через стандартную обработку ГрупповоеПерепроведениеДокументов.

2. Программное проведение: Если документ требует обязательного проведения после загрузки, выполните его программно в обработчике ПослеЗагрузки:


// В событии ПослеЗагрузки объекта
ДокументОбъект = Объект.ПолучитьОбъект();
Если ДокументОбъект <> Неопределено Тогда
    Попытка
        ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
        // Логирование ошибки для анализа
        ЗаписьЖурналаРегистрации("Ошибка переноса", УровеньЖурналаРегистрации.Ошибка,,, ОписаниеОписаниеОшибки());
    КонецПопытки;
КонецЕсли;

Важные рекомендации для интеграции

Чтобы минимизировать проблемы при переносе данных, следуйте нашим советам:

Использование таких подходов позволит вам перенести документы из УПП в БП 3.0 максимально корректно, сохранив целостность бухгалтерских данных и обеспечив возможность полноценной работы с документами в новой учетной системе.

← На главную