Имя: Пароль:
1C
1С v8
Отчет в управляемом приложении
0 bcosta
 
11.02.14
16:17
Только начал осваивать управляемое приложение. Пытаюсь сделать отчет.
Подскажите, пожалуйста, как сделать самый простейший отчет. Дальше уже сам додумаю.

Есть отчет, форма с табличным полем, макет.

Проблема в том, что как бы я не пытался, постоянно ошибки, что что-то недоступно на сервере, на клиенте и т.д.

Где вообще должна быть процедура печати, в модуле чего?
1 Жан Пердежон
 
11.02.14
16:22
делай на скд
2 bcosta
 
11.02.14
16:24
(1) про скд вообще ничего не знаю. А разве обычным макетом не сделать?
3 fisher
 
11.02.14
16:39
(2) Сделать. Но т.к. ты "только начал осваивать управляемое приложение", то будут "постоянно ошибки, что что-то недоступно на сервере, на клиенте и т.д".
А в простейшем отчете на СКД все ньюансы клиент-серверного взаимодействия платформа возьмет на себя.
4 fisher
 
11.02.14
16:58
На самом деле, с обычным макетом тоже никаких проблем.
Делаешь процедуру &НаСервере, в которой формируешь табличный документ и присваиваешь его реквизиту формы, который служит источником данных для твоего табличного поля. Её вызываешь из обработчика нажатия кнопки "Сформировать" (который &НаКлиенте). Вроде и всё...
5 bcosta
 
11.02.14
18:01
Дайте пример какой-нибудь, пожалуйста. Или подробнее напишите. Как с обычным макетом сделать.
Чего-то вообще не въехать.
6 jsmith
 
11.02.14
18:03
>>Только начал осваивать управляемое приложение
Методом самотыка?
Читай Радченко, разработка управляемых форм
И не плоди тупых тем на форуме
7 jsmith
 
11.02.14
18:04
*две разные книги
8 jsmith
 
11.02.14
18:06
и СКД, тоже классика, не помню название
9 fisher
 
11.02.14
18:17
Имеем пустую заготовку отчета с пустой управляемой формой.

1. Создаешь команду формы "Сформировать"
2. Создаешь реквизит формы "Результат" типа "ТабличныйДокумент"
3. Перетаскиваешь оба в дерево элементов формы - создадутся поле табличного документа и кнопка.
4. Создаешь макет с именем "Макет" и надписью в нем "Тест" (ну, или "да - я тормоз и лентяй")
5. В свойствах команды "Сформировать" клацаешь на лупу в свойстве "Действие" - откроется модуль формы с пустым обработчиком команды.
6. Приводишь модуль формы к виду:

&НаСервере
Процедура ВывестиОтчет()
    
    Результат = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
    
КонецПроцедуры
    
&НаКлиенте
Процедура Сформировать(Команда)
    
    ВывестиОтчет();
    
КонецПроцедуры
10 bcosta
 
11.02.14
18:27
Спасибо огромное. А где должно находиться описание параметров макета?
11 bcosta
 
11.02.14
18:36
А если на форме есть поле ввода. как мне его передать в макет?
Если так:
&НаСервере
Процедура ВывестиОтчет()
    
    Результат = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
Результат.Параметры.Тест = Объект.ПолеВвода;

    
КонецПроцедуры
    
&НаКлиенте
Процедура Сформировать(Команда)
    
    ВывестиОтчет();
    
КонецПроцедуры

то ругается, что нельзя на сервере.
12 fisher
 
11.02.14
18:45
Что тебе скажу. Без системного изучения ты подобные вопросы будешь бесконечно задавать. Забудь про научный тык.
Последний раз:

&НаСервере
Процедура ВывестиОтчет()

    ТаблицаОтчета = Новый ТабличныйДокумент;
    Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
    Макет.Параметры.Тест = ИмяРеквизитаПоляИсточникаДанныхПоляВвода;
    ТаблицаОтчета.Вывести(Макет);

    Результат = ТаблицаОтчета;
    
КонецПроцедуры
13 fisher
 
11.02.14
18:46
Тьфу. ИмяРеквизитаФормыИсточникаДанныхПоляВвода :)
14 bcosta
 
11.02.14
18:55
(12) Изучать по-любому надо будет. Просто сейчас срочно понадобилось.
Вот с этим не до конца понял - ИмяРеквизитаФормыИсточникаДанныхПоляВвода. Напиши, пожалуйста.
Если поле ввода - Номенклатура (реквизит обработки), то как должно это выглядеть в процедуре?
Заранее спасибо.
15 IamAlexy
 
11.02.14
18:56
самый прикол в том что для того чтобы сделать в управляемых формах отчет (да с настройками панельками и прочими плюшками в виде вариантов и отборов на форме) вообще кодить не надо..

все делается мышкой..
16 bcosta
 
11.02.14
18:59
(15) через СКД? большой сложный отчет пока не нужен. А в ближайшем будущем займусь изучением всего этого.
17 bcosta
 
11.02.14
19:01
По (14) ответьте, пожалуйста, кто-нибудь.
18 IamAlexy
 
11.02.14
19:01
(16) через СКД как раз то таки проще делать маленькие и простенькие отчеты :)
19 fisher
 
11.02.14
19:06
(14) Про реквизиты ОБЪЕКТА можешь забыть на УФ для отчетов и обработок. Они стали бесполезными, если объект не хранится в БД. Добавь реквизит ФОРМЫ и перетащи его в дерево объектов формы. И его имя указывай.
20 fisher
 
11.02.14
19:07
"дерево элементов формы"
21 fisher
 
11.02.14
19:15
А вообще - таки да, Учи СКД.
Я еще будучи на толстом клиенте только ради отчетности включал режим использования УФ.
УФ+СКД = вообще ничего не надо кодить в формах в 90% случаев.
22 bcosta
 
12.02.14
01:25
(19) Спасибо огромное! С этим делом до конца разгребу и буду книги читать по УФ и СКД.