Имя: Пароль:
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) тоже будет работать. Еще раз всем спасибо за активность!
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан