• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Проблема с отбором в журнале

  • Автор темы gorlanovmax
  • Дата начала
G

gorlanovmax

Хочу установить в своем журнале отбор по реквизиту.
Графа отбора "Сотрудник" создана, значение: "Справочник.Сотрудники"

использую вот такой код

Код:
Перем СотрудникДляОтбора, Значение;

Процедура Отбор()
Перем ВыбЗначение, ТекущДок;
ТекущДок = ТекущийДокумент;
ВидыОтбора("*");
ВыбЗначение=СоздатьОбъект("Справочник.Сотрудники");
Если ВыбЗначение.Выбрать("Выберите сотрудника","Форма Списка")=1 Тогда
СотрудникДляОтбора=ВыбЗначение;
КонецЕсли;
Если СотрудникДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Сотрудник", СотрудникДляОтбора);
СотрудникДляОтбора = СотрудникДляОтбора.ТекущийЭлемент();
Иначе
УстановитьОтбор("");
КонецЕсли;
ВидыОтбора("");
Значение=Строка(СотрудникДляОтбора);
Попытка
АктивизироватьОбъект(ТекущДок);
Исключение	
Сообщить(ОписаниеОшибки(),"!");
КонецПопытки;	
КонецПроцедуры

Значение="";
СотрудникДляОтбора=СоздатьОбъект("Справочник.Сотрудники");

но при этом отбор не производится и выскакивает ошибка
УстановитьОтбор("Сотрудник", СотрудникДляОтбора);
{Журнал.Смены.Форма.ФормаСписка.Модуль(12)}: Неверное имя реквизита!

Хотя СотрудникДляОтбора - это элемент справочника Сотрудники.

В чем беда?
 
H

Hryv

На мой взгляд в коде есть ошибка
Я бы написал
Код:
	Если ВыбЗначение.Выбрать("Выберите сотрудника","Форма Списка")=1 Тогда
СотрудникДляОтбора=ВыбЗначение.ТекущийЭлемент();
КонецЕсли;
Если СотрудникДляОтбора.Выбран()>0 Тогда
УстановитьОтбор("Сотрудник", СотрудникДляОтбора);
Иначе
...


ЗЫ Для реквизита "Сотрудник" обязательно должен быть установлен флаг "Отбор по реквизиту"
 
G

gorlanovmax

ЗЫ Для реквизита "Сотрудник" обязательно должен быть установлен флаг "Отбор по реквизиту"

так фигня в том, что "сотрудник" это элемент справочника "сотрудники". где в самом справочнике поставить "отбор по реквизиту"? ФИО сотрудника - это наименование элемента справочника.

понятно что вопрос глупый и простой, но меня заклинило, разобраться не могу :(

и журнал должен быть общим

блин, а какой тогда в этом интерес.
у меня есть журнал документов "рабочая смена". мне там другие документы не нужны. и хочется чтобы был быстрый отбор по сотруднику
 
L

LSH

блин, а какой тогда в этом интерес.

Надо жалобу в 1С написать, мол какого хрена, нам хочется отбор в спец. журналах! :(

у меня есть журнал документов "рабочая смена". мне там другие документы не нужны. и хочется чтобы был быстрый отбор по сотруднику

Создать графу отбора журналов - "Сотрудник_Рабочая_Смена", которому назначить только реквизит документа "Рабочая смена". Когда отбор будет идти по нему - отфильтруются только нужные документы. При отключении отбора (интерактивном) автоматически устанавливать отбор по виду документов ("Рабочая смена"). Вот и всё. И левых доков в журнале не будет.
 
G

gorlanovmax

понял. вечером буду пробовать. всем спасибо.
 
H

Hryv

На счет флажка - это я невнимательно тему посмотрел, решил, что отбор не в журнале, а в справочнике

Попробуйте все таки использовать мой код, т.к. мне кажется, что значение для отбора должно быть получено через .ТекущийЭлемент()

А журнал действительно должен быть общим
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!