Имя: Пароль:
1C
1С v8
Конвертация данных. Параметры объекта
0 Никулин Леонид
 
14.06.13
15:54
Здравствуйте!

Такой вопрос. Хочу отладить комбинированный поиск. Пишу:

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

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

ИначеЕсли НомерВариантаПоиска = 2 тогда
   
   //(тут фигня сюда хочу добавить условие но нельзя)
   СтрокаИменСвойствПоиска = "Артикул, ЭтоГруппа";
       
КонецЕсли;

но у меня артикул очень часто бывает не заполнен и из-за этого правила работают не так, как надо.
Хочу добавить условие
Если ЗначениеЗаполнено(Артикул) Тогда
   СтрокаИменСвойствПоиска = "Артикул, ЭтоГруппа";
КонецЕсли;

но так делать нельзя. Нашел парам ПараметрыОбъекта но не умею им пользоваться. Хочу передавать сюда артикул если он заполнен. Подскажите как это делается?

Спасибо!
1 Defender aka LINN
 
14.06.13
15:57
(0) Вопрос на догадливость - а не передаются ли значения полей поиска в этот обработчик?
2 Никулин Леонид
 
14.06.13
15:59
Пробовал так, не получилось

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

   СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
   Сообщить("_" + СвойстваПоиска.Наименование);
ИначеЕсли НомерВариантаПоиска = 2 тогда
   
   Если ЗначениеЗаполнено(Артикул) Тогда
       СтрокаИменСвойствПоиска = "Артикул, ЭтоГруппа";
   КонецЕсли;    
   
КонецЕсли;
3 aleksonic
 
14.06.13
16:00
Если СокрЛП(Артикул) <> "" Тогда
   СтрокаИменСвойствПоиска = "Артикул, ЭтоГруппа";
КонецЕсли;
не пойдет?
4 Defender aka LINN
 
14.06.13
16:01
(2) Неудивительно. Ты же не стал читать, что "СвойстваПоиска" - не структура, а переменная "Артикул" вообще не объявлена в этом обработчике
5 Никулин Леонид
 
14.06.13
16:01
не то(2). вот так. не получилось
Если НомерВариантаПоиска = 1 тогда

   СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа";
   
ИначеЕсли НомерВариантаПоиска = 2 тогда
   
   Если ЗначениеЗаполнено(СвойстваПоиска.Артикул) Тогда
       СтрокаИменСвойствПоиска = "Артикул, ЭтоГруппа";
   КонецЕсли;    
   
КонецЕсли;
6 х86
 
14.06.13
16:03
(0)

       ПрекратитьПоиск = Истина;
       
       //СвойстваПоиска.Вставить("ПометкаУдаления", Ложь);
       //СтрокаИменСвойствПоиска = "Артикул,Наименование,ПометкаУдаления";
       
       //сами нах будем искать
       Запрос = Новый Запрос;
       Запрос.Текст =
       "ВЫБРАТЬ
       |    Справ.Ссылка КАК Ссылка,
       |    Справ.Артикул КАК Артикул,
       |    Справ.Наименование КАК Наименование
       |ИЗ
       |    Справочник.Номенклатура КАК Справ
       |ГДЕ
       |    Справ.Артикул = &Артикул
       |    И Справ.Наименование = &Наименование
       |    И НЕ Справ.ПометкаУдаления";
       
       Запрос.УстановитьПараметр("Артикул", СвойстваПоиска["Артикул"]);
       Запрос.УстановитьПараметр("Наименование", СвойстваПоиска["Наименование"]);

       Выборка = Запрос.Выполнить().Выбрать();
       Пока Выборка.Следующий() Цикл
           Если (Выборка.Артикул = СвойстваПоиска["Артикул"]) и (Выборка.Наименование = СвойстваПоиска["Наименование"]) Тогда
               СсылкаНаОбъект = Выборка.Ссылка;
               Прервать;
           КонецЕсли;
       КонецЦикла;
       
       Если ЗначениеЗаполнено(СсылкаНаОбъект) Тогда
7 Никулин Леонид
 
14.06.13
16:04
(3)

переменная не определена (артикул)
:(
8 aleksonic
 
14.06.13
16:05
(7) СвойстваПоиска.Артикул

ктож знает что там ранее определено
9 be-may
 
14.06.13
16:06
(7)
Если ЗначениеЗаполнено(СвойстваПоиска["Артикул "]) Тогда
.....
10 Defender aka LINN
 
14.06.13
16:07
(9) Ну хоть кто-то читать умеет... :)
11 be-may
 
14.06.13
16:08
(10) :)  Ну, ты б сразу написал.. чего человекОВ мучить)
12 Никулин Леонид
 
14.06.13
16:12
Кажись получилось(9). Спасибо большое! Не сомневаюсь, что (6) тоже будет работать. Еще раз всем спасибо за активность!