|
Не доступен метод Добавить() | ☑ | ||
---|---|---|---|---|
0
dart909
13.07.15
✎
09:22
|
Добрый день, есть столкнулся с такой проблемой. Есть справочник Сотрудники. Есть форма списка, на форме создал реквизит МойОтбор.
Создал событие : &НаКлиенте Процедура МойОтборНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) Список = Новый СписокЗначений(); Список.Добавить("Принят"); Список.Добавить("Больничный"); Список.Добавить("Уволен"); КонецПроцедуры Возникает ошибка метод Добавить() не обнаружен, как решить проблему? |
|||
1
Lexey_
13.07.15
✎
09:24
|
(0) Список это основной реквизит формы, назови переменную по-другому
|
|||
2
FIXXXL
13.07.15
✎
09:25
|
() у списокЗначений убери
|
|||
3
dart909
13.07.15
✎
09:28
|
(1) Сделал ошибка исчезла, но список пуст.
|
|||
4
Остап Сулейманович
13.07.15
✎
09:31
|
(3) Внимательно... до просветления... читать (2).
Ошибка здесь : "Список = Новый СписокЗначений();" |
|||
5
dart909
13.07.15
✎
09:38
|
Спасибо решил проблему.
|
|||
6
dart909
13.07.15
✎
09:53
|
(4) Можно еще вопрос а как сравнивать значение списка в условном операторе. Просто если писать так:
Если СписокЗнач.НайтиПоЗначению("Принят") Тогда // КонецЕсли То возникает ошибка, что преобразование к типу Булево не возможно. Тогда как получить значение из списка? |
|||
7
Lexey_
13.07.15
✎
09:58
|
(2), (4) а что не так-то?Использование скобок в конструкторе допускается же
(6) посмотреть в СП, что возвращает НайтиПоЗначению() |
|||
8
dart909
13.07.15
✎
10:00
|
(7) Возвращает значение Принят. Пометка Ложь
|
|||
9
dart909
13.07.15
✎
10:00
|
(7) А понял сек
|
|||
10
SeraFim
13.07.15
✎
10:07
|
Вангую, что следующим вопросом будет:
Код правильный, но отбор не работает! Почему? И ответом будет, что в "Принят", "Больничный", "Уволен" - это строки, а в форме справочника - перечисление |
|||
11
dart909
13.07.15
✎
10:08
|
(10) ТекОтбор = Список.Отбор.Элементы;
ТекОтбор.Очистить(); УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных")); УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус"); УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; УсловиеОтбора.ПравоеЗначение = перечисления.СтатусСотрудника.Принят; |
|||
12
SeraFim
13.07.15
✎
10:09
|
(11) О, тогда прошу прощения)
|
|||
13
dart909
13.07.15
✎
10:13
|
(12) Может вы мне подскажете тогда)
&НаСервере Процедура СделатьОтбор() ТекОтбор = Список.Отбор.Элементы; ТекОтбор.Очистить(); УсловиеОтбора = ТекОтбор.Добавить(тип("ЭлементОтбораКомпоновкиДанных")); УсловиеОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Статус"); УсловиеОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; УсловиеОтбора.ПравоеЗначение = перечисления.СтатусСотрудника.Принят; КонецПроцедуры &НаКлиенте Процедура ОтборНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) СписокЗнач = Новый СписокЗначений; СписокЗнач.Добавить("Принят"); СписокЗнач.Добавить("Больничный"); СписокЗнач.Добавить("Уволен"); СписокЗнач.ВыгрузитьЗначения(); Отбор = ВыбратьИзСписка(СписокЗнач,Элементы.Отбор); Если СписокЗнач.НайтиПоЗначению("Принят") Тогда СделатьОтбор(); КонецЕсли КонецПроцедуры Вот такой код, я не очень понимаю как в условном опереторе получить и сравнивать значение, так как при таком варианте ошибка преобразование к типу Булево не возможно. |
|||
14
Lexey_
13.07.15
✎
10:19
|
(13) в СП-то смотрел НайтиПоЗначению?там даже пример есть
|
|||
15
dart909
13.07.15
✎
10:26
|
Все сделал спасибо)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |