Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Поля поиска в КД2 и параметр с флагом поиска

Поля поиска в КД2 и параметр с флагом поиска
Я
   zippygrill
 
29.04.19 - 10:49
Всем привет!
Хочу настроить поля поиска справочника Номенклатура исходя из такой ситуации:
Код источника мне не нужен, т.е. на стороне приемника будет свой код и поэтому такой ПКС у меня нет (к сожалению в источнике справочник с префиксом, а в приемнике (УПП), без и ломается нумерация справочника), но для старых позиций, нужен поиск как раз по коду.  В справке по КД написано что для новых объектов, значения из СвойствахОбъекта будут использоваться для заполнения.

Если передать Источник.Код в параметр "Пар_Код" и установить флаг поиска, в событии ПоляПоиска сработает что-то подобное (см. условие Иначе)?

Если НомерВариантаПоиска = 1 тогда

СтрокаИменСвойствПоиска = "Артикул, Наименование";

ИначеЕсли НомерВариантаПоиска = 2 тогда

СтрокаИменСвойствПоиска = "Наименование";

Иначе

СтрокаИменСвойствПоиска = "Пар_Код"; //Вот здесь будет имя моего параметра

КонецЕсли;

Т.е. мне сначала по ИД искать надо(флаг Искать по ИД в ПКО стоит), потом Артикул+Наименование, потом Наименованию, потом Код.
 
 
   zippygrill
 
1 - 29.04.19 - 11:12
апну
   Вафель
 
2 - 29.04.19 - 11:17
где будет  храниться значение Пар_Код?
или ты хранить не хочешь, но искать по нему хочешь?
   zippygrill
 
3 - 29.04.19 - 11:25
(2) как где - в параметре
   Вафель
 
4 - 29.04.19 - 11:25
В базе приемнике где
   alexshape
 
5 - 29.04.19 - 11:30
в разделе иначе, запили свой запрос по базе, типа найти в справочнике номенклатура где код равен твоему параметру, и запиши в переменную "СсылкаНаОбъект", наведенный элемент. Ну и для надежности можешь еще "ПрекратитьПоиск" установить в истину, (хотя необязательно)
   zippygrill
 
6 - 29.04.19 - 11:36
(5) Кстати да, можно применить такой вариант в Если
   zippygrill
 
7 - 29.04.19 - 11:39
(5) А ПрекратитьПоиск вне конструкции Если Иначе КонецЕсли или в ветку Если?
   alexshape
 
8 - 29.04.19 - 11:40
(7) что значит в ветку если? так ты имеешь ввиду?
Если ПрекратитьПоиск тогда 
и т.д?
   zippygrill
 
9 - 29.04.19 - 11:44
(8) Пока так.

Если НомерВариантаПоиска = 1 тогда 
    
    СтрокаИменСвойствПоиска = "Артикул, Наименование"; 
    
ИначеЕсли НомерВариантаПоиска = 2 тогда 
    
    СтрокаИменСвойствПоиска = "КодPDM"; 
    
ИначеЕсли НомерВариантаПоиска = 3 тогда 
    
    СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа"; 
    
Иначе 
    
    СсылкаНаОбъект = Справочники.Номенклатура.НайтиПоКоду(ПараметрыОбъекта.Получить("Пар_Код"));
    
КонецЕсли; 
ПрекратитьПоиск = Истина;
   alexshape
 
10 - 29.04.19 - 11:47
(9) если ты засунешь ПрекратитьПоиск вне конструкции если, то у тебя уже после первого выполнения программа больше не будет пытаться искать элемент, и НомерВариантаПоиска  = 2 ты не увидишь.

Из справки:
ПрекратитьПоиск - булево. Если Истина, то поиск объекта прекращается, в зависимости от того СсылкаНаОбъект заполнена или нет создается новый объект.
 
 Рекламное место пустует
   zippygrill
 
11 - 29.04.19 - 12:43
(10) Да, спасибо!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует