Зачастую перед разработчиками встает задача оперативного переноса данных из одной информационной базы в другую. Рассмотрим подробно, как организовать механизм выбора номенклатуры в «чужой» базе и её последующий импорт в текущую конфигурацию.
Прежде чем приступать к написанию кода, важно проанализировать способы связи между системами. Выбор метода зависит от инфраструктуры вашего предприятия и версии платформы:
Для создания интерактивного окна выбора предлагаем следующий алгоритм действий:
Расширения конфигурации, чтобы не снимать основную конфигурацию с поддержки.HTTP-сервис, он возвращает JSON-структуру с данными номенклатуры.Динамический список или Таблица значений) формы.При получении данных важно помнить о ссылочной целостности и предотвращении дублей. Рассмотрим логику обработки выбранного элемента:
// Пример логики обработки полученных данных на стороне клиента
Процедура ИмпортироватьНоменклатуру(ВыбраннаяНоменклатура)
// 1. Поиск соответствия по коду или артикулу
НайденнаяНоменклатура = Справочники.Номенклатура.НайтиПоАртикулу(ВыбраннаяНоменклатура.Артикул);
Если НайденнаяНоменклатура.Пустая() Тогда
// 2. Создание нового объекта, если соответствие не найдено
НовыйТовар = Справочники.Номенклатура.СоздатьЭлемент();
ЗаполнитьЗначенияСвойств(НовыйТовар, ВыбраннаяНоменклатура);
НовыйТовар.Записать();
Иначе
// 3. Обновление существующей записи
ОбъектДляОбновления = НайденнаяНоменклатура.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(ОбъектДляОбновления, ВыбраннаяНоменклатура);
ОбъектДляОбновления.Записать();
КонецЕсли;
КонецПроцедуры
Проанализируем важные аспекты, которые помогут сделать решение профессиональным:
Enterprise Data. Это позволит избежать ошибок преобразования типов.GUID (уникальный идентификатор) или бизнес-ключи (Артикул, Код). Это поможет избежать создания дублирующих записей при повторном нажатии кнопки импорта.Подводя итог, можно сказать, что реализация «кнопки» — это лишь вершина айсберга. Основная работа заключается в настройке безопасного доступа к базе-источнику через HTTP-сервисы и корректной обработке полученных данных в базе-приемнике. Применяя описанные подходы, вы сможете создать надежный и удобный инструмент интеграции.