Имя: Пароль:
1C
1С v8
УТ 11.Отбор номенклатуры по реквизиту ТЧ.
0 imtade2
 
01.09.11
13:36
В справочник номенклатуры добавлена ТЧ "Артикулы" с реквизитом "Артикул". Нужно намутить поиск по этому артикулу. Как это организовать в трех словах? Книжку по 8.2 так и не начал читать, каюсь...
1 butterbean
 
01.09.11
13:37
в трех словах - нужно юзать запрос
2 imtade2
 
01.09.11
13:39
(1) так и думал, что фразу "в трех словах" не нужно было писать))
поподробней пожалуйста!
3 imtade2
 
01.09.11
13:44
(1) делать отбор по ссылке - единственный вариант?
4 imtade2
 
01.09.11
16:40
&НаКлиенте
Процедура ОтборПоАртикулуПриИзменении()
       
   КоллекцияОтборов = Список.Отбор.Элементы;
   Для Каждого Элемент Из КоллекцияОтборов Цикл
       Если Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка") Тогда
           ЭлементОтбора = Элемент;
       КонецЕсли;
   КонецЦикла;
   
   Если ЭлементОтбора = Неопределено Тогда
       ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
   КонецЕсли;
   ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
   ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
   ЭлементОтбора.Использование = ОтборПоАртикулу;
   ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
   ЭлементОтбора.ПравоеЗначение = НайтиПоАртиклу(_Артикул);
   Если ОтборПоАртикулу Тогда
       Элементы.Список.Отображение = ОтображениеТаблицы.Список;
   Иначе
       Элементы.Список.Отображение = ОтображениеТаблицы.Дерево;        
   КонецЕсли;

КонецПроцедуры

&НаСервере
Функция НайтиПоАртиклу(Артикул)
   Запрос = Новый Запрос("ВЫБРАТЬ
                         |    Номенклатура_Артикулы.Ссылка КАК ССылка    
                         |ИЗ
                         |    Справочник.Номенклатура._Артикулы КАК Номенклатура_Артикулы
                         |ГДЕ
                         |    Номенклатура_Артикулы._Артикул подобно &Артикул");
   Запрос.УстановитьПараметр("Артикул", "%"+_Артикул+"%");
   
   Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");    
   
КонецФункции
5 imtade2
 
01.09.11
16:40
как сделать не через задницу?
6 imtade2
 
01.09.11
16:41
или хотя бы менее через задницу
пс этот вариант работает
7 imtade2
 
01.09.11
16:51
ап
8 imtade2
 
01.09.11
18:34
апп