|
Проверить стоит ли отбор на список? | ☑ | ||
---|---|---|---|---|
0
BorisSPb
17.09.13
✎
14:25
|
Здравствуйте.
Стоит следующая задача: необходимо проверить стоит ли отбор в динамическом списке по элементу "Склад". Я написал следующую процедуру, которая вызывается по команде нажатия кнопки: &НаКлиенте Процедура ОткрытьСправочникНоменклатура(); Если Элементы.Список.Отбор["Склад"] Тогда //... КонецЕсли КонецПроцедуры Но в режиме предприятия выдаётся ошибку: {Документ.ВнутреннееПотреблениеТоваров.Форма.ФормаСписка.Форма(97)}: Поле объекта не обнаружено (Отбор) Если Элементы.Список.Отбор["Склад"] Тогда Подскажите, пожалуйста, как исправить данную ошибку? |
|||
1
shuhard
17.09.13
✎
14:26
|
(0) открыть конфигуратор
поставить точку останова позырить Элементы.Список |
|||
2
Zamestas
17.09.13
✎
14:47
|
(0) Список.Отбор.Элементы перебираешь и смотришь что в нем.
|
|||
3
BorisSPb
17.09.13
✎
14:51
|
А каким методом перебирать?
|
|||
4
Zamestas
17.09.13
✎
14:54
|
(3) Для Каждого ....
|
|||
5
Sabbath
17.09.13
✎
15:02
|
(0) По идее у отбора может быть метод Количество(). Проверь в отладчике, работает ли. Ну или обходить через Для Каждого и смотреть, если там есть "использование". Сам-то не знаю, чисто предположения, где копать
|
|||
6
Sabbath
17.09.13
✎
15:03
|
+(5) короче поставь точку останова, посмотри, что там за тип и найди в синтаксис-помощнике, что с ним можно делать
|
|||
7
BorisSPb
17.09.13
✎
16:36
|
Всем спасибо. Код заработал. Если кому пригодится:
КоллекцияОтбора=Список.Отбор.Элементы; Для Каждого Элемент Из КоллекцияОтбора Цикл //Ваш код КонецЦикла; Буду также признателен, если вы подскажите каким методом можно получить объект по ссылке? |
|||
8
Fish
17.09.13
✎
16:41
|
(7) Ссылка.ПолучитьОбъект() ?
|
|||
9
BorisSPb
17.09.13
✎
16:47
|
Методом "Ссылка.ПолучитьОбъект()" можно воспользоваться только на сервере?
|
|||
10
Classic
17.09.13
✎
16:49
|
(9)
На клиенте вообще объектов нет. |
|||
11
BorisSPb
17.09.13
✎
16:56
|
А как тогда с клиента получить объект. Я попробовал такой код, но он выдаёт ошибку.
&НаКлиенте Процедура ОткрытьСправочникНоменклатура(); КоллекцияОтбора=Список.Отбор.Элементы; Эл = КоллекцияОтбора[0]; Объект = ПолучитьОбъектС_Сервера(Эл.ПравоеЗначение); //.. КонецПроцедуры &НаСервереБезКонтекста Функция ПолучитьОбъектС_Сервера(Ссылка) Возврат Ссылка.ПолучитьОбъект(); КонецФункции |
|||
12
Classic
17.09.13
✎
16:58
|
(11)
Зачем тебе на клиенте объект? |
|||
13
BorisSPb
17.09.13
✎
17:06
|
На клиенте объект не нужен. Нужно значение его реквизита. Сейчас такой код выдаёт ошибку: Элемент не выбран!
&НаКлиенте Процедура ОткрытьСправочникНоменклатура(); КоллекцияОтбора=Список.Отбор.Элементы; Эл = КоллекцияОтбора[0]; Объект=ПроверитьПринадлежностьГруппеОМТС(Эл.ПравоеЗначение); //.. КонецПроцедуры &НаСервереБезКонтекста Функция ПроверитьПринадлежностьГруппеОМТС(Ссылка) Склад = Ссылка.ПолучитьОбъект(); Возврат Склад.ВыборГруппы; КонецФункции |
|||
14
Classic
17.09.13
✎
17:08
|
(13)
И на какой строке ошибку выдает? |
|||
15
BorisSPb
17.09.13
✎
17:09
|
Все разобрался. Просто в отборе на пустую ссылку сравнение было.
|
|||
16
BorisSPb
17.09.13
✎
17:13
|
Как можно проверить принадлежит ли объект группе?
|
|||
17
Rovan
гуру
17.09.13
✎
17:24
|
(16) какой объект ? элемент справочника ??
|
|||
18
Rovan
гуру
17.09.13
✎
17:25
|
ПринадлежитЭлементу(<Элемент>)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |