Возникла необходимость написания большого количества обработок по обмену между документами, справочниками и т.п. между разными конфигурациями а также и между типовыми. Также была необходимость проверки документов после переноса. В результате у меня вышла, так сказать, универсальная часть обработки которую можно использовать всем, вот я и решил ее предложить Вам.
В обработке имеется возможность подключения, код уже написан, а также есть возможность при сравнении справочников или документов различных наименований в разных конфигурациях.
&НаСервере
Функция _ПолучитьВидДокументаКА2(НаименованиеКА1,Реквизит = Неопределено)
МассивСопоставлений = Новый Массив;
МассивСопоставлений.Добавить(Новый Структура("КА1,КА2","ПоступлениеДопРасходов","ПриобретениеУслугПрочихАктивов"));
МассивСопоставлений.Добавить(Новый Структура("КА1,КА2","ПоступлениеТоваровУслуг","ПриобретениеТоваровУслуг"));
Если Не Реквизит = Неопределено ТОгда
Реквизит.СписокВыбора.Очистить();
Для каждого Строка из МассивСопоставлений Цикл
Реквизит.СписокВыбора.Добавить(Строка.КА1,Строка.КА1);
КонецЦикла;
Возврат "";
КонецЕсли;
Для каждого Строка из МассивСопоставлений Цикл
Если ВРЕГ(СокрЛП(Строка.КА1)) = ВРЕГ(СОкрЛП(НаименованиеКА1)) ТОгда
Возврат СокрЛП(Строка.КА2);
КонецЕсли;
КонецЦикла;
Возврат НаименованиеКА1;
КонецФункции
Достаточно дополнить или изменить массив в данной процедуре.
Также в обработке учтено изменение нумерации документов в примере в базе источник номер документа "ФСК00000323" а в другой базе "ФС00-000323" то в полях Строка поиска вводим "ФСК00", а в поле замена вводим "ФС00-" в результате при сопоставлении будут сопоставляться данный номер с подмененными значениями, кажется, это удобно
Выполнение происходит с передачей параметров в структуре, где можно дополнить свои данные для удобства
&НаСервере
Процедура ВыполнитьЗапросСервер()
ПараметрЗапроса = Новый Структура;
ПараметрЗапроса.Вставить("ДатаНачала",Объект.ДатаНачала);
ПараметрЗапроса.Вставить("ДатаОкончания",Объект.ДатаОкончания);
ПараметрЗапроса.Вставить("ВидДокумента",СокрЛП(Объект.ВидДокумента));
ПараметрЗапроса.Вставить("ВидДокументаКА2",_ПолучитьВидДокументаКА2(СокрЛП(Объект.ВидДокумента)));
ПараметрЗапроса.Вставить("СтрокаИнициализации",Объект.СтрокаИнициализации);
ПараметрЗапроса.Вставить("СтрокаПоиска",СтрокаПоиска);
ПараметрЗапроса.Вставить("СтрокаЗамены",СтрокаЗамены);
ПараметрЗапроса.Вставить("COM_Загрузка",Истина);
ПараметрЗапроса.Вставить("Перепроводить",Перепроводить);
ПараметрЗапроса.Вставить("ПроизвестиРасчет",ПроизвестиРасчет);
Результат.Вывести(РеквизитФормыВЗначение("Объект").ПолучитьДаныеизБазыКА1(ПараметрЗапроса));
КонецПроцедуры
Эти параметры уже используются при обработке результата в модуле объекте
В принципе эта обработка для тех, кто не хочет отвлекаться на ерунду или кто только учится ее писать.
Тестировалась на платформе 1С:Предприятие 8.3 (8.3.15).
Конфигурация 1С не имеет значения.