0
Vurglak
16.12.20
✎
12:24
|
Здравствуйте.
В КД 2 делаю правила обмена для переноса элементов справочника между двумя конфигурациями.
В конфигурации-приемнике если по комбинации полей поиска находится несколько элементов, то необходимо обновить тот, ссылка на который есть в периодическом регистре сведений (если записей несколько, то ссылка из последней).
Подскажите пожалуйста как и в каком обработчике это возможно сделать?
То бишь как проверить количество найденных элементов в приемнике и убрать лишние, оставив один?
|
|
3
zippygrill
16.12.20
✎
13:11
|
Что-то в этом духе..
ИначеЕсли НомерВариантаПоиска = 4 Тогда //Поиск системного кода ЕРП в поле Код
СсылкаНаОбъект = Справочники.Номенклатура.НайтиПоКоду(ПараметрыОбъекта.Получить("Пар_Код"));
Если НЕ СсылкаНаОбъект.Пустая() Тогда
ПрекратитьПоиск = Истина;
КонецЕсли;
СтрокаИменСвойствПоиска = "4";
ИначеЕсли НомерВариантаПоиска = 5 Тогда //Поиск в наименовании + пустой код ПДМ. Берем только если в базе 1 элемент
Если НЕ СвойстваПоиска.Получить("ЭтоГруппа") Тогда
Q = Новый Запрос;
Q.Текст = "ВЫБРАТЬ т.Ссылка Из Справочник.Номенклатура как т ГДЕ т.Наименование = &Наименование И т.КодPDM = """"";
Q.УстановитьПараметр("Наименование", СвойстваПоиска.Получить("Наименование"));
R = Q.Выполнить().Выгрузить();
Если R.Количество() = 1 Тогда
СсылкаНаОбъект = R[0].Ссылка;
ПрекратитьПоиск = Истина;
КонецЕсли;
КонецЕсли;
СтрокаИменСвойствПоиска = "5";
ИначеЕсли НомерВариантаПоиска = 6 Тогда //Вариант для ЭтоГруппа
Если СвойстваПоиска.Получить("ЭтоГруппа") Тогда
СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
КонецЕсли;
КонецЕсли;
|
|