|
v7: Отбор в журнале | ☑ | ||
---|---|---|---|---|
0
Enlighted
06.03.17
✎
19:48
|
Добрый вечер знающие.
Хочу: Чтобы в журнале документов были документы только 3-х типов и только с реквизитом Автозакрытие = 1. Сделал: Журнал, общий, выбрал все три типа документа которые там должны быть, Добавил графу "Автозакрытие" связал её с аналогичным реквизитом этих самых документов, написал процедуру в форму журнала: Процедура ПриОткрытии() Если ПустоеЗначение(Автозакрытие) = 0 Тогда УстановитьОтбор("Автозакрытие", 1); КонецЕсли; КонецПроцедуры Результат: все подряд документы этих трёх типов не взирая на значение в реквизите Автозакрытие. Внимание вопрос! В какой кусок этого "длинного" кода биться головой? |
|||
1
GreyK
06.03.17
✎
19:53
|
Сделай реквизит ОтборПоЖурналу, ни с чем его не связывай. Ну и если ОтборПоЖурналу = 0, тогда УстановитьОтбор("Автозакрытие", 0); Иначе УстановитьОтбор("Автозакрытие", 1);
|
|||
2
Enlighted
06.03.17
✎
20:30
|
(1) Добавил графу в журнал: ОтборПоЖурналу, не связывал ни с чем, код поменял на:
Процедура ПриОткрытии() Если ПустоеЗначение(ОтборПоЖурналу) = 0 Тогда УстановитьОтбор("Автозакрытие", 0); Иначе УстановитьОтбор("Автозакрытие", 1); КонецЕсли; КонецПроцедуры Ошибка: УстановитьОтбор("Автозакрытие", 1); {Журнал.ЖурналАвтозакрытий.Форма.ФормаСписка.Модуль(9)}: Неверное имя реквизита! |
|||
3
Enlighted
06.03.17
✎
20:33
|
(2) Извиняюсь, убрал ковычки вокруг Автозакрытие ошибку не выдаёт, но по прежнему в журнал попадают все документы подряд
|
|||
4
Enlighted
06.03.17
✎
20:35
|
(3) Ну точнее трёх видов, вне зависимости от того чему равен реквизит Автозакрытие
|
|||
5
Builder
06.03.17
✎
21:37
|
(3) Кавычки как раз нужны.
Синтаксис: УстановитьОтбор(<ИмяОтбора>,<ЗначениеОтбора>) А почему графу отбора ни с чем не связал? Религия не позволяет? По ней то как раз отбор и делается. А графа журнала не нужна тут. |
|||
6
Enlighted
06.03.17
✎
21:44
|
(5) Простите а в кавычках писать идентификатор колонки или её название? А то кавычки меня ставят в тупик. В начале написал что графа отбора связана с соответствующим реквизитом в документах.
|
|||
7
Enlighted
06.03.17
✎
21:45
|
(5) Да небольшая поправка графа по которой ведётся отбор, помечена как невидимая.
|
|||
8
Enlighted
06.03.17
✎
21:49
|
(6) Попробовал написать в кавычках и имя и идентификатор колонки. Выдаёт ошибку:
УстановитьОтбор("ЗакрытьАвтоматом", 1); {Журнал.ЖурналАвтозакрытий.Форма.ФормаСписка.Модуль(9)}: Неверное имя реквизита! Код упростил донельзя: Процедура ПриОткрытии() УстановитьОтбор("ЗакрытьАвтоматом", 1); КонецПроцедуры |
|||
9
GreyK
06.03.17
✎
22:07
|
(8) Что такое "ЗакрытьАвтоматом"? Это реквезит документа?
|
|||
10
Остап Сулейманович
06.03.17
✎
22:11
|
(8) "Неверное имя реквизита!" - скорее всего журнал не общий.
|
|||
11
HawkEye
06.03.17
✎
23:46
|
(0) чтобы отбор работал.. надо делать "Графа отбора", в корне... а не графа в журнале...
|
|||
12
vcv
07.03.17
✎
05:33
|
(0)
>> Журнал, общий, выбрал все три типа документа >> которые там должны быть Непонятно как. Для общих журналов нет возможности выбора видов документов. В них включаются все виды. >> Чтобы в журнале документов были документы >> только 3-х типов и только с реквизитом Автозакрытие = 1 Самый штатный метод такое сделать, добавить в документы реквизит, например, АвтозакрытиеДляОтбора и заполнять его только для нужных видов документов. По этому реквизиту графу отбора. Или, если реквизит общий, то просто включит отбор. В журнале УстановитьОтбор по этому реквизиту/графе |
|||
13
Enlighted
07.03.17
✎
08:33
|
(12) Извиняюсь перепроверил, сделал журнал общим, реквизит ЗакрытАвтоматом стоит в нужных документах специально для того чтобы фильтровать в журнале.
(9) ЗакрытьАвтоматом - это название графы в журнале, Возможные значения у неё только реквизит 3-х видов документа "ЗакрытАвтоматом" |
|||
14
Enlighted
07.03.17
✎
08:58
|
(11) О! нашёл где это :) Добавил графу отбора сейчас буду пробовать далее.
|
|||
15
Enlighted
07.03.17
✎
09:38
|
(10) (11) (12) Всех благодарю получилось.
Код: Процедура ПриОткрытии() Если ПустоеЗначение(ОтборПоЖурналу) = 0 Тогда УстановитьОтбор("ЗакрытАвтоматом", 0); Иначе УстановитьОтбор("ЗакрытАвтоматом", 1); КонецЕсли; КонецПроцедуры Добавил графу отбора в корне журналов. Теперь поясните пожалуйста зачем нужно было вводить графу "ОтборПоЖурналу" и УстановитьОтбор("ЗакрытАвтоматом", 0) я не понимаю смысла в них? |
|||
16
Это_mike
07.03.17
✎
09:39
|
для отбора. посмотри в структуру базы, поймешь. если не поймешь - забей, тогда объяснять бессмысленно
|
|||
17
Enlighted
12.03.17
✎
13:28
|
(16) При чем тут структура базы? Структура базы SQL?
Согласно структуре журнала колонка "ОтборПоЖурналу" вообще не используется и не имеет в себе никаких значений, она даже не вынесена в таблицу, то есть ПустоеЗначение(ОтборПоЖурналу) всегда равно 1, вообще всегда, всегда всегда. Смысл проверки условия на равенство сего выражения нулю от меня ускользает. Тем более, при оставлении кода: УстановитьОтбор("ЗакрытАвтоматом", 1); Всё работает точно так же. Может хоть кто нибудь объяснит почему надо ставить такое условие как в (15) ? |
|||
18
Enlighted
12.03.17
✎
13:44
|
А возможно ли несколько критериев отбора в одном журнале, то есть установитьотбор несколько раз подряд работать будет?
Теперь нужно чтобы в основном журнале эти документы не отображались, В связи с этим возник вопрос если значение параметра отбора пустое, как это указать в УстановитьОтбор, например в некоторых документах такого реквизита вообще нет, мне надо чтобы эти документы попадали в журнал. |
|||
19
Builder
12.03.17
✎
14:32
|
(18)
1. Низя. В 7.7 штатно отбор по одному реквизиту. Но есть нештатные способы. 2. Нет реквизита - нет отбора. |
|||
20
Злопчинский
12.03.17
✎
14:46
|
(18) если база скудьна то можно
|
|||
21
Enlighted
12.03.17
✎
17:39
|
(20) Нет, база файловая.
|
|||
22
Enlighted
12.03.17
✎
18:34
|
(19) Получается критерием отбора отсутствие реквизита поставить нельзя?
|
|||
23
Builder
12.03.17
✎
18:43
|
(22) Нет реквизита - не попадет в отбор в любом случае.
|
|||
24
HawkEye
12.03.17
✎
19:15
|
(18) ты узнай сначала задачу полностью, потом уже и думай над решением....
|
|||
25
HawkEye
12.03.17
✎
19:24
|
(15)
1. графа отбора бывает только в корне, т.е. для всех общих журналов 2. для того, чтобы организовать отбор, надо: 2.1 добавить графу отбора 2.2 добавить в графу отбора нужные реквизит из документа каждого вида 3. чтобы отбор работал программно - надо написать код все. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |