Как перенести документы «ОперацияБух» и проводки регистра бухгалтерии через Конвертацию данных 2.1?

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

При переносе данных между идентичными или схожими конфигурациями (например, «Бухгалтерия государственного учреждения 2.0» или «Бухгалтерия предприятия 3.0») разработчики часто сталкиваются с ситуацией, когда обычные документы переносятся и проводятся успешно, а документы ручных операций (ОперацияБух, КорректировкаРегистров) загружаются «пустыми» — без записей в регистрах и бухгалтерских проводок. Кроме того, при некорректных настройках правил сопоставления может возникнуть задвоение предопределенных счетов плана счетов.

Разберем подробно причины такого поведения платформы и пошаговые методы переноса движений ручных операций.

В чем специфика документа «ОперацияБух»?

Проанализируем архитектуру документа. В отличие от типовых первичных документов (таких как «Поступление товаров и услуг» или «Реализация»), у ручной бухгалтерской операции в свойствах метаданных режим проведения установлен в значение Запретить. Это означает следующее:

  1. У документа отсутствует процедура ОбработкаПроведения, формирующая проводки автоматически при проведении.
  2. Все проводки хранятся непосредственно в наборе записей регистра бухгалтерии (например, ЖурналПроводокЕПСБУ или Хозрасчетный) и записываются вместе с документом.
  3. Если в правилах обмена наборы записей не выгружаются явным образом или обработка загрузки отключает запись движений, документ загружается только с реквизитами шапки, а таблица проводок остается пустой.

Шаг 1. Настройка сопоставления плана счетов без задвоения

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

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

Шаг 2. Выбор правильной обработки обмена данными

Выясним частую причину потери проводок: использование несовместимой версии внешней обработки обмена. В некоторых версиях обработки V8Exchan83.epf из комплекта поставки «Конвертации данных» в коде загрузки заблокирована или отключена запись наборов движений для документов с запретом проведения.

Для гарантированного переноса проводок выполним следующие действия:

  1. Вместо внешней обработки V8Exchan83.epf используем встроенную в конфигурацию обработку Универсальный обмен данными в формате XML.
  2. Если используется внешняя обработка, проверим наличие в ней процедур очистки и записи движений. Встроенные в типовые конфигурации (БГУ, БП, ERP) механизмы БСП корректно обрабатывают наборы записей непроводящихся документов.

Шаг 3. Настройка ПКО документа «ОперацияБух» и явная запись движений

Рассмотрим структуру ПКО документа. В составе ПКО ручной операции должна присутствовать группа свойств (ПКГС) для соответствующего регистра бухгалтерии (например, ЖурналПроводокЕПСБУ):

  1. Убедимся, что при выгрузке метаданных через обработку MD83Exp.epf был снят флаг Не выгружать движения документов.
  2. В ПКО документа ОперацияБух проверим наличие ПКГС для регистра бухгалтерии с сопоставлением всех необходимых реквизитов (СчетДт, СчетКт, СубконтоДт, СубконтоКт, Сумма, Количество и др.).
  3. Чтобы гарантировать сохранение проводок независимо от логики обработки загрузки, добавим код в обработчик После загрузки правила конвертации документа:

// Принудительно устанавливаем флаг записи для набора движений
Объект.Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Попытка
    Объект.Движения.ЖурналПроводокЕПСБУ.Записать();
Исключение
    Сообщить("Ошибка записи движений операции: " + ОписаниеОшибки());
КонецПопытки;

Шаг 4. Очистка несовпадающих видов субконто

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


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

Объект.Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Объект.Движения.ЖурналПроводокЕПСБУ.Записать();

Альтернативный вариант: перенос через ПVD регистра бухгалтерии

Если в сложных правилах типовой механизм ПКГС документа продолжает давать сбои, применим альтернативную схему — перенос от регистра к документу:

  1. Создаем ПВД (Правило выгрузки данных) непосредственно для регистра бухгалтерии ЖурналПроводокЕПСБУ.
  2. В обработчике Перед обработкой правила выгрузки устанавливаем отбор по типу регистратора:
    
    Отбор = Новый Структура("Регистратор");
    // Накладываем условие выгрузки только записей ручных операций
    
  3. В этом случае платформа выгружает напрямую строки регистра, а сам документ-регистратор создается автоматически по правилу конвертации ссылки.
← На главную