Имя: Пароль:
1C
1С v8
8.2 УФ форма отчета
,
0 qeos
 
29.12.11
11:49
как это делается? дайте пример. только не СКД!!
1 Джинн
 
29.12.11
11:51
А в чем собственно проблема? Посмотри в УТ11 любой отчет.
2 qeos
 
29.12.11
11:52
(1) УТ нету..
проблема в том что макетов нету.. получается все руками форматировать?
3 YF
 
29.12.11
11:52
(3) Обычные формы умеешь делать для отчетов?
4 qeos
 
29.12.11
11:53
обычные - да..
но.. хочу макеты..
5 YF
 
29.12.11
11:53
(4) В чем проблема-то?
6 qeos
 
29.12.11
11:53
(3) хотя может и нет.. где макеты-то?
7 YF
 
29.12.11
11:54
(6) Какое отношение макеты имеют к форме?
8 Джинн
 
29.12.11
11:57
(5) А макеты там же, где обычно - в макетах Отчета, а не его формы.
9 qeos
 
29.12.11
11:59
бррр... давно писал...
10 qeos
 
29.12.11
12:01
&НаСервере
Процедура СформироватьОтчет()
   Запрос = Новый Запрос("ВЫБРАТЬ....
                         
   Выборка = Запрос.Выполнить().Выбрать();
   
   ТабДок = ЭтаФорма.ТаблицаОтчета;
   ПолучитьМакетОформления("");
   
   Индекс = 1;
   Пока Выборка.Следующий() Цикл
       Область = ТабДок.Область("R"+Индекс+"C2");
       Область.Текст = Выборка.Ссылка;
       Индекс = Индекс + 1;
   КонецЦикла;
КонецПроцедуры

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


как правильно работать? чтото на сервере нет функции ПолучитьМакет.. а эта ПолучитьМакетОформления("") - не та..
11 acsent
 
29.12.11
12:03
Данные получаешь с помошью компоновки, выводишь руками. Есть событи ПриКомпоновкеРезультата
12 qeos
 
29.12.11
12:05
(11) а если без скд? или компановка это не скд?
13 qeos
 
29.12.11
12:05
http://sky1c.ru/node/190
вот такое как на УФ?
14 Леха Дум
 
29.12.11
12:06
&НаСервере
Макет = Отчеты.ТвойОтчет.ПолучитьМакет("ТвойМакет");

&НаКлиенте
Процедура Сформировать(Команда)
ТабДок =  СформироватьОтчет();
ТабДок.Показать(); или отобразить в элюуправления
КонецПроцедуры
15 Леха Дум
 
29.12.11
12:06
элюуправления = эл. управления
16 qeos
 
29.12.11
12:07
(14) а если это внешняя обработка?
17 Пришел в тапках
 
29.12.11
12:07
(14) Опередил )
18 acsent
 
29.12.11
12:07
(12) Зачем без СКД? А как же отборы всякие?
19 Пришел в тапках
 
29.12.11
12:07
(16) Если внешняя - просто ПолучитьМакет("МойСуперМакет");
20 acsent
 
29.12.11
12:08
В принципе можно и руками данные получать
21 acsent
 
29.12.11
12:09
(14) Не пойдет. Не сможешь таб док на клиент передать
22 qeos
 
29.12.11
12:09
(18) скд не все умеет..
(19) наСервере нет такой функции.. у тонкого клиента тоже..
23 qeos
 
29.12.11
12:10
(21) какой выход есть?
24 qeos
 
29.12.11
12:11
(21) допустим я получу данные на сервере.. но на клиенте на тонком я тоже не смогу вывести?
25 Леха Дум
 
29.12.11
12:11
(21) это про что?

Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Сериализуется. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/spreadsheet}. Имя типа XDTO: SpreadsheetDocument
26 Леха Дум
 
29.12.11
12:12
+(25) Элемент управления соответствующий тоже вроде никто не отменял
27 Buster007
 
29.12.11
12:12
я в модуле объекта формировал ТабДок и передавал на клиента.
28 qeos
 
29.12.11
12:13
(27) можешь показать?
29 qeos
 
29.12.11
12:14
+(28) с макетом?
30 ДенисЧ
 
29.12.11
12:16
(28) вот тебе начало моего кода. Рабочего.
Внешняя обработка на УФ.

&НаСервере
Функция Распечатать()
текОбъект = ЭтаФорма.РеквизитФормыВЗначение("Объект");
док = Объект.ВыбДокумент;
Макет = текОбъект.ПолучитьМакет("СчетФактура");
табДок = Новый ТабличныйДокумент;
облШапка = Макет.ПолучитьОбласть("Шапка");
//и так далее
Возврат ТабДок;
КонецФунции
31 acsent
 
29.12.11
12:17
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
   
 СтандартнаяОбработка = Ложь;
 ДокументРезультат.Очистить();
 // тут далее код по выводу отчета  

КонецПроцедуры
32 acsent
 
29.12.11
12:18
В модуле отчета
33 Buster007
 
29.12.11
12:18
(29) в (30) там всё верно ) да и в (31) верно, но если обработка, то не будет работать (31)
34 acsent
 
29.12.11
12:20
(33) Зачем обработка, когда отчет? Пора уже отходить от семерочных методов
35 qeos
 
29.12.11
12:21
36 acsent
 
29.12.11
12:22
(35) Причем здесь СКД? никто не заставляет юзать скд
37 acsent
 
29.12.11
12:23
у тебя просто не в модуле формы процедура Сформировать, а в модуле объекта
38 qeos
 
29.12.11
12:24
(30) вот она плюшка: ЭтаФорма.РеквизитФормыВЗначение("Объект");
спасибо
39 Buster007
 
29.12.11
12:42
(34) я 7кой вообще не работал ) но бывают такие случаи, когда надо вывести и из обработки )
А для примера есть даже в типовой УТ11 есть обработка ПечатьТТН, а не отчет. )
40 acsent
 
29.12.11
12:46
Плюс моего метода в том, что этот отчет можно будет формировать из какого-нибудь регламентного задания
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший