При переносе данных между платформой 1С:Предприятие 8.3 и устаревшими конфигурациями 1С:Предприятие 7.7 разработчики часто сталкиваются с различием в объектных моделях. Классический пример — учет безналичных денежных средств. В современных конфигурациях 8.3 каждая банковская операция представлена отдельным документом (ПоступлениеБезналичныхДенежныхСредств и СписаниеБезналичныхДенежныхСредств), в то время как в типовых конфигурациях 7.7 формируется один сводный многострочный документ Выписка за день по конкретному расчетному счету.
Разберем основные варианты реализации такой конвертации в конфигурации «Конвертация данных 2.1» (КД 2.1) и определим наиболее надежные алгоритмы переноса.
Проанализируем наиболее прозрачный способ. Чтобы не перегружать логику загрузки в 7.7, сгруппируем данные еще на этапе выгрузки из базы 8.3 в одном Правиле выгрузки данных (ПВД).
Алгоритм реализуется по следующим шагам:
Произвольный алгоритм.ПередОбработкойПравила выполняем запрос к базе-источнику 8.3, выбирая движения по документам поступления и списания безналичных ДС за период выгрузки.Организация, БанковскийСчет и НачалоДня(Дата).
ВыгрузитьПоПравилу(СтруктураВыписки, , , , "ВыпискаБанка");
ВыпискаБанка оставляем объект-источник пустым, а в качестве объекта-приемника указываем документ Выписка базы 7.7. Заполнение строк настраиваем через Правила конвертации группы свойств (ПКГС).Преимущества метода: в приемнике создается строго один документ на расчетный счет за день, исключаются конфликты номеров, блокировки и дублирование строк при повторной загрузке.
Рассмотрим альтернативный способ, когда выгрузка настраивается стандартными средствами для каждого типа документа, а их сведение в один объект 7.7 происходит во время загрузки.
Выписка 7.7.Ограничение метода: при повторном сеансе обмена за тот же период строки могут дублироваться, если не предусмотреть алгоритм предварительной очистки выписок или сверки уникальных идентификаторов строк.
Если специфика учета и доработки в базе 7.7 допускают наличие нескольких документов выписки за один банковский день, можно настроить два отдельных ПКО (для поступления и списания). При этом каждый документ 8.3 сформирует отдельный документ 7.7 с единственной строкой в табличной части.
Этот способ прост в реализации и отладке, однако существенно увеличивает количество документов в базе 7.7 и может приводить к некорректным итогам в типовых отчетах и формах выписки.
Обратим внимание на критические отличия платформы 7.7, о которых необходимо помнить при написании правил:
Субконто1, Субконто2, Субконто3. Соответствие видов субконто нужно передавать с учетом конкретного плана счетов 7.7.Выписка в 7.7 содержит суммовые реквизиты прихода, расхода и остатков. При пакетной загрузке через КД 2.1 эти реквизиты необходимо либо рассчитывать в обработчике ПослеЗагрузки, либо вызывать типовую процедуру пересчета итогов модуля документа 7.7.