Как перенести несколько разнородных документов из 1С 8.3 в один документ 1С 7.7 через Конвертацию данных 2.1?

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

При переносе данных между платформой 1С:Предприятие 8.3 и устаревшими конфигурациями 1С:Предприятие 7.7 разработчики часто сталкиваются с различием в объектных моделях. Классический пример — учет безналичных денежных средств. В современных конфигурациях 8.3 каждая банковская операция представлена отдельным документом (ПоступлениеБезналичныхДенежныхСредств и СписаниеБезналичныхДенежныхСредств), в то время как в типовых конфигурациях 7.7 формируется один сводный многострочный документ Выписка за день по конкретному расчетному счету.

Разберем основные варианты реализации такой конвертации в конфигурации «Конвертация данных 2.1» (КД 2.1) и определим наиболее надежные алгоритмы переноса.

Вариант 1. Предварительная группировка в источнике через ПВД с произвольным алгоритмом (Рекомендуемый)

Проанализируем наиболее прозрачный способ. Чтобы не перегружать логику загрузки в 7.7, сгруппируем данные еще на этапе выгрузки из базы 8.3 в одном Правиле выгрузки данных (ПВД).

Алгоритм реализуется по следующим шагам:

  1. Создаем одно ПВД с типом выгрузки Произвольный алгоритм.
  2. В обработчике события ПередОбработкойПравила выполняем запрос к базе-источнику 8.3, выбирая движения по документам поступления и списания безналичных ДС за период выгрузки.
  3. Группируем результаты запроса по трем ключевым реквизитам: Организация, БанковскийСчет и НачалоДня(Дата).
  4. Для каждого уникального дня и счета формируем структуру шапки документа выписки, куда вкладываем таблицу значений со строками платежей (приход/расход, сумма, корреспондирующий счет, аналитика субконто, статья ДДС).
  5. Передаем сформированную структуру в выгрузку с помощью специализированной функции: ВыгрузитьПоПравилу(СтруктураВыписки, , , , "ВыпискаБанка");
  6. В Правиле конвертации объектов (ПКО) с именем ВыпискаБанка оставляем объект-источник пустым, а в качестве объекта-приемника указываем документ Выписка базы 7.7. Заполнение строк настраиваем через Правила конвертации группы свойств (ПКГС).

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

Вариант 2. Раздельная выгрузка и объединение на стороне приемника (2 ПВД / 1 ПКО)

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

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

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

Вариант 3. Выгрузка «Один к одному» (2 ПВД / 2 ПКО)

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

Этот способ прост в реализации и отладке, однако существенно увеличивает количество документов в базе 7.7 и может приводить к некорректным итогам в типовых отчетах и формах выписки.

Технические особенности выгрузки в 1С 7.7

Обратим внимание на критические отличия платформы 7.7, о которых необходимо помнить при написании правил:

  1. Аналитика плана счетов: В 7.7 субконто не хранятся универсальной коллекцией, как в 8.3. Они привязаны к жестко типизированным реквизитам строки: Субконто1, Субконто2, Субконто3. Соответствие видов субконто нужно передавать с учетом конкретного плана счетов 7.7.
  2. Пересчет итогов документа: Шапка документа Выписка в 7.7 содержит суммовые реквизиты прихода, расхода и остатков. При пакетной загрузке через КД 2.1 эти реквизиты необходимо либо рассчитывать в обработчике ПослеЗагрузки, либо вызывать типовую процедуру пересчета итогов модуля документа 7.7.
← На главную