Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
01 авг 2021, 12:59

Выбор по значению в реквизите справочника

Автор Anachronizm, 20 дек 2020, 19:20

0 Пользователей и 1 гость просматривают эту тему.

Anachronizm

Здравствуйте! У меня есть вопрос касательно выбора записей из справочника.

У меня имеется справочник Сотрудники, в нём есть реквизит с типом СправочникСсылка.Должности, и выбираю сотрудников, которые должны провести мне документ (на форме документа поле выбора сотрудников).

Как я могу сделать выбор только тех сотрудников, которые являются Бухгалтерами, в конфигураторе.

antoneus

Если нужно ограничить выбор в реквизите на форме, то так.

Должность = Справочники.Должности.НайтиПоНаименованию("Бухгалтер");
НовыйПараметр = Новый ПараметрВыбора("Отбор.Должность", Должность);
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(НовыйПараметр);
НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
Элементы.Сотрудник.ПараметрыВыбора = НовыеПараметры;


Помним, что Справочники на клиенте недоступны, весь код должен выполняться на сервере.

Anachronizm

Цитата: antoneus от 21 дек 2020, 10:56
Если нужно ограничить выбор в реквизите на форме, то так.

Должность = Справочники.Должности.НайтиПоНаименованию("Бухгалтер");
НовыйПараметр = Новый ПараметрВыбора("Отбор.Должность", Должность);
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(НовыйПараметр);
НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
Элементы.Сотрудник.ПараметрыВыбора = НовыеПараметры;


Помним, что Справочники на клиенте недоступны, весь код должен выполняться на сервере.

Спасибо а где именно будет происходить такая сортировка? На форме выбора из справочника Сотрудники?

Если я выполняю команду на сервере:

Должность = Справочники.Должности.НайтиПоНаименованию("Бухгалтер");
Возврат Должность;


А остальные уже на клиенте в обработчике события НачалоВыбора или НачалоВыбораИзСписка.

НовыйПараметр = Новый ПараметрВыбора("Отбор.Должность", "Вызов функции на сервере, которая возвращает Должность");
НовыйМассив = Новый Массив();
НовыйМассив.Добавить(НовыйПараметр);
НовыеПараметры = Новый ФиксированныйМассив(НовыйМассив);
Элементы.Сотрудник.ПараметрыВыбора = НовыеПараметры;

LexaK

это настройка для конкретного поля одной формы.
в вашем случае этот код надо прописать в процедуру модуля формы документа: ПриСозданииНаСервере()

и все, дальше при выборе Сотрудника будут показываться только Бухгалтера

ответ Понравился? (в смысле пригодился?)

Anachronizm

Цитата: LexaK от 21 дек 2020, 15:57
это настройка для конкретного поля одной формы.
в вашем случае этот код надо прописать в процедуру модуля формы документа: ПриСозданииНаСервере()

и все, дальше при выборе Сотрудника будут показываться только Бухгалтера

Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск