Например, перед нами стоит задача передавать данные о новых элементах справочника "Номенклатура" из одной базы 1С в другую.

Попробуем сделать это с помощью правил, сформированных в конфигурации "Конвертация данных" и поставляемых с ней обработок экспорта и импорта данных (CDExport, CDImport). При этом конфигурация,  из которой осуществляется экспорт данных, должна также иметь в своем составе обработку "ВыгрузкаДанныхИсполняющая" (ее можно найти в типовых конфигурациях).

Использование универсального механизма даст возможность легко управлять обменом и предусмотреть возможность его развития в будущем.

Прежде всего создаем правила обмена в конфигурации "Конвертация данных".

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

В результате мы получим готовые правила, которые должны выглядеть как на картинке ниже. Записываем их.

Далее необходимо поместить файл правил в каталог ИБ-источника, туда же поместить обработку CDExport.ert.

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

Допустим, мы регистрируем товары, которые нужно передать, в текстовом файле "Goods.txt", который располагается в каталоге ИБ. Тогда код для вызова автоматической выгрузки будет выглядеть так.

ЛогФайл = СоздатьОбъект("Текст");
        
ИмяЛога = КаталогИБ() + "Goods.txt";
    
Если ФС.СуществуетФайл(ИмяЛога) = 1 Тогда
   ЛогФайл.Открыть(ИмяЛога);    
Иначе
   Предупреждение("Не найден файл " + ИмяЛога, 20);
   Возврат;
КонецЕсли;
    
Список = СоздатьОбъект("СписокЗначений");

Для Сч = 1 по ЛогФайл.КоличествоСтрок() Цикл
   ТекСтр = ЛогФайл.ПолучитьСтроку(Сч);

   Спр = СоздатьОбъект("Справочник.Номенклатура");
   Если Спр.НайтиПоКоду(ТекСтр) = 0 Тогда
       Сообщить("Не найден товар с кодом " + ТекСтр);
       Продолжить;
   КонецЕсли;    

   Список.ДобавитьЗначение(Спр.ТекущийЭлемент(), Спр.ТекущийЭлемент());
КонецЦикла;    

ФС.УдалитьФайл(ИмяЛога);

Если Список.РазмерСписка() = 0 Тогда
   Возврат;
КонецЕсли;    

Табл = СоздатьОбъект("ТаблицаЗначений");
Табл.НоваяКолонка("ИдПравила");
Табл.НоваяКолонка("СписокОбъектов");

Табл.НоваяСтрока();
Табл.ИДПравила        = "Номенклатура_1С_0003390";
Табл.СписокОбъектов   = Список;

СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("ТаблицаОбъектов",               Табл);
СписокПараметров.Установить("ИмяФайлаПравил",                КаталогИБ() + "Правила.xml");
СписокПараметров.Установить("ИмяФайлаДанных",                КаталогИБ() + "CDData.xml");
СписокПараметров.Установить("ФормДатаНач",                   РабочаяДата());
СписокПараметров.Установить("ФормДатаКон",                   РабочаяДата());
СписокПараметров.Установить("ВыгружатьТолькоУказанные",      1);
СписокПараметров.Установить("ФормФлНеВыгружатьБухИтоги",     1);
СписокПараметров.Установить("БезОткрытияФормы",              1);

ОткрытьФорму("Отчет", СписокПараметров, КаталогИБ() + "CDExport.ert");

Этот код можно разместить в процедуре, вызываемой по кнопке или в служебной обработке, которая будет выполняться по расписанию. В тексте обработки в предупреждениях установим таймаут, т. к. нажимать кнопку будет некому.

Далее нам необходимо немного поменять код в обработке CDImport.ert, для того чтобы она также отрабатывала автоматически.

В конце текста процедуры ПриОткрытии() напишем:

СписокПараметров = Форма.Параметр;

Если ПустоеЗначение(СписокПараметров) = 1 Тогда
   Возврат;
КонецЕсли;

ФормИмяФайлаДанных      = СписокПараметров.Получить("ИмяФайлаДанных");
ФормФлЗапоминатьСсылки  = СписокПараметров.Получить("ЗапоминатьСсылки");
БезОткрытияФормы        = СписокПараметров.Получить("БезОткрытияФормы");

Если БезОткрытияФормы = 1 Тогда
   ЗагрузитьДанные();
   СтатусВозврата(0);
КонецЕсли;

В этой обработке также в предупреждениях установим таймаут:

Предупреждение("Загрузка завершена!
                    |Обработано объектов:  " + Строка(гСчетчикЗагруженныхОбъектов-1), 20);

Осталось в принимающей конфигурации разместить код, который будет вызывать обработку CDImport.ert, размещенную также в каталоге ИБ. В моем случае в конфигурацию добавлена константа КаталогОбмена. В ней содержится путь к каталогу базы-источника.

СписокПараметров = СоздатьОбъект("СписокЗначений");
СписокПараметров.Установить("ИмяФайлаДанных",      СокрЛП(Константа.КаталогОбмена) + "CDData.xml");
СписокПараметров.Установить("ЗапоминатьСсылки",    1);
СписокПараметров.Установить("БезОткрытияФормы",    1);

ОткрытьФорму("Отчет", СписокПараметров, КаталогИБ() + "CDImport.ert");

Вот и все, задача выполнена.