Методика переноса остатков с помощью конфигурации «Конвертация 2.1»
Цель статьи: привести практический пример работы с конфигурацией "Конвертация данных 2.1", а именно представить и подробно описать пример по переносу остатков из одной конфигурации в другую.
Задача: создать правила переноса остатков по всем разделам учета из конфигурации УПП в конфигурацию УНФ.
В качестве начальных условий возьмем две конфигурации — источником (откуда выгружаем данные) пусть будет «Управление производственным предприятием» 1.2 (УПП), а приемником (куда загружаем) «Управление нашей фирмой» 3.0 (УНФ). В обе конфигурации внесены изменения: добавлены нетиповые регистры накопления, регистры сведений, справочники и документы и т. д. Поэтому при загрузке остатков на первом шаге переносим данные хранящиеся в стандартных объектах, на втором шаге — данные, хранящиеся в нетиповых объектах.
Перенос остатков в документ «Ввод начальных остатков»
Сначала в исходной конфигурации УПП создаем документ «Ввод начальных остатков», в котором повторяем структуру документа ввода начальных остатков из УНФ, нужна только форма документа, движения в этом документе конечно не нужны (рис.1). Такой вариант удобен тем что в этом документе можно визуально проверить правильность сбора информации по остаткам и сравнить их с типовыми отчетами, так же визуально видны недочеты в учете, например отрицательные остатки.
Рис.1 Структура документа «Ввод начальных остатков».
Заполняем разделы документа, проверяем итоги табличных частей на соответствие типовым отчетам.
Следующим шагом «снимаем образы конфигураций» - выгружаем описание структуры метаданных обеих баз данных, с помощью обработок MD83Exp.epf для УНФ и MD82Exp.epf для УПП. Для этого открываем обработки в режиме 1С предприятие, выбираем путь и название файла со структурой метаданных и нажимаем «Выгрузить» (Рис.2).
Рис.2 Выгрузка описания структуры метаданных из конфигурации УНФ в xml-файл.
Затем загружаем эти образы в конфигурацию «Конвертация данных 2.1» (рис.3).
Рис.3 Загрузка структуры метаданных выгруженных конфигураций.
После того как структуры метаданных загружены, создаем новую конвертацию между УПП и УНФ и переходим непосредственно к созданию правил обмена (рис.4).
Рис.4 Правила переноса остатков из конфигурации УПП в УНФ.
Основным объектом конвертации является документ «Ввод начальных остатков». Так как структура документа в УПП полностью соответствует структуре документа в УНФ, нужно только сопоставить свойства объекта документа между Источником и Приемником. Конечно потребуется конвертация справочников, документов и т.д. Если перед загрузкой остатков уже загружены все справочники, то при конвертации важно не задублировать их элементы в базе приемнике. Для этого в правилах конвертации объекта устанавливаем настройки, как изображено на рисунке 5 на примере справочника Основные средства.
Рис.5 Настройки конвертации справочников.
В правилах конвертации свойств справочников, указываем минимальное количество свойств, оптимально только поля для поиска (рис.6).
Рис.6 Правила конвертации свойств объекта.
При конвертации документов, есть большая вероятность, что потребуется загрузка документов старых периодов, поэтому правила конвертации объекта устанавливаем как изображено на рисунке 7.
Рис.7 Настройки конвертации документов.
В правилах конвертации свойств документов также указываем только свойства для поиска объекта (рис.8).
Рис.8 Настройка правил конвертации свойств объекта.
Сохраняем правила и выгружаем. В конфигурации УПП открываем обработку «Универсальный обмен данными в формате XML», загружаем сохраненные правила, указываем файл выгрузки данных и выгружаем документ «Ввод начальных остатков» (Рис.9).
Рис.9 Выгрузка документа «Ввод начальных остатков» из конфигурации УПП.
В конфигурации УНФ так же с помощью обработки « Универсальный обмен данными в формате XML» загружаем файл с данными. В результате должны получить типовой документа «Ввод начальных остатков» (рис. 10).
Рис. 10 Документ «Ввод начальных остатков» по разделу учета УНФ «Имущество».
Перенос остатков в документ «Корректировка регистров».
Теперь, когда загружены остатки по типовым разделам учета, загружаем остатки по нетиповым регистрам. Для примера возьмем загрузку остатков по регистрам накопления.
Для ввода остатков по этим регистрам потребуется документ «Корректировка регистров». Создаем новое правило конвертации объектов — Источник не указываем, а Приемником будет документ «Корректировка регистров» (рис.11).
Рис.11 Правило конвертации объектов с пустым объектом источником.
В конвертации свойств объекта добавляем новое правило (ПКС) так же с пустым Источником, Приемник — реквизит документа «Дата», устанавливаем галки «Получить из входящих данных» и «Поиск». Аналогичным образом добавляем правила для реквизита документа «Номер» и «Комментарий». Теперь добавлением новое ПКС для движений документа по регистру, например, «Остатки параметризованной номенклатуры» (добавляем как группу). Для того что бы была возможность выбрать движения документа в правилах ПКС, при выгрузке описания структуры метаданных должна быть установлена галка «Выгружать движения документов» и переключатель «Выгружать движения только у документов без проведения». Далее в группе движения документа добавляем ПКС для свойств регистра — Номенклатура, Склад, Количество и Период (рис.12).
Рис.12 Настройка правил ПКС для регистра «Остатки параметризованной номенклатуры».
Следующий шаг — добавляем правило выгрузки данных. В качестве правила конвертации объекта указываем наше созданное правило «ОстаткиПараметризованнойНоменклатуры», способ выборки — произвольный алгоритм (рис.13).
Рис.13 Создание правила выгрузки данных.
Теперь можно приступить к получению данных по остаткам регистра. Для того, чтобы создался необходимый документ, нужно указать источник данных. В нашем случае это будет ТаблицаЗначений. Соответственно, в обработчике события "Перед обработкой" инициализируем нужные данные (рис.14).
Рис.14 Выборка данных по остаткам регистра накопления в событии «Перед обработкой».
Здесь создаем и заполняем по результатам запроса таблицу значений «ОстаткиПарамтрН», которую будем передавать в качестве Исходящих данных.
Пример кода выгрузки:
Запрос = Новый Запрос;
Запрос.Текст = "Выбрать
|ТоварыНаСкладах.Номенклатура КАК Номенклатура,
|ТоварыНаСкладах.КоличествоОстаток КАК Количество,
|ТоварыНаСкладах.Склад
|Из РегистрНакопления.ИТ_ОстаткиПараметризированнойНоменклатуры.Остатки(&ДатаОстатков) КАК ТоварыНаСкладах";
Запрос.УстановитьПараметр("ДатаОстатков", КонецДня(Дата("20231231")));
Выборка = Запрос.Выполнить().Выбрать();
ОстаткиПараметрН = Новый ТаблицаЗначений();
ОстаткиПараметрН.Колонки.Добавить("Номенклатура");
ОстаткиПараметрН.Колонки.Добавить("Склад");
ОстаткиПараметрН.Колонки.Добавить("Количество");
ОстаткиПараметрН.Колонки.Добавить("Период");
Пока Выборка.Следующий() Цикл
НовСтрока = ОстаткиПараметрН.Добавить();
НовСтрока.Номенклатура = Выборка.Номенклатура;
НовСтрока.Склад = Выборка.Склад;
НовСтрока.Количество = Выборка.Количество;
НовСтрока.Период = КонецДня(Дата("20231231"));
КонецЦикла;
ТаблицаИменРегистров = Новый ТаблицаЗначений();
ТаблицаИменРегистров.Колонки.Добавить("Имя");
СтрокаТаблицы = ТаблицаИменРегистров.Добавить();
СтрокаТаблицы.Имя = "ИТ_ОстаткиПараметризованнойНоменклатуры";
ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Номер", "00000002");
ИсходящиеДанные.Вставить("Дата", КонецДня(Дата("20231231")));
ИсходящиеДанные.Вставить("Комментарий", "Перенос остатков парам. номенклатуры на 31.12.2023");
ИсходящиеДанные.Вставить("ТаблицаРегистров", ТаблицаИменРегистров);
ИсходящиеДанные.Вставить("ИТ_ОстаткиПараметризованнойНоменклатуры", ОстаткиПараметрН);
ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "ОстаткиПараметризованнойНоменклатуры");
В правилах ПКО в обработчике события «При загрузке» добавляем код (рис.15)
Рис.15 Код обработчика события «При загрузке».
Объект — это наш создаваемый документ «Корректировка регистров». Правила готовы, сохраняем их и пробуем выгрузить/загрузить документ корректировки.
В результате получаем проведенный документ «Корректировка регистров» (рис.16).
Рис.16 Документ «Корректировка регистров».
Выводы: В данной статье показан подход к переносу остатков из конфигурации УПП, которая включает в себя большое количество нетиповых объектов — регистров, справочников и т. д. в новую учетную конфигурацию УНФ, в которую так же добавлены те же нетиповые объекты. Показаны два способа переноса остатков: «документ в документ» и по «свободному алгоритму». Стоит сказать, что перенос типовой информации можно реализовать так же и по «свободному алгоритму», но если конфигурации Источника и Приемника имеют много отличий, то могут возникнуть сложности при переносе с использованием такого варианта. Именно поэтому был выбран первый способ переноса.