Имя: Пароль:
1C
 
УФ закрытие отчета в случает отсутствия данных
0 fantomrik
 
15.12.15
13:14
Коллеги, привет!

При старте системы запускаю пользователю отчет на СКД. Как грамотно сделать, что бы в случае отсутствия данных в отчете форма отчета закрылась сразу?

В ОбщемМодулеКлиент

ФормаОтчета = ПолучитьФорму("Отчет.НулевыеЦеныЗакупки.Форма.ФормаОтчета");
ФормаОтчета.Открыть();

В форме отчета
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ЭтотОбъект.СкомпоноватьРезультат();
КонецПроцедуры

Можно конечно выполнить запрос и в случае 0-го результат не открывать отчет, но тогда в случае ненулевого запрос отчета будет выполняться 2-жды. Наверно как то можно проще сделать?
1 Лефмихалыч
 
15.12.15
13:40
КомпоновщикМакетаКомпоновкиДанных.Выполнить(<Схема>, <Настройки>, <ДанныеРасшифровки>, <МакетОформления>, <ТипГенератора>, <ПроверятьДоступностьПолей>, <ПараметрыФункциональныхОпций>).

Если макет получился пустой, то ДанныеРасшифровки будут не то пустые, не то вообще Неопределено. От этого можно оттолкнуться.
2 fantomrik
 
15.12.15
13:45
(1) А если программную компоновку не делать в модуле объекта, в модуле формы - нет вариантов?
3 Лефмихалыч
 
15.12.15
13:52
(2) я не знаю вариантов таких
4 aleks_default
 
15.12.15
14:08
(0)Передавай результат запроса как внешний источник  компановку
5 aleks_default
 
15.12.15
14:09
*внешний набор
*в ПроцессорКомпоновки
6 fantomrik
 
15.12.15
14:20
(4) ну аналогично (1) компоновку руками описывать придется. Эх так лениво, но раз по другому ни как, придется)))
7 aleks_default
 
15.12.15
14:25
Зачем вообще открывать отчет если нет данных? Может делать проверку перед открытием отчета?
8 aleks_default
 
15.12.15
14:26
У пользователей только вопросы вызывать будет.
9 fantomrik
 
15.12.15
14:32
(7) Так в этом и вопрос - как не открывать если нет данных) Я думал может как то проще можно - получаю форму, при создании формы на сервере - ЭтотОбъект.СкомпоноватьРезультат(). И анализируя его или открываю форму или нет
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший