Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
03 июн 2026, 18:40

Отбор в форме выбора по полю‑ссылке на справочник

Автор Panhead, Сегодня в 15:42

LexaK и 4 гостей просматривают эту тему.

Panhead

Здравствуйте!

Есть справочники:

1) Сотрудники.
Реквизиты: Пол, ....., Должность (СправочникСсылка.Должности).

2) Должности

Есть документ: ПродажаТоваров

В нём есть реквизит: Сотрудник (СправочникСсылка.Сотрудники)




1. Подскажите пожалуйста, как сделать так, чтобы в форме списка отображались должности. (Они передаются через проведения документа: ПриёмНаРаботу)

2. Нужно на форме выбора сотрудников нужно сделать фильтр по должности, и при открытии формы устанавливать значение


Сперва я попытался сделать через параметры открываемой формы...

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


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

Не сработало! И как я понял, что  "Должность" не хранится в справочнике,  а лишь отображается на форме в момент открытия.

Окажите, пожалуйста, помощь.

antoneus

Ну так если должность - это СправочникСсылка.Должности, то и в отбор надо ссылку передавать, а не строку.
В форме выбора должность отображается?

Panhead


antoneus

Ну, можно отобразить и сделать по нему отбор.

Panhead

antoneus, попробовал модифицировать и хоть окно формы выбора выводит, но выводит пустоту!

&НаСервере
Функция ПолучитьДолжностьФармацевтаНаСервере()
    ДолжностьФармацевт = Справочники.Должности.НайтиПоНаименованию("Фармацевт");
    Если ДолжностьФармацевт.Пустая() Тогда
        Возврат Неопределено;
    КонецЕсли;
    Возврат ДолжностьФармацевт;
КонецФункции


&НаКлиенте
Процедура СотрудникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;


   
    ДолжностьФармацевт = ПолучитьДолжностьФармацевтаНаСервере();

    Если ДолжностьФармацевт = Неопределено Тогда
        Сообщить("Не найдена должность 'Фармацевт' в справочнике!");
        Возврат;
    КонецЕсли;

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

antoneus

В форме выбора в списке произвольный запрос? Какой?

Panhead

antoneus,

ВЫБРАТЬ
    Сотрудники.Ссылка КАК Ссылка,
    Сотрудники.Наименование КАК Наименование,
    СтатусСотрудникаСрезПоследних.Должность КАК Должность,
    СтатусСотрудникаСрезПоследних.Подразделение КАК Подразделение
ИЗ
    Справочник.Сотрудники КАК Сотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусСотрудника.СрезПоследних КАК СтатусСотрудникаСрезПоследних
        ПО СтатусСотрудникаСрезПоследних.Сотрудник = Сотрудники.Ссылка

Выдаёт только первого фармацевта (который раньше всех был проведён) и даже не отображается в поле реквизита сотрудник.




antoneus


Теги:  

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

Рейтинг@Mail.ru

Поиск