Отбор динамического списка по группе (чтобы не показывал все ссылки что есть в группе)
Добрый день уважаемые форумчане. УНФ 3.0
Прошу помощи у гуру …
Была поставлена задача сделать так чтобы менеджер видел остатки всех товаров – но при этом не видел материалы (Группа материалы – код НФ-00000007).
В УНФ 3.0 пользователь видит остатки в списке номенклатуры и в форме подбора, которые по сути это форма списка номенклатуры.
Я подумал проще всего это сделать через отбор динамического списка.
Почему то такой код не работает, при чем не работает ВидСравненияКомпоновкиДанных.НеВИерархии и ВидСравненияКомпоновкиДанных.НеРавно - показывает полностью группу Материалы …
Но если задать отбор "Родитель.Код" НеСодержит "НФ-00000007" то работает с ограничением что если в группе материалы создать подгруппу то все будет видно …
Подскажите пжл
1) почему первый отбор не работает ? что нужно написать чтобы указать в отборе группу и сказать что все элементы которые в этой группе и подчиненные пользователь не мог видеть ?
2) если получиться как сделать тоже самое но с отбором 2 "Родитель.Код" ?
Заранее спасибо !!!
ниже ссылка на конфигурацию (Отбор устанавилвается в процедуре УстановитьОтборБезГруппы модуля __Сервер)
https://dropmefiles.com/8v7jj
Прошу помощи у гуру …
Была поставлена задача сделать так чтобы менеджер видел остатки всех товаров – но при этом не видел материалы (Группа материалы – код НФ-00000007).
В УНФ 3.0 пользователь видит остатки в списке номенклатуры и в форме подбора, которые по сути это форма списка номенклатуры.
Я подумал проще всего это сделать через отбор динамического списка.
ГруппаМатериаллы = Справочники.Номенклатура.НайтиПоКоду("НФ-00000007", Истина);
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель");
//или
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВИерархии;
//или
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = ГруппаМатериаллы;
ПоказатьПочему то такой код не работает, при чем не работает ВидСравненияКомпоновкиДанных.НеВИерархии и ВидСравненияКомпоновкиДанных.НеРавно - показывает полностью группу Материалы …
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель.Код");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеСодержит;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = "НФ-00000007";
Но если задать отбор "Родитель.Код" НеСодержит "НФ-00000007" то работает с ограничением что если в группе материалы создать подгруппу то все будет видно …
Подскажите пжл
1) почему первый отбор не работает ? что нужно написать чтобы указать в отборе группу и сказать что все элементы которые в этой группе и подчиненные пользователь не мог видеть ?
2) если получиться как сделать тоже самое но с отбором 2 "Родитель.Код" ?
Заранее спасибо !!!
ниже ссылка на конфигурацию (Отбор устанавилвается в процедуре УстановитьОтборБезГруппы модуля __Сервер)
По теме из базы знаний
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Сложные запросы в динамическом списке или как не надо писать запросы для них
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
- Интеграция Честный Знак и 1C: обмен и синхронизация для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ
- Применение 1С:Аналитики и Дата акселератора, или Как получить в 1С прозрачность и скорость обработки данных для прямого доступа и контроля руководителя
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Поставь точку остановки, посмотри что возвращает ГруппаМатериаллы. (убрал Истина)
Если уже есть настройки и они мешают, можно их очистить.
Ещё можно в интерфейсе пользователя, где список, Ещё- Настроить список - указать отбор руками.
Как получиться, такой же сделать программно.
Поставь точку остановки, посмотри что возвращает ГруппаМатериаллы. (убрал Истина)
ГруппаМатериаллы = Справочники.Номенклатура.НайтиПоКоду("НФ-00000007");
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = ГруппаМатериаллы;
Если уже есть настройки и они мешают, можно их очистить.
Список.Отбор.Очистить();
Ещё можно в интерфейсе пользователя, где список, Ещё- Настроить список - указать отбор руками.
Как получиться, такой же сделать программно.
(1) В модуле формы списка есть процедура УстановитьОтборПоИерархии(). В ней перезаписывается отбор по полю Родитель, если включен режим отображения по группам.
Вам необходимо переделать процедуру ЗаполнитьДеревоИерархии, чтобы в нее не попадала группа "НФ-00000007" и ее подчиненные группы.
Вам необходимо переделать процедуру ЗаполнитьДеревоИерархии, чтобы в нее не попадала группа "НФ-00000007" и ее подчиненные группы.
SlavaKron спасибо за вовлеченность - но В модуле формы списка нет ни процедуры УстановитьОтборПоИерархии() ни ЗаполнитьДеревоИерархии() ...
УНФ у меня если что 3.0.7.122
Интересно что их нету даже в УНФ 1.6 - 1.6.23.117
УНФ у меня если что 3.0.7.122
Интересно что их нету даже в УНФ 1.6 - 1.6.23.117
vladimir_korshun
- нет вообще никаких настроек нет и если пишу код
- то это не работает не понимаю почему ... вы можете тоже сами попробовать работать не будет ...
Если уже есть настройки и они мешают, можно их очистить.
- нет вообще никаких настроек нет и если пишу код
ГруппаМатериаллы = Справочники.Номенклатура.НайтиПоКоду("НФ-00000007");
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Родитель");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = ГруппаМатериаллы;
Показать- то это не работает не понимаю почему ... вы можете тоже сами попробовать работать не будет ...
vladimir_korshun
- ну а так конечно не пойдет - нужно чтобы пользователь не мог поменять данную настройку
Ещё можно в интерфейсе пользователя, где список, Ещё- Настроить список - указать отбор руками.
Как получиться, такой же сделать программно.
Как получиться, такой же сделать программно.
- ну а так конечно не пойдет - нужно чтобы пользователь не мог поменять данную настройку
Вот так по идее должно работать. Попробуйте.
ГруппаМатериаллы = Справочники.Номенклатура.НайтиПоКоду("НФ-00000007", Истина);
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВИерархии;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементОтбора.ПравоеЗначение = ГруппаМатериаллы;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот