Конвертация данных из 1С 8.3 в 7.7 (версия КД 2.1). Перенос данных из 8.3 в 7.7. Создание в современной 1С 8.3 XML в формате КД2. Инструкции и примеры переноса данных из любой современной 1С 8.3 в устаревшую конфигурацию 1С 7.7, через Конвертацию данных 2









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

У Вас получится обычный файл обмена КД2 в формате XML  для загрузки в 7.7 и модуль обмена, который нужно вcтавить в пустую обработку "V77Imp.ert". Краткий графический экскурс вместо вступления. Результат сохраненный файл обмена данными "ПравилаОбменаДанными.xml":

<ПравилаОбмена>
<ВерсияФормата РежимСовместимости="РежимСовместимостиСБСП20">2.01</ВерсияФормата>
<Ид>294df6d9-6dfe-4e6c-aeef-a0af04fc89cc    </Ид>
<Наименование>УправлениеПредприятием --&gt; Комплексная</Наименование>
<ДатаВремяСоздания>2024-10-17T08:32:25</ДатаВремяСоздания>
<Источник ВерсияПлатформы="8.0" ВерсияКонфигурации="2.4.8.63" СинонимКонфигурации="УправлениеПредприятием">Управление предприятием</Источник>
<Приемник ВерсияПлатформы="7.7" ВерсияКонфигурации="7.70.424" СинонимКонфигурации="Комплексная">Комплексная конфигурация, редакция 4.2</Приемник>
<ПередЗагрузкойДанных>Параметры = СоздатьОбъект("СписокЗначений");</ПередЗагрузкойДанных>
<ПослеЗагрузкиДанных>Для Сч = 1 По Параметры.РазмерСписка() Цикл
Док = Параметры.ПолучитьЗначение(Сч);
Док.Провести();
КонецЦикла;
</ПослеЗагрузкиДанных>
<Параметры/>
<Обработки/>
<ПравилаКонвертацииОбъектов>
<Группа>
<Код>Документы</Код>
<Наименование>Документы</Наименование>
<Порядок>50</Порядок>
<Правило>
<Код>ПКО</Код>
<Наименование>Документ: Приходный кассовый ордер</Наименование>
<Порядок>50</Порядок>
<ПослеЗагрузки>Объект.ЮрЛицо = Объект.Фирма.ЮрЛицо;
Объект.Автор = глПользователь;
Объект.Валюта = глРубли;
СпрДвиженияДенежныхСредств = СоздатьОбъект("Справочник.ДвиженияДенежныхСредств");
СпрДвиженияДенежныхСредств.НайтиПоКоду("00010");
Объект.ДвижениеДенежныхСредств = СпрДвиженияДенежныхСредств.ТекущийЭлемент();
Объект.НазначитьТип("Счет", "Счет.Основной");
Объект.Счет = СчетПоКоду("90.1.2");
Параметры.ДобавитьЗначение(Объект);
</ПослеЗагрузки>
<Источник>ДокументСсылка.ПриходныйКассовыйОрдер</Источник>
<Приемник>ДокументСсылка.ПКО</Приемник>
<Свойства>
<Свойство Поиск="true">
<Код>7</Код>
<Наименование>Дата --&gt; ДатаДок</Наименование>
<Порядок>50</Порядок>
<Источник Имя="Дата" Вид="Свойство" Тип="Дата"/>
<Приемник Имя="ДатаДок" Вид="Свойство" Тип="Дата"/>
</Свойство>
...

Пример файла модуля загрузки:

Теперь подробнее по шагам, как выполнить конвертацию данных из 8.3 в 7.7 (версия КД 2.1). 

1) Заходим в справочник конвертаций.

2) Создаем группу правил конвертации (очень полезно в конвертации пользоваться группами).

3) Заходим в эту группу и создаем новый элемент справочника конвертаций, в качестве источника указываем конфигурацию 8.3 и в качестве применика — конфигурацию 7.7.

4) При создании обработчиков код модулей пишем на встроенном языке 1С: Предприятие 7.7.

5) Выгрузка правил и модуля обмена данными для загрузки в 1С 7.7. В последней версии конвертации есть ошибка, приводящая к неработоспособности модуля обработки загрузки данных на платформе 7.7 (ошибка есть в конвертации 2.1.8.2, обработка ВыгрузкаКонвертации, макет ПроцедурыИФункцииМодуляЗагрузки, строка 2714 "Если ИдРеквизита <> "ДатаДок" ИЛИ ИдРеквизита <> "ПометкаУдаления" Тогда"), она исправлена в //infostart.ru/public/267853/

При нажатии на кнопку "Сохранить правила" надо указать путь для выгрузки правил обмена и текстового файла модуля загрузки в 7.7

6) Модуль загрузки нужно вcтавить в пустую обработку "V77Imp.ert" из комплекта поставки "Конвертации данных 2.1", которая затем открывается в 1С 7.7 приемнике и загружает данные по нашим правилам.

Протестировано в "Конвертация данных, редакция 2.1 (2.1.8.2)" для загрузки в "комплексную конфигурацию 4.2 (7.70.424), версия платформы 7.70.027)".

У меня есть еще статья о том, как облегчить отладку правил конвертации на стороне 1С 7.7 "Доработка конвертации данных КД2 (версии 2.1). Расширенная диагностическая информация при выгрузке по правилам из 1С 7.7 и при загрузке в 1С 7.7" //infostart.ru/public/1137213/

Здесь, на Инфостарт, есть примеры переносов данных из 8.3 в 7.7

простой пример "КД2 из 8.3 в 7.7. Перенос кассовых документов ПКО и РКО из Рарус Торговый комплекс (аналог УТ 10.3) в Комплексную 7.7. Пример переноса данных из 1С 8.3 в 7.7." //infostart.ru/public/1136626/

и более сложный "Универсальный обмен данными в формате XML" + правила обмена: УПП 1.3 -> 77 АТС;…" //infostart.ru/public/203296/

Прилагаю краткую ознакомительную информацию по конфигурации "Конвертация Данных 2" относящуюся к тем временам, когда переносы из 8.3 в 7.7 еще не были забыты и часто использовались, на сайте "Скрипт-кодинг", автор обзора Людоговский Александр https://www.script-coding.com/v8/v8_Convert.html

Конфигурация "Конвертация данных 2.0" для 1С:Предприятия v8.0

Порядок использования

Конфигурация "Конвертация данных 2.0" для 1С:Предприятия v8.0, поставляемая на дисках ИТС, является средством для организации конвертации данных между любыми конфигурациями, функционирующими как на платформе "1С:Предприятие 7.7", так и на платформе "1С:Предприятии 8.0". Конфигурация обеспечивает очень высокую скорость разработки средств обмена данными в сочетании с большой гибкостью настройки таких средств.

Порядок использования конфигурации:

  1. С помощью специальных внешних обработок, поставляемых вместе с конфигурацией, осуществляется создание XML-файлов описания структуры метаданных как конфигурации-источника, так и конфигурации-приёмника. Обработки запускаются непосредственно в базах источника и приёмника. После установки конфигурации "Конвертация данных" внешние обработки MD77Exp.ert (для 7.7) и MD80Exp.epf (для 8.0) располагаются в каталоге шаблонов, например:
    C:Program Files1cv8	mplts1cConversion2_0_13_1\r
    
  2. XML-файлы описания структуры метаданных конфигурации-источника и конфигурации-приёмника загружаются средствами конфигурации в информационную базу "Конвертации данных", где затем настраиваются правила обмена. После этого правила обмена выгружаются средствами конфигурации в XML-файл правил.
  3. С помощью специальных внешних обработок, поставляемых вместе с конфигурацией, осуществляется выгрузка данных из конфигурации-источника и их загрузка в конфигурацию-приёмник. Обработки запускаются непосредственно в базах источника и приёмника. После установки конфигурации "Конвертация данных" внешние обработки V77Exp.ertV77Imp.ert (для 7.7) и V8Exchan.epf (для 8.0) располагаются в уже упомянутом каталоге шаблонов. При выгрузке данных используется XML-файл правил обмена. При загрузке используется XML-файл данных, сформированный при выгрузке (он будет содержать и данные, и правила). Если при настройке правил обмена создавались обработчики событий для тех или иных объектов/реквизитов, возможно, придётся заменить код обработок V77Exp.ert и/или V77Imp.ert на код, сгенерированный конфигурацией "Конвертация данных" в момент выгрузки в XML-файл правил (такой код выгружается в указанный текстовый файл).

Второй этап (создание правил обмена в конфигурации "Конвертация данных") рассмотрим подробнее.

Создание правил обмена

Для хранения описаний структуры метаданных используются справочник Конфигурации, а также подчинённые справочники Объекты (описания объектов метаданных), Свойства (реквизиты объектов) и Значения (значения перечислений и предопределенных элементов объектов метаданных), которые не предусматривают редактирования вручную.

С помощью обработки "Загрузка структуры метаданных" загружаются XML-файлы описания структуры метаданных как конфигурации-источника, так и конфигурации-приёмника. Флажок "Новая конфигурация" позволяет произвести обновление уже загруженного описания метаданных (если он снят). Если флажок "Новая конфигурация" установлен, создаётся новый элемент справочника "Конфигурации".

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

