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

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

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

ОтчетОбъект = РеквизитФормыВЗначение("Отчет");//убрать
НС =  ОтчетОбъект.ТабличнаяЧасть.Добавить();//заменить на
НС =  Отчет.ТабличнаяЧасть.Добавить();  

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

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