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

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

При настройке обмена данными между конфигурациями 1С с использованием «Конвертации данных 2.1» (КД 2.1) специалисты часто сталкиваются с ситуацией, когда после загрузки документа Поступление на расчетный счет в базе-приемнике в проводках по счету 62.02 (или 60.02) вместо ожидаемого аванса «привязывается» случайный или очень старый документ реализации. Проанализируем, почему это происходит и как настроить правила обмена так, чтобы исключить подобные ошибки.

Выясним причину: почему подставляется реализация прошлых лет?

В типовых конфигурациях 1С (например, «Бухгалтерия предприятия 3.0», «ERP», «Комплексная автоматизация») логика работы расчетных документов завязана на реквизит СпособПогашенияЗадолженности в табличной части РасшифровкаПлатежа. Если при переносе данных этот реквизит не заполнен или в нем установлено значение Автоматически, то при проведении документа в базе-приемнике система запускает стандартный механизм поиска задолженности.

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

Разберем по шагам: почему табличная часть «Расшифровка платежа» может быть не видна?

Часто программисты не могут сразу найти нужный реквизит в интерфейсе программы. Рассмотрим причины, по которым табличная часть РасшифровкаПлатежа скрыта:

  1. Режим редактирования «Сводно»: В современных конфигурациях форма документа может работать в упрощенном режиме, где все данные (счет расчетов, договор, сумма) отображаются в шапке документа. Программно же данные все равно записываются в первую строку табличной части. Чтобы увидеть таблицу, нужно переключить режим расчетов в положение «Списком».
  2. Настройки договора: Если в договоре с контрагентом указано «Вести расчеты: по договору в целом», детализация до документов может скрываться или вестись автоматически.

Для корректной настройки в КД 2.1 нам важно понимать, что даже если в интерфейсе мы видим одну строку, в правилах конвертации (ПКО) мы должны работать именно с табличной частью.

Решение 1: Настройка ПКС для табличной части в Конвертации данных 2.1

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

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


// Устанавливаем способ погашения задолженности в значение "Не погашать"
// Это позволит избежать автоматического зачета старых долгов в приемнике
Значение = "НеПогашать";

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

Решение 2: Использование обработчика «После загрузки» в базе-приемнике

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


// Проверяем наличие строк в расшифровке платежа
Если Объект.РасшифровкаПлатежа.Количество() > 0 Тогда
    Для Каждого СтрокаТЧ Из Объект.РасшифровкаПлатежа Цикл
        // Устанавливаем режим, при котором аванс не будет распределяться на старые реализации
        СтрокаТЧ.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.НеПогашать;
        
        // Если необходимо, чтобы субконто "Документы расчетов" было пустым 
        // (тогда в проводках по 62.02 подставится сам этот документ)
        СтрокаТЧ.ДокументРасчетов = Неопределено;
    КонецЦикла;
КонецЕсли;

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

Анализируем влияние режима «Загрузка = Истина»

Посмотрим на ситуацию со стороны системных механизмов 1С. Когда документ загружается через КД 2.1, часто устанавливается флаг Объект.ОбменДанными.Загрузка = Истина;. Это отключает большинство типовых проверок и автоматических заполнений при записи объекта. Однако, если после загрузки документ проводится (вручную или программно), флаг Загрузка уже не действует в процедуре ОбработкаПроведения.

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

Проблема субконто 3 на счете 62.02

Разберем специфику работы счета 62.02 «Расчеты по авансам полученным». Третьим субконто на этом счете обычно выступает Документы расчетов с контрагентами.

  1. Если в табличной части СпособПогашенияЗадолженности стоит ПоДокументу, а сам ДокументРасчетов не заполнен, система при проведении автоматически подставляет в проводку ссылку на этот же самый документ. Это и создает корректный аванс.
  2. Если же в табличной части остается Автоматически, система затирает пустую ссылку в субконто найденной старой реализацией.

Таким образом, для избавления от реализации 2021 года, мы должны либо выбрать НеПогашать, либо ПоДокументу при пустом значении документа расчетов.

Итоги настройки

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

← На главную