После загрузки структуры метаданных источника и приёмника необходимо зарегистрировать в информационной базе новый элемент справочника "Конвертации", открыв его с помощью меню "Справочники". Выбрав источник и приёмник, можно определить наименование конвертации с помощью кнопки "Сформировать". В поле "Имя файла правил обмена" надо указать путь к XML-файлу для выгрузки правил обмена.

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

Настройка правил осуществляется в форме "Настройка правил обмена". Она вызывается из панели инструментов одноименной кнопкой. Необходимо выбрать для редактирования нужную конвертацию.

С помощью пункта меню "Обработки" — "Синхронизация объектов" в форме "Настройка правил обмена" можно запустить обработку "Автонастройка правил конвертации объектов". Обработка проводит автоматическую синхронизацию всех объектов, предлагая воспользоваться результатом, включая или отключая флажки. По кнопке "Записать" будут созданы новые правила конвертации объектов, которые будут отображены в форме "Настройка правил обмена". Создать правило конвертации можно и "вручную".

С помощью пункта меню "Обработки" — "Синхронизация свойств объектов" в форме "Настройка правил обмена" можно запустить обработку автонастройки свойств, которая работает аналогично обработке "Автонастройка правил конвертации объектов".

В форме "Настройка правил обмена" часть правил конвертации свойств может быть отключена с помощью флажка в колонке "Отключить" табличной части на закладке "Конвертация свойств". При отключении правила оно не будет исполняться, а реквизиты источника, указанные в нём, выгружены не будут.

Необходимо задать принцип, по которому будет устанавливаться соответствие объектов. Для этого можно воспользоваться флажками в колонке "Поиск" табличной части на закладке "Конвертация свойств". Если флажок установлен, то перед обработкой объекта алгоритм загрузки будет искать объект по значению реквизита приемника, указанного в правиле. Если в колонке "Поиск" не будет включенных флажков, то элементы при каждой загрузке будут создаваться заново. Примечание: для иерархических справочников поле "ЭтоГруппа" в колонке "Поиск" должно быть отмечено.

Если при выгрузке справочника синхронизация происходит не по коду, и при этом нужно присвоить новому объекту новый код, придётся воспользоваться скриптом. Следует открыть правило конвертации объекта и задать код скрипта на вкладке "После загрузки" (это алгоритм, выполняемый перед записью загруженного объекта). Код может быть наподобие следующего:

Если Объект.Код = 0 Тогда
Объект.УстановитьНовыйКод();
КонецЕсли;

Далее на форме "Настройка правил обмена" необходимо перейти к закладке "Правила выгрузки данных" и создать правило(а) выгрузки.

Следует заметить, что различные обработчики событий могут задаваться для правил конвертации объектов, правил конвертации свойств, правил выгрузки данных и прочих правил, что обеспечивает очень большую гибкость. Обработчики событий пишутся на том языке, на котором они должны исполняться в момент выгрузки или загрузки (имеются в виду встроенные языки v7.7 и v8.0).

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

Например, предопределённая переменная Значение в обработчике события "Перед выгрузкой" для правила конвертации свойств позволит непосредственно задать идентификатор перечисления в виде строки (если свойство имеет тип какого-то перечисления). Ещё один пример: предопределённая переменная ИмяПКО там же позволит задать имя правила конвертации объектов, по которому производится преобразование значения этого свойства (т.е. правило конвертации объектов, используемое для этого правила конвертации свойств, можно поменять в скрипте "на лету" по каким-то условиям в зависимости от данных источника). Такую смену правила конвертации объектов можно использовать для случая, когда, например, значение одного справочника-источника должно преобразовываться к значениям нескольких различных справочников-приёмников в зависимости от каких-то условий. Предопределённая переменная Источник в обработчиках событий для правил конвертации свойств является ссылкой на выгружаемый объект, которому принадлежит текущее свойство. Эта переменная позволит обратиться в скрипте ко всем свойствам объекта-источника через точку, и т.д., и т.п.

Для выполнения генерации файла правил обмена нужно вызвать обработку "Выгрузка правил обмена" по кнопке "Сохранить правила". Необходимо указать XML-файл для сохранения правил (по умолчанию это поле будет заполнено из элемента справочника "Конвертации"). Правила сохраняются в файл с помощью кнопки "Выполнить". Здесь же можно указать путь к текстовым файлам модулей выгрузки/загрузки, если в обмене участвовали конфигурации v7.7 и задавался код обработчиков событий, который должен выполниться на v7.7 при загрузке и/или выгрузке данных. Заменить код обработок V77Exp.ert и/или V77Imp.ert на код, сгенерированный конфигурацией "Конвертация данных", можно в Конфигураторе v7.7 простым копированием/вставкой всего текста модуля.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *