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

Проверить стоит ли отбор

Автор BorisSPb, 17 сен 2013, 13:51

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

BorisSPb

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

Стоит следующая задача: необходимо проверить стоит ли отбор в динамическом списке по элементу "Склад".

Я написал следующую процедуру, которая вызывается по команде нажатия кнопки:

&НаКлиенте
Процедура ОткрытьСправочникНоменклатура();
Если Элементы.Список.Отбор["Склад"]  Тогда
    ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
КонецЕсли
КонецПроцедуры


Но в режиме предприятия выдаётся ошибку:

{Документ.ВнутреннееПотреблениеТоваров.Форма.ФормаСписка.Форма(97)}: Поле объекта не обнаружено (Отбор)
Если Элементы.Список.Отбор["Склад"]  Тогда


Подскажите, пожалуйста, как исправить данную ошибку?




LordWizard

может я ошибаюсь - ты обращаешься к списку документов, а требуешь отбор в Элементах?
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

BorisSPb

Если написать:

Если Список.Отбор["Склад"]  Тогда
ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
КонецЕсли


То выдаёт ту же ошибку.

LordWizard

давай определимся:Ты в каком списке пытаешься сделать отбор?
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

BorisSPb

В динамическом списке документов (Документ.ВнутреннееПоступлениеТоваров.ФормаСписка). Только я хочу не поставить отбор, а проверить поставил его ли пользователь.

LordWizard

:xfbnsdfb: а причем здесь пользователь? мы сейчас о какой конфигурации говорим и о какой задаче? и как он должен поставить или не поставить отбор?
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

BorisSPb

Вот задача целиком.

Описание:
Добавить в список документов внутренних потреблений товаров (ВПТ) кнопку       
"Номенклатура".                                                                 
Эта кнопка должна открывать форму списка справочника номенклатуры.             
Если в списке документов сделан отбор по складу и склад попадает в группу       
складов ОМТС (есть глобальное значение), то этот отбор нужно наложить и на сам 
список открываемого справочника.                                               
!!! Избежать интерактивного изменения формы справочника.                       

LordWizard

Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

BorisSPb

В принципе вопрос не по этой части задания. Вопрос, как проверить стоит ли на списке отбор или нет?

MuI_I_Ika

Вот код, который покажет как производить отбор в динамическом списке:

ЭлементДобавлен = Ложь;
Для каждого ЭлементНастройки из ЭлектронныеПропуска.Отбор.Элементы Цикл
Если ЭлементНастройки.ЛевоеЗначение = ДоступноеПоле.Поле Тогда
ЭлементНастройки.ПравоеЗначение = Объект.Ссылка;
ЭлементНастройки.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементНастройки.Использование = Истина;
ЭлементДобавлен = Истина;
КонецЕсли;
КонецЦикла;

Если не ЭлементДобавлен Тогда

НовыйЭлемент = ЭлектронныеПропуска.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлемент.ЛевоеЗначение = ДоступноеПоле.Поле;
НовыйЭлемент.ПравоеЗначение = Объект.Ссылка;
НовыйЭлемент.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлемент.Использование = Истина;

КонецЕсли;


То есть как вы поняли искать элемент отбора нужно не в элементе формы, а реквизите.

Теги: Отбор 

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

Рейтинг@Mail.ru

Поиск