Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Табличный документ на сервере и на форме

Табличный документ на сервере и на форме
Я
   rustamoff
 
24.12.12 - 17:53
Два рабочих варианта вывода ТабличногоДокумента в управляемую форму:

1) из этой темы v8: Вывод в табличный документ (управляемые формы)

&НаСервере
Функция ВыводВФорму()

Макет = Отчеты.Отчет3.ПолучитьМакет("МакетОтчета");    
ОбластьЗаголовок = Макет.ПолучитьОбласть("ШапкаОтчета");        
ТабДок=Новый ТабличныйДокумент;    
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Ложь;

Возврат ТабДок;
КонецФункции

Процедура Сформировать(Команда)
    ВыводВФорму().Показать();
КонецПроцедуры

2) второй не использует функцию для возврата ТабличногоДокумента

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

&НаСервереБезКонтекста
Процедура СформироватьОтчет(ТабДок, ДатаОтчета)

   Макет = Отчеты.ОстаткиТоваров.ПолучитьМакет("Макет");
   ОблШапка = Макет.ПолучитьОбласть("ОблШапка");
   ОблСтрока = Макет.ПолучитьОбласть("ОблСтрока");
   
   ТабДок.Очистить();
   
   ОблШапка.Параметры.ДатаОтчета = ДатаОтчета;
   ТабДок.Вывести(ОблШапка);
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    Номенклатура,
   |    КоличествоОстаток
   |ИЗ
   |    РегистрНакопления.ОстаткиТоваров.Остатки(&ДатаОтчета, ) ";
   
   Запрос.УстановитьПараметр("ДатаОтчета", ДатаОтчета);
   
   Результат = Запрос.Выполнить();
   
   Выборка = Результат.Выбрать();
   Пока Выборка.Следующий() Цикл
       ОблСтрока.Параметры.Номенклатура = Выборка.Номенклатура;
       ОблСтрока.Параметры.Количество = Выборка.КоличествоОстаток;
       
       ТабДок.Вывести(ОблСтрока);
   КонецЦикла;  
КонецПроцедуры

Второй явно элегантнее. Но возникает вопрос, где хранится реквизит формы типа ТабличныйДокумент (второй код подсказыает, что на сервере) и как происходит передача из серверной процедуры в клиентскую во втором коде?
 
 

Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует