Как заполнить значения пустых реквизитов, сохранив заполненные реквизиты, у существующих элементов справочника?

1. IvanAlekseev 78 10.11.14 14:10 Сейчас в теме
Есть справочник "Номенклатура", в котором уже есть частично заполненные элементы. Мне нужно перенести определенные реквизиты элементов справочника "Номенклатура" из другой конфигурации так, чтобы сохранились уже существующие данные элементов и заполнились ранее пустые реквизиты.

Как такое провернуть?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Chameleon1980 10.11.14 15:07 Сейчас в теме
подключаемся по оле
смотрим в текущей
если не ЗначениеЗаполнено(Реквизит) тогда
Реквизит=РеквизитОЛЕ.Реквизит;
КонецЕсли;

но...
это для примитивных типов
для других, например если реквизит типа справочникСсылка, то сначала в тек. нужно найти соотв. реквизит по реквизиту ОЛЕ
например найтиПоКоду

а вообще не совсем конкретный вопрос.
Что именно не получается?
4. IvanAlekseev 78 10.11.14 15:27 Сейчас в теме
(2) не хочу Оле, хочу использовать "Конвертация данных" + обработки универсального обмена.
(3) конфигурации не идентичны (хотя как идентичность упрощает задачу?)
3. Chameleon1980 10.11.14 15:09 Сейчас в теме
может вам поможет что-то типа универсальныйОбменXML
конфигурации идентичны? Пока я понял, что да?
5. Chameleon1980 10.11.14 15:32 Сейчас в теме
упрощает очень

ну я не знаю на чем вы будете подъезжать к КД, если задаете такой вопрос.
6. IvanAlekseev 78 10.11.14 15:45 Сейчас в теме
(5) правила обмена создавать умею. Но при конвертации объекта возможны только два способа: не замещать (если объект найден в БД) и замещать. Нет объединения, и именно поэтому задан вопрос.
7. IvanAlekseev 78 10.11.14 15:53 Сейчас в теме
Думаю надо создавать правило выгрузки и правило конвертации, где в "ПослеЗагрузки" писать:

Отказ = Истина;
НайденныйЭлемент = НайтиЭлемент(...);
заполнитьЗначенияСвойств(НайденныйЭлемент, Объект);
НайденныйЭлемент.Записать();
8. IvanAlekseev 78 11.11.14 11:06 Сейчас в теме
Для будущих поколений (правило конвертации объекта, "ПослеЗагрузки"):

Отказ = Истина;	
СтруктураПоиска = Новый Структура("Артикул, Наименование, НаименованиеРодителя");

СтруктураПоиска.Артикул = Объект.Артикул;
СтруктураПоиска.Наименование = Объект.Наименование;
СтруктураПоиска.НаименованиеРодителя = Объект.Комментарий;

МассивСтрок = Параметры.ТзНоменклатуры.НайтиСтроки(СтруктураПоиска);
Если МассивСтрок.Количество() = 0 Тогда
	возврат;
КонецЕсли;

//добавим нужные реквизиты
НайденныйОбъект = МассивСтрок[0].Ссылка.ПолучитьОбъект();
НайденныйОбъект.СтатьяЗатрат = Объект.СтатьяЗатрат;
НайденныйОбъект.НоменклатурнаяГруппа = Объект.НоменклатурнаяГруппа;
НайденныйОбъект.НоменклатурнаяГруппаЗатрат = Объект.НоменклатурнаяГруппаЗатрат;
НайденныйОбъект.Записать();
Показать


Где у правила конвертации объекта созданы свойства Артикул, Наименование, Комментарий, СтатьяЗатрат, НоменклатурнаяГруппа, НоменклатурнаяГруппаЗатрат (которые конвертируются по соответствующим правилам). Поэтому в "После загрузки" виртуальный объект заполнен и из него можно получать данные.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот