Как заполнить счета учета при переносе документов в 1С:Бухгалтерию 2.0 через Конвертацию данных и избежать перезаписи документов?

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

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

Причина ошибки «Метод объекта не обнаружен (ЗаполнитьСчетаУчетаВТабЧасти)»

Проанализируем контекст исполнения кода в базе-приемнике. В типовых решениях на обычных формах (включая «Бухгалтерию предприятия 2.0») логика заполнения табличных частей вынесена в модуль объекта документа, а не в модуль менеджера. Модули менеджеров для документов поступления или реализации в этой редакции могут быть пустыми.

Если в обработчике вызывается обращение через менеджер объекта вида Документы.ПоступлениеТоваровУслуг.ЗаполнитьСчетаУчетаВТабЧасти(...), платформа генерирует исключение, так как в менеджере такой экспортной процедуры нет.

Вызов необходимо выполнять непосредственно у контекста загружаемого объекта. Для этого используем обработчик «После загрузки» в ПКО (Правиле конвертации объектов) документа.


// Обработчик "После загрузки" в ПКО документа ПоступлениеТоваровУслуг
Объект.ЗаполнитьСчетаУчетаВТабЧасти(
    Объект.Товары,
    "Товары",
    Истина,
    Объект.ОтражатьВНалоговомУчете
);

Обязательные условия для корректной подстановки счетов

Рассмотрим, как именно отрабатывает процедура ЗаполнитьСчетаУчетаВТабЧасти. Она берет настройки по правилам регистра сведений «Счета учета номенклатуры». Чтобы механизм успешно заполнил счета, необходимо соблюсти несколько условий:

  1. Заполненность реквизитов шапки: процедура считывает организацию, склад и вид операции документа. Если эти реквизиты в объекте на момент вызова не заполнены или переданы пустыми ссылками, процедура не найдет подходящую запись в регистре и оставит счета учета пустыми.
  2. Сопоставление номенклатуры: передаваемая номенклатура должна иметь корректно заполненный вид номенклатуры (товар, услуга, материал) или для конкретной позиции должна быть создана индивидуальная запись в регистре счетов учета.
  3. Счета взаиморасчетов с контрагентами: процедура табличной части заполняет только счета номенклатуры и НДС (например, 41.01 и 19.03). Счета расчетов в шапке (СчетУчетаРасчетовСКонтрагентом, СчетУчетаРасчетовПоАвансам) заполняются отдельно — на основании регистра «Счета учета расчетов с контрагентами».

Почему при загрузке нескольких документов в базе появляется только один?

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

Разберем основные причины такого поведения правил обмена:

  1. Флаг «Искать по внутреннему идентификатору»:

    Если в ПКО включена эта опция, обработка загрузки в первую очередь ищет документ по его UUID (GUID). Если перенос идет из самописной конфигурации, где идентификаторы формировались программно, копировались или отсутствовали, все документы могут иметь одинаковый внутренний идентификатор. В результате каждый последующий документ перезаписывает предыдущий.

    Решение: снимите в ПКО флаг «Искать по внутреннему идентификатору» и настройте поиск строго по полям поиска.

  2. Настройка полей поиска (Номер, Дата):

    Проверьте флаги поиска в ПКС для реквизитов Номер и Дата. В БП 2.0 нумерация документов имеет периодичность «В пределах года». Если поиск по дате настроен некорректно (например, не учитывается год или дата отсекается до пустой), документы с совпадающими или непереданными номерами сопоставляются в одну сущность.

  3. Разница префиксов и длины номера:

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

  4. Опция «Не замещать существующие объекты при загрузке»:

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

Алгоритм правильной настройки ПКО документа

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

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