Имя: Пароль:
1C
1С v8
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
Итог - решил задачу с наименьшими усилиями след образом:
Создал форму по умолчанию, ничего в ней не менял.
Добавил новую команду "Сформировать", в модуль формы добавил следующий текст:

&НаКлиенте
Процедура Сформировать(Команда)
Если ДанныеНоменклатурыКлиент.ДанныеНоменклатурыАктуальны("Основной поставщик, менеджер",Ложь) Тогда
    ЭтаФорма.СкомпоноватьРезультат();
КонецЕсли;    
КонецПроцедуры

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.ОсновнаяКоманднаяПанель.ПодчиненныеЭлементы.ФормаСформировать.ИмяКоманды = "Сформировать";
КонецПроцедуры
Независимо от того, куда вы едете — это в гору и против ветра!