Имя: Пароль:
1C
 
Конвертация данных 2 Настройка поиска
,
0 Vurglak
 
16.12.20
12:24
Здравствуйте.

В КД 2 делаю правила обмена для переноса элементов справочника между двумя конфигурациями.
В конфигурации-приемнике если по комбинации полей поиска находится несколько элементов, то необходимо обновить тот, ссылка на который есть в периодическом регистре сведений (если записей несколько, то ссылка из последней).

Подскажите пожалуйста как и в каком обработчике это возможно сделать?
То бишь как проверить количество найденных элементов в приемнике и убрать лишние, оставив один?
1 Aleksey
 
16.12.20
12:25
В полях поиска
2 Aleksey
 
16.12.20
12:26
только искать придется самому
3 zippygrill
 
16.12.20
13:11
Что-то в этом духе..

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