Версия для печати темы (https://pro1c.org.ua/index.php?s=a94a1f90d4731d05562a4bab9383bae8&showtopic=33810)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Вібор из списка

Автор: pqvv 09.12.16, 10:51

Здравствуйте ! Вопрос касается 1С Предприятие 8.3, конф. УПП 1.3, тонкий клиент, управляемая форма. Необходимо в форме выбора номенклатуры отобразить только номенклатуру определенной группы "Засоби індивідуального захисту".

&НаСервереБезКонтекста
Функция ПолучитьСсылкуНаГруппу()    
НаимГр = "Засоби індивідуального захисту";    
ГруппаДляПоиска = Справочники.Номенклатура.НайтиПоНаименованию(НаимГр).Ссылка;
Возврат    ГруппаДляПоиска;
КонецФункции

&НаКлиенте
Процедура МатериалыНоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ГруппаП = ПолучитьСсылкуНаГруппу();    
    ЗначениеОтбора = Новый Структура("Родитель", ПолучитьСсылкуНаГруппу());
    ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
    ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",ПараметрыВыбора, Элемент);  
    
КонецПроцедуры


Код не срабатывает, справочник в форме выбора отображается весь. Прошу подсказки.

Автор: logist 09.12.16, 11:24

Цитата(pqvv @ 09.12.16, 11:51) *
Код не срабатывает, справочник в форме выбора отображается весь.

Ссылка на группу не пустая? А то, поиск по наименованию, это из прошлого века smile.gif При открытии формы в параметрах (через отладчик) видно что отбор заполнен?

Автор: Vofka 09.12.16, 11:25

pqvv, в настройках списка в форме выбора элемент отбора вообще появляется?

Автор: pqvv 09.12.16, 11:52

Vofka @ Сегодня, 11:25 * ,
Да, появляется "Наименование равно Засоби індивідуального захисту".

Автор: Vofka 09.12.16, 12:05

pqvv @ Сегодня, 11:52 * ,
что-то не то. Должно быть что-то вроде Родитель = Засоби індивідуального захисту. Покажите скрин, в котором видно элемент отбор и поля, которые там слева в списке есть.

И вместо этого

Цитата(pqvv @ 09.12.16, 10:51) *
ГруппаДляПоиска = Справочники.Номенклатура.НайтиПоНаименованию(НаимГр).Ссылка;


можно писать так:
ГруппаДляПоиска = Справочники.Номенклатура.НайтиПоНаименованию(НаимГр);

Автор: pqvv 09.12.16, 13:00

Vofka @ Сегодня, 12:05 * ,
Спасибо, принцип понятен. Но отбор не работает и в форме через настройку отбора

Автор: logist 09.12.16, 13:45

Откройте динамический список выбора и посмотрите какие там доступны реквизиты, вероятно там нет "Родитель".

Автор: Flexy 09.12.16, 17:08

Вот так попробуйте:

Группа = ПолучитьГруппу();
ПарметрыФормыВыбора = Новый Структура;
Отбор = Новый Структура;
Отбор.Вставить("Родитель",Группа);
ПарметрыФормыВыбора.Вставить("Отбор",Отбор);
    
ФормаВыбора = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора", ПарметрыФормыВыбора);
ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
    
ФормаВыбора.Открыть();

Автор: pqvv 11.12.16, 22:18

Flexy @ 09.12.16, 17:08 * , Спасибо, работает. Но пришлось немного доработать, так как группа содержит подгруппы. Если выбирать списком - то получается список подгрупп, которые нельзя раскрыть.

Автор: Vofka 12.12.16, 9:20

pqvv, для спасибо у нас кнопка специальная имеется.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua