|
v7: Поставщик данных - журнал регистрации: не проходит отбор по виду | ☑ | ||
---|---|---|---|---|
0
Zhuravlik
19.07.13
✎
10:42
|
Добрый день. Почему-то не работает вот этот код:
ЭлемОтбора = пдРегЖурнал.Отбор.Добавить("ТырПыр"); ЭлемОтбора.УстановитьТипИЗначение(11, "АвансовыйОтчет"); пдРегЖурнал.Отбор.Установить(0); Из доки: ... УстановитьТипИЗначение([ТипОтбора],[ЗначениеОтбора])... Типом элемента отбора могут быть: ... * 11 - вид объекта. * Значение = Строка; Имеется в виду что? Вид объекта в смысле - идентификатор объекта в метаданных, или что-то другое? Потому что отбор на конкретно заданный вид просто не работает (ничего не изменяется), а на строку типа "Документ" или "Справочник" - вообще выдает пустоту. |
|||
1
Mikeware
19.07.13
✎
10:55
|
А посмотреть-то самому отладчиком - не судьба?
хотя бы во что процессируется запрос... |
|||
2
Zhuravlik
19.07.13
✎
11:01
|
(1) Прогнал через отладчик, ничего конкретного не увидел.
Кроме того, что и так известно) ЭлемОтбора.УстановитьТипИЗначение(11, "АвансовыйОтчет"); - возвращает 0 |
|||
3
Ёпрст
19.07.13
✎
11:10
|
"Документ.АвансовыйОтчет"
|
|||
4
Zhuravlik
19.07.13
✎
11:15
|
(4) Пустота
|
|||
5
Zhuravlik
19.07.13
✎
11:16
|
+ Как и Справочник.*Вид*, это я сразу попробовал....
|
|||
6
Zhuravlik
19.07.13
✎
11:18
|
Еще пробовал по строке из представления от начала до "№", тоже не катит
|
|||
7
Ёпрст
19.07.13
✎
11:21
|
ТабличноеПоле.ПоставщикДанных.ИзменитьФильтр(11, "Документ.АвансовыйОтчет");
|
|||
8
Ёпрст
19.07.13
✎
11:25
|
gbkznm
ТабличноеПоле.ПоставщикДанных.ИзменитьФильтр(2, "Документ.АвансовыйОтчет"); |
|||
9
Zhuravlik
19.07.13
✎
11:28
|
(7) Так пустота
Вот так работает: пдРегЖурнал.ИзменитьФильтр(140, "Документ.АвансовыйОтчет"); пдРегЖурнал.УстановитьФильтр(); Но хотелось бы именно отбором воспользоваться, собственно ради этого все и затевалось... |
|||
10
Ёпрст
19.07.13
✎
11:32
|
дык пихай по аналогии 140 и значение
|
|||
11
Zhuravlik
19.07.13
✎
11:35
|
(10) Через отбор не катит. Оно и в доке прописано, что там тип значения - 11...
|
|||
12
Zhuravlik
19.07.13
✎
11:41
|
(10) Ёпрст, а где скачать актуальную 1С++? У меня версия 3.2.3.20 от 15.03.2013, кто-то говорил что это не последний релиз, а я старше не смог найти.
|
|||
13
Ёпрст
19.07.13
✎
11:46
|
должно работать с 11 и "Документ.АвансовыйОтчет"
|
|||
14
Zhuravlik
19.07.13
✎
11:49
|
(14) Не работает, в то время как успешно выполняется аналогичный код с другими фильтрами. Например 6 - DocOpen
|
|||
15
Zhuravlik
19.07.13
✎
11:54
|
11 - Docs.АвансовыйОтчет - тоже нет
|
|||
16
Ёпрст
19.07.13
✎
12:00
|
||||
17
Ёпрст
19.07.13
✎
12:01
|
дык ты отбор ставь поставщику, а не табличному полю.
|
|||
18
Ёпрст
19.07.13
✎
12:01
|
у тя в (0) не верно же.
|
|||
19
Zhuravlik
19.07.13
✎
12:01
|
(16) Спасибо, сейчас на нем попробую.
(18) Верно, пдРегЖурнал - это и есть объект поставщика з.ы. Вот так прокатывает: ЭлемОтбора = пдРегЖурнал.Отбор.Добавить("ыапап"); ЭлемОтбора.УстановитьТипИЗначение(10, "Авансовый отчет"); пдРегЖурнал.Отбор.Установить(0); т.е. из представления до "№", странно что с 11 не работает |
|||
20
Ёпрст
19.07.13
✎
12:02
|
пдРегЖурнал - это поставщик данных у тебя ?
|
|||
21
Ёпрст
19.07.13
✎
12:02
|
проще забить и использовать фильтр
|
|||
22
Ёпрст
19.07.13
✎
12:02
|
который работает
|
|||
23
Zhuravlik
19.07.13
✎
12:03
|
(20) Да
(21) Там слишком большую таблицу соответствий нужно расписывать, чтобы сделать как хочу. Через отборы проще, и можно легко получить синоним события или категории. |
|||
24
Ёпрст
19.07.13
✎
12:07
|
(23)почему ?
всё тоже самое |
|||
25
Zhuravlik
19.07.13
✎
12:15
|
(24) Я хочу иметь возможность установить быстрый фильтр по текущему значению текущей колонки, причем чтобы была возможность одновременно использовать несколько фильтров. Для этого я расписываю таблицу соответствий:
//{итз_ТипыОтбора - Содержит в себе сопоставление номера отбора с именем колонки ТП //Используется для быстрого фильтра итз_ТипыОтбора = СоздатьОбъект("ИндексированнаяТаблица"); //3 - пользователь; //5 - тип события; //6 - событие; //7 - категория; //9 - объект; //10 - представление; //11 - вид объекта. итз_ТипыОтбора.НоваяКолонка("ид");//Идентификатор, имя поля В ТП итз_ТипыОтбора.НоваяКолонка("нм");//Номер категории итз_ТипыОтбора.НоваяКолонка("фл");//флаг, 1 - отбор установлен, 0 - нет итз_ТипыОтбора.НоваяСтрока(); итз_ТипыОтбора.нм = 3; итз_ТипыОтбора.ид = "Пользователь"; итз_ТипыОтбора.НоваяСтрока(); итз_ТипыОтбора.нм = 5; итз_ТипыОтбора.ид = "ТипСобытия"; итз_ТипыОтбора.НоваяСтрока(); итз_ТипыОтбора.нм = 6; итз_ТипыОтбора.ид = "Событие"; итз_ТипыОтбора.НоваяСтрока(); итз_ТипыОтбора.нм = 7; итз_ТипыОтбора.ид = "Категория"; итз_ТипыОтбора.НоваяСтрока(); итз_ТипыОтбора.нм = 9; итз_ТипыОтбора.ид = "Объект"; итз_ТипыОтбора.НоваяСтрока(); итз_ТипыОтбора.нм = 10; итз_ТипыОтбора.ид = "ВидОбъекта"; итз_ТипыОтбора.ДобавитьИндекс("ИНД_ид", "ид"); итз_ТипыОтбора.ДобавитьИндекс("ИНД_нм", "нм"); итз_ТипыОтбора.ЗаполнитьКолонку(,"фл", 0); //} При нажатии на кнопку быстрого фильтра по имени колонки получаю номер отбора, устанавливаю флаг того, что отбор задан, и формирую значение отбора по значению в акт. ячейке ТП. А с фильтрами так не прокатит. Либо нужно жестко прописать все возможные варианты, а их для этого слишком много. |
|||
26
Zhuravlik
19.07.13
✎
12:17
|
+ http://infostart.ru/public/193966/, да вы уже видели)
|
|||
27
Ёпрст
19.07.13
✎
12:26
|
и что мешает заместо отбора установить фильтр для этого значения ?
|
|||
28
Ёпрст
19.07.13
✎
12:27
|
тупо если тип 11 то не отбор.установить, а фильтр использовать с 140 и вид объекта
|
|||
29
Ёпрст
19.07.13
✎
12:27
|
усё.
|
|||
30
Zhuravlik
19.07.13
✎
12:30
|
(29) А если до этого были заданы другие отборы? Например я хочу отфильтровать по виду объекта и по пользователю? Как будут между собой дружить два разных метода?
|
|||
31
Ёпрст
19.07.13
✎
12:31
|
проверь, я не пользуюсь, у меня ЖР был отключен, за ненадобностью совсем.
|
|||
32
Zhuravlik
19.07.13
✎
12:59
|
(31) Работает... Да, наверное так и сделаю, спасибо :)
|
|||
33
Zhuravlik
19.07.13
✎
13:52
|
(31) Нет, все-же через 10 лучше. Если фильтровать по событию "Создан", то установка фильтра возращает пустоту
|
|||
34
Ёпрст
19.07.13
✎
13:54
|
тогда делай всё через фильтр
|
|||
35
Ёпрст
19.07.13
✎
13:54
|
в конфе со всеми классами валяется готовый пример
|
|||
36
Zhuravlik
19.07.13
✎
14:52
|
(34) А почему фильтр лучше отбора?
(35) Я смотрел |
|||
37
dedmoroz777
19.07.13
✎
14:54
|
(35)А что за конфа? Глянуть можно?
|
|||
38
Zhuravlik
19.07.13
✎
14:58
|
||||
39
Ёпрст
19.07.13
✎
15:04
|
(36) он хотя бы работает :)
А так, это одно и тоже (почти), на самом деле |
|||
40
Zhuravlik
19.07.13
✎
15:13
|
(39) Сделаю все-таки с отбором, буду тестить. Будут ошибки - перепишу на фильтры.
Но пока, за час - полет нормальный) (в см. с отбором по "10") |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |