Имя: Пароль:
1C
1С v8
Как программно сформировать отчет.
0 Wasp16
 
17.07.12
09:31
Суть такова:
Необходимо сформировать отчет при запуске 1С.
Делаю следующее: в общий модуль в процедуру ПриНачалеРаботыСистемы кидаю следующий код, но отчет открывается, но не формируется. Что делаю не так, подскажите пожалуйста:

       СписокПлатежек=Отчеты.СписокПлатежек.ПолучитьФорму("ФормаОтчета");
   СписокПлатежек.Открыть();
   СписокПлатежек.Обновить();
1 Stim
 
17.07.12
09:31
скд?
2 Pro-tone
 
модератор
17.07.12
09:37
Если скд, то программно надо задать настройки сперва, и обновить() тут лишнее
3 Wasp16
 
17.07.12
09:37
да, скд.
а как задать настройки?
4 Pro-tone
 
модератор
17.07.12
09:38
и форму с параметрами не так получать надо, а просто через ПолучитьФорму() или ОткрытьФорму()
5 Stim
 
17.07.12
09:41
а зачем форму? выбирай компоновщик, задавай параметры, формируй и выводи в свой табличныйДокумент
6 Stim
 
17.07.12
09:42
форма - она нужна только для отчета
7 Wasp16
 
17.07.12
09:43
а что за компоновщик? я очень очень low level в 1с...
простите за тупые вопросы
8 Wasp16
 
17.07.12
09:44
необходимо потом этот документ после всего сохранить в виде HTML документа
9 Stim
 
17.07.12
09:46
гугл тебе в руки
10 AaNnDdRrEeYy
 
17.07.12
09:47
//при начале работы системы
Открытьформу("Отчеты.ТвойОтчет.Форма");

//в отчете при создании на сервере
СкомпоноватьРезультат();
11 AaNnDdRrEeYy
 
17.07.12
09:47
ОтчетОбъект.<Имя отчета> (ReportObject.<Имя отчета>)
СкомпоноватьРезультат (ComposeResult)
Синтаксис:

СкомпоноватьРезультат(<Результат>, <ИнформацияРасшифровки>)
Параметры:

<Результат> (обязательный)

Тип: ТабличныйДокумент.
Табличный документ, в который будет выводиться результат.
<ИнформацияРасшифровки> (необязательный)

Переменная, в которую будет записана информация расшифровки.
Если не указано - расшифровка заполняться не будет.
Описание:

Выполняет компоновку.

Доступность:

Сервер, толстый клиент, внешнее соединение.
Примечание:

Пользователь может при помощи комбинации клавиш Ctrl+Break прервать выполнение отчета. При этом будет вызвано исключение.
12 Wasp16
 
17.07.12
09:53
уже обгуглил все, найти похожий код не могу никак(((
13 Wasp16
 
17.07.12
10:13
Не могли бы вы на примере показать как это работает, не могу разобраться в синтаксисе
14 Wasp16
 
17.07.12
10:58
Я правильно понимаю: можно вызвать программно команду "сформировать" с настройками по умолчанию?
Или же нужно задавать параметры, как в запросе ЗАПРОС ИЗ ?
15 AaNnDdRrEeYy
 
17.07.12
11:59
Что конкретно тут не понятно?

Процедура ПриНачалеРаботыСистемы()
 ОткрытьФорму("Отчеты.ИмяТвоегоОтчета.Форма");
КонецПроцедуры

//в модуле формы отчета
&НаСервере
Процедура ПриСозданиинаСервере()
 СкомпоноватьРезультат();
КонецПроцедуры
16 Wasp16
 
17.07.12
12:14
разобрался сам, при инициализации необходимо довнести процедуру формирования отчета.
Причем данная тема не работает под СКД, а только через конструктор запросов.

Процедура Отчет1Инициализация()
   //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ИНИЦИАЛИЗАЦИЯ(Отчет1)
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   ПостроительОтчетаОтчет1.Текст =
   "ВЫБРАТЬ
   |    ПлатежноеПоручение.Номер,
   |    ПлатежноеПоручение.Дата КАК Дата,
   |    ПлатежноеПоручение.Организация,
   |    ПлатежноеПоручение.Контрагент,
   |    ПлатежноеПоручение.СуммаДокумента,
   |    ПлатежноеПоручение.ИННПолучателя
   |ИЗ
   |    Документ.ПлатежноеПоручение КАК ПлатежноеПоручение
   |
   |УПОРЯДОЧИТЬ ПО
   |    Дата";
   ПостроительОтчетаОтчет1.ЗаполнитьНастройки();
   ПостроительОтчетаОтчет1.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;
   ПостроительОтчетаОтчет1.ТекстЗаголовка = "Платежные поручения";
   Настройка = ВосстановитьЗначение("НастройкаОтчетыСписокПлатежекОтчет1_64944573-045d-46b2-ba5d-0d2b1b51e8a1");
   Если Настройка <> Неопределено Тогда
       ПостроительОтчетаОтчет1.УстановитьНастройки(Настройка);
   КонецЕсли;

   
   Отчет1Вывести();
   
   
   //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ИНИЦИАЛИЗАЦИЯ
КонецПроцедуры


Процедура Отчет1Вывести()
   //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ВЫПОЛНИТЬ(Отчет1)
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

   ЭлементыФормы.ПолеТабличногоДокумента.Очистить();

   ПостроительОтчетаОтчет1.Выполнить();
   ПостроительОтчетаОтчет1.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;
   ПостроительОтчетаОтчет1.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
   ПостроительОтчетаОтчет1.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;
   ПостроительОтчетаОтчет1.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);
   ПостроительОтчетаОтчет1.Вывести(ЭлементыФормы.ПолеТабличногоДокумента);

   //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ВЫПОЛНИТЬ
КонецПроцедуры
17 Wasp16
 
17.07.12
12:15
Большое Спасибо за помощь, друзья!
18 AaNnDdRrEeYy
 
17.07.12
12:38
(17)Построитель запроса это не разу не скд