|
8.2 СКД проверка условия перед исполнением отчета | ☑ | ||
---|---|---|---|---|
0
adron
27.01.12
✎
16:33
|
Есть ли в механизме СКД функционал проверки некого условия, перед выполнением отчета. Ну и в зависимости от условия - выполнять или нет отчет.
|
|||
1
pessok
27.01.12
✎
16:35
|
Есессна есть. Так же как и везде. Просто компоновщик ручками пропиши и процедура вывода
|
|||
2
adron
27.01.12
✎
16:38
|
Дык не охота ручками то. Дело в том что оно - условие, будет в каждом третьем отчете проверяться...
|
|||
3
acsent
27.01.12
✎
16:39
|
хрень какаято
|
|||
4
Defender aka LINN
27.01.12
✎
16:40
|
Что за условие-то такое, мне прямо интересно?
Я о многих извращениях слышал, но о таком - в первый раз. |
|||
5
adron
27.01.12
✎
16:40
|
Знаю что, например, вызов процедуры общего модуля можно помещать в выражение параметра. Но как потом этот параметр так обработать в запросе, чтобы отказаться от его выполнения:)
|
|||
6
pessok
27.01.12
✎
16:40
|
тебе просто процессор вывода написать надо. условие загони в глобальный модуль и проверяй в каждом отчете. сами настройки можно делать как обычно, через гуй
|
|||
7
adron
27.01.12
✎
16:41
|
Грубо говоря - условие на проверку актуальности некоторых данных. Типа если данные актуальны - запрос выполняем.
|
|||
8
GenV
27.01.12
✎
16:41
|
(5) а пользователь не должен догадаться о причинах не выполнения отчета, правда?
|
|||
9
pessok
27.01.12
✎
16:41
|
(7) см выше. только так
|
|||
10
Defender aka LINN
27.01.12
✎
16:42
|
(7) Наверняка в медицине и для этого есть название...
|
|||
11
adron
27.01.12
✎
16:43
|
(10) шутим?
|
|||
12
adron
27.01.12
✎
16:43
|
(6) кроме процессора надо ещё все кнопки перерисовать на форме.
|
|||
13
pessok
27.01.12
✎
16:45
|
(12) ну это мелочи жизни
|
|||
14
Defender aka LINN
27.01.12
✎
16:45
|
(11) Ни в коем разе. Я пойму вопрос с предложением перед формированием эти самые данные актуализировать, как в ТиС было в свое время. Но не выводить отчет вообще - на месте пользователя я бы за такое загрыз.
|
|||
15
adron
27.01.12
✎
16:45
|
(8) должен конечно, и желательно ещё чтобы процедурка по актуализации данных ещё отработала
|
|||
16
Defender aka LINN
27.01.12
✎
16:46
|
(12) Это какие? Кнопку "закрыть"?
Ну и, какбе, юзайте подсистему отчетов на СКД, там все уже украдено, до вас. |
|||
17
adron
27.01.12
✎
16:46
|
(14) выводить или нет - решать пользователю. Вопрос про функционал СКД
|
|||
18
acsent
27.01.12
✎
16:47
|
в модуле отчета в процедуре ПриКомпоновкеДанных
если не проверка тогда стандартная обработка = ложь |
|||
19
adron
27.01.12
✎
16:47
|
(16) не - кнопку "сформировать", "настройки", и уеву тучу кнопок в подменю "Все действия". И это в каждом отчете
|
|||
20
adron
27.01.12
✎
16:48
|
(18) спасибо, попробую
|
|||
21
Defender aka LINN
27.01.12
✎
16:54
|
(19) А кнопка "настройки"-то тебе чем не угодила? О_о
|
|||
22
adron
27.01.12
✎
16:56
|
(21) ибо в группе реквизитов формы "ОсновнаяКоманднаяПанель" нельзя убрать/переопределить только кнопку "Сформировать" - придется её целиком перересовывать, включая все её кнопки
|
|||
23
Defender aka LINN
27.01.12
✎
16:58
|
(22) Нуну
|
|||
24
adron
27.01.12
✎
17:03
|
(18) блин в процедуре ПриКомпоновкеДанных можно только серверные процедуры вызывать. Как же мне у юзера спросить актуализировать данные или нет? Можно ли передать управление на клиент или задать вопрос с Сервера:)?
|
|||
25
adron
27.01.12
✎
17:08
|
(24) дуамаю это уже отдельный вопрос. Всем спасибо!
|
|||
26
adron
27.01.12
✎
17:22
|
(18) Всё = не получается как надо. Т.е. проверить на условие и отказаться я теперь могу. Но мне необходимо теперь узнать у пользователя - будет ли он отказываться от выполнения. Т.е. задать вопрос:) КАК?
|
|||
27
XxGunnxX
27.01.12
✎
17:31
|
А если кнопку сформировать перенаправить на собственный обработчик и там проверить условие, задать вопрос а потом если все ОК вызвать
СкомпоноватьРезультат() |
|||
28
adron
27.01.12
✎
17:55
|
(27) как это сделать (перенаправить)? Ведь я даже не знаю имя элемента "кнопки"...
|
|||
29
XxGunnxX
27.01.12
✎
18:00
|
А схема программно создается? Или у нее таки есть форма?
|
|||
30
XxGunnxX
27.01.12
✎
18:07
|
Я имел ввиду именно на форме изменить свойство "действие" с "сформировать" на "КнопкаСформироватьНажатие". Это и есть перенаправить на собственный обработчик
|
|||
31
adron
27.01.12
✎
18:41
|
(30) Сделал как ты сказал и получилось! Спасибо.
Форма есть. У формы есть элемент "ОсновнаяКоманднаяПанель" вид "Командная панель", источник команд "Форма". Кнопки на ентом элементи сами появляются. |
|||
32
adron
27.01.12
✎
18:47
|
Итог - решил задачу с наименьшими усилиями след образом:
Создал форму по умолчанию, ничего в ней не менял. Добавил новую команду "Сформировать", в модуль формы добавил следующий текст: &НаКлиенте Процедура Сформировать(Команда) Если ДанныеНоменклатурыКлиент.ДанныеНоменклатурыАктуальны("Основной поставщик, менеджер",Ложь) Тогда ЭтаФорма.СкомпоноватьРезультат(); КонецЕсли; КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Элементы.ОсновнаяКоманднаяПанель.ПодчиненныеЭлементы.ФормаСформировать.ИмяКоманды = "Сформировать"; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |