Одна из самых распространенных проблем с которой сталкиваются 1с-ники. Это перекидка справочников и документов из одной конфигурации в другую. Для решения таких задач 1с предлагает использовать специализированную конфигурацию «Конвертация данных». Возьмем, например задачу перекинуть контрагентов из базы 7,7 в базу 8. Что нам для начала нужно?
Разумеется сама база «Конвертация данных» и несколько внешних обработок, для 7.7 это:
Сначала выгружаем первой обработкой структуру метаданных нашей конфигурации. Запоминаем путь к файлу выгрузки и запускаем конфигурацию 8.2 «Конвертация данных».
После чего выбираем на рабочем столе программы пункт «Загрузить структуру метаданных конфигурации», указываем имя файла и нажимаем «Выполнить загрузку».
Аналогичную операцию проделываем для конфигурации 8. только там обработки называются:
MD81Exp.epf и MD82Exp.epf - выгрузка описания структуры метаданных для 1с 8.1 и 8.2 соответственно.
ВыгрузкаЗагрузкаДанныхXML81.epf ВыгрузкаЗагрузкаДанныхXML82.epf - тут из названия все ясно.
Аналогично с семеркой загружаем данные из хмл файла в нашу «Конвертацию данных».
После того как мы загрузили структуры наших баз данных в конфигурацию можно приступать к настройке правил обмена, и переноса обьектов. Для этого нужно нажать на кнопку «настройка правил обмена данными»
Или запустив, стартовый помощник
В стартовом помощнике выберем «Создать новые правила обмена данными (с нуля)» и укажем две конфигурации, между которыми будем делать обмен.
Давайте перекинем из одной конфигурации в другую справочник «Номенклатура».
После того как отработают встроенные алгоритмы ми можем наблюдать соответствия реквизитов справочника «Номенклатура» в 7,7 и 8. Стандартно соответствие ставится для реквизитов с одинаковыми названиями, добавим соответствие между «ПолнНаименование» и «НаименованиеПолное», у меня выглядит так:
Заказчик сказал, что у него во всей номенклатуре единица измерения должна стоять «шт.», в этом мне помогут обработчики событии. Если вы мышкой клацните по номенклатуре, в верхней табличной части то откроется мастер настроек правила конвертации объектов, там, на 3 шаге можно указать свой код в обработчиках событий. Для нашей цели подойдет последний обработчик «После загрузки» который вызывается после загрузки объекта, но до его записи в базу данных, мы пропишем эму такой код:
если Объект.ЭтоГруппа=ложь тогда Объект.ВидНоменклатуры= справочники.ВидыНоменклатуры.НайтиПоНаименованию("товар"); Объект.ЕдиницаИзмерения = справочники.ЕдиницыИзмерения.НайтиПоНаименованию("шт"); конецесли;
Все просто без изысков Объект – это наш обьэкт до записи в базу, очень помогает встроенная справка, которая вызывается при нажатии на кнопку «Информация по обработчикам».
Сохраняем правила конвертации в хмл файл, он нам понадобится в дальнейшем для перекидки справочника.