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

Заполнение табличной части во внешнем отчёте

Заполнение табличной части во внешнем отчёте
Я
   Лиза777
 
16.12.20 - 13:49
Кучу всего перечитала и перепробовала, не получается((. У меня внешний отчёт, надо табличную часть в нём заполнить найденными документами Реализация.

&НаСервере
Процедура ЗаполнитьНаСервере()
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    Докум = Документы.РеализацияТоваровУслуг.Выбрать(ОтчетОбъект.Период.ДатаНачала,ОтчетОбъект.Период.ДатаОкончания);
    Пока Докум.Следующий() Цикл
        Если НЕ Докум.Проведен    Тогда
            Продолжить;
        КонецЕсли;
        Если Докум.Контрагент<>ОтчетОбъект.Контрагент Тогда
            Продолжить;
        КонецЕсли;
        НС =  ОтчетОбъект.ТабличнаяЧасть.Добавить();        
        НС.Реализация = Докум.Ссылка;
    КонецЦикла;     
КонецПроцедуры

в отладчике вижу, что есть там строки, но на форме их не видно в табличной части. Помогите, пожалуйста.
   Михаил Козлов
 
1 - 16.12.20 - 13:51
Скорее всего нужно еще ЗначениеВРеквизит
   RomanYS
 
2 - 16.12.20 - 13:52
(0)

ОтчетОбъект = РеквизитФормыВЗначение("Отчет")//убрать

НС =  ОтчетОбъект.ТабличнаяЧасть.Добавить()//заменить на

НС =  Отчет.ТабличнаяЧасть.Добавить();  

и лучше конечно запросом, перебор всех документов это ппц
   FIXXXL
 
3 - 16.12.20 - 13:55
(0) зачем вообще ТЧ? сделайте реквизит формы с типом "таблица значений"...
   Лиза777
 
4 - 16.12.20 - 13:57
(3) а зачем реквизит ? не пойму
   Лиза777
 
5 - 16.12.20 - 13:57
(2) да понятно, запросом сделаю, пока просто сам механизм смотрю как будет работать
   Лиза777
 
6 - 16.12.20 - 13:58
(3) а потом в реквизит формы как-то передать результат? на сервере?
   Лиза777
 
7 - 16.12.20 - 13:58
(1) пробовала  ЗначениеВРеквизит, но в какой реквизит не знаю... если создать такой как и предлагали...
   Kassern
 
8 - 16.12.20 - 13:59
(6) На сервере заполняете свою ТЗ (реквизит формы). Она автоматом на клиенте отобразится (если конечно вы ее на форму вывели)
   FIXXXL
 
9 - 16.12.20 - 14:00
(4) Форма существует и на Клиенте и на Сервере, не надо привязываться к получению объекта каждый раз
Вы ведь потом читать данные собираетесь?
   Лиза777
 
10 - 16.12.20 - 14:02
(9) да
   Лиза777
 
11 - 16.12.20 - 14:02
(8) поняла, попробую. Спасибо!!!
   hhhh
 
12 - 16.12.20 - 19:19
(11)  ОтчетОбъект выкинуть. Писать просто Отчет.Контрагент, Отчет.ТабличнаяЧасть и так далее.
   Лиза777
 
13 - 17.12.20 - 07:28
(12) СПасибо!
   Лиза777
 
14 - 17.12.20 - 07:29
добавила реквизит формы с типом "таблица значений", и так написала
Рез = Запрос.Выполнить().Выбрать();
    Пока Рез.Следующий() Цикл
        НС =  Отчет.ТЗРеализация.Добавить();        
        НС.Реализация = Рез.Реализация;
        НС.СФ = Рез.СФ;
        НС.Контрагент = Рез.Контрагент;
        НС.СуммаДокумента = Рез.СуммаДокумента;
    КонецЦикла;    

И всё работает! Спасибо за помощь!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.