Имя: Пароль:
1C
1С v8
Получить данные в отчёт
0 ilyayakimets
 
11.09.19
11:03
Добрый день!
Есть форма, на ней программно заполняется таблица значений. Необходимо сделать отчет, который будет вызываться из этой формы по кнопке.
Вопрос: Как получить данные таблицы значений из формы для отображения в отчете?
1 catena
 
11.09.19
11:12
Так же, как заполняется, только получить.
2 ilyayakimets
 
11.09.19
11:15
(1) А по-другому никак?
3 catena
 
11.09.19
11:20
(2)У вас что конкретно не получается? Обработка заполнения есть? Как там обращаться к таблице можете посмотреть? В синтаксис-помощнике почитать, какие методы есть у таблицы значений?
4 ilyayakimets
 
11.09.19
11:25
(3) Просто на данный момент не могу до конца понять, как она формируется. Думал сделать как-то быстрее, например выгрузить нужные колонки в отдельную ТЗ и использовать в отчете.
5 catena
 
11.09.19
11:27
(4)Выгружайте нужные колонки в отдельную ТЗ, я разрешаю.
6 ilyayakimets
 
11.09.19
11:27
(5) А как потом их в отчет вывести?
7 ilyayakimets
 
11.09.19
11:30
(5) Ну то есть, как получить что-то запросом я понимаю, и вывести в отчет. А запросом получить эту ТЗ я ведь не смогу, т.к. она при открытой форме формируется.
Ну, если я правильно понимаю
8 SuperMario
 
11.09.19
11:35
(7) кабздец!
Если я сейчас напишу, что в качестве источника данных для СКД можно использовать Объект ты не поймешь, то это не твоё.
9 HardBall
 
11.09.19
11:38
Выбрать * из &ТЗ
Поместить ВТ_ТЗ
Запрос.УстановитьПараметр("ТЗ",ТЗ);
10 ilyayakimets
 
11.09.19
12:07
(9) Ну на самой форме я могу запросом получить, да.
А что сделать, чтобы мой отчёт смог "увидеть" эту таблицу и в дальнейшем вывести её?
Туплю на ровном месте, ткните куда
11 hhhh
 
11.09.19
12:10
(10) ну, написать в отчете запрос из (9)
12 ilyayakimets
 
11.09.19
12:21
(11) Может есть где почитать?
Вот мой код на форме:

МассивОрдеров =  Новый ТаблицаЗначений;
МассивОрдеров = РаспоряженияНаОтбор.Выгрузить(,"Распоряжение, Состояние, ДатаОтгрузки");

(РаспоряжениеНаОтбор это другая таблица значений)

Как правильно написать запрос в отчете к МассивуОрдеров?
13 catena
 
11.09.19
12:23
Выбрать * из &ТЗ
Поместить ВТ_ТЗ
Запрос.УстановитьПараметр("ТЗ",МассивОрдеров);
14 ilyayakimets
 
11.09.19
12:27
(13)

Ожидается псевдоним запроса
<<?>>Поместить ВТ_ТЗ
15 SuperMario
 
11.09.19
12:28
Взрослые дома есть? Может их попросить , а ты потом посмотришь как дяди пишут запросы.
16 hhhh
 
11.09.19
12:29
(14) Выбрать * из &ТЗ КАК ТЗ
Поместить ВТ_ТЗ
17 catena
 
11.09.19
12:31
Род занятий:    Программист
18 Мимохожий Однако
 
11.09.19
12:34
по правой клавиши мыши выбери запрос с обработкой и в режиме вывода в табличный документ получишь рыбу для вывода отчета.
19 vova1122
 
11.09.19
12:39
(0) в гугле -  работа с таблицей значений  
Первая ссылка
20 ilyayakimets
 
11.09.19
12:55
Всем спасибо
21 ilyayakimets
 
12.09.19
10:27
Снова пытаюсь разобраться, вот таблица. Она находится на форме обработки.
Мне необходимо создать отчет, вызываемый с этой формы, который бы отобразил 1 в 1 эту таблицу:
http://prntscr.com/p52fsw

Как это можно сделать, с чего начать? Может есть, где подробнее почитать?
Я так понимаю, мне нужно полностью программно создавать отчет?
22 catena
 
12.09.19
10:36
(21)А вчерашние ответы повторять или они забракованы?
23 HardBall
 
12.09.19
10:38
Кури программное формирование отчета на СКД. Набор данных - Объект
24 ilyayakimets
 
12.09.19
10:44
(22) Специально написал, что мне нужно сделать. Значит на данный момент отчет ещё никак не формируется. И как мне понять куда вставлять например то, что в (16) ?
Весь вопрос в том, отчет ведь никак не связан с формой этой, и вот не понимаю как получить данные.. Может быть можно программно отчет напрямую из формы создавать, а не из его модуля. Тогда вопрос - как это сделать?
25 ilyayakimets
 
12.09.19
10:44
(23) Спасибо
26 ilyayakimets
 
12.09.19
10:46
Пытался написать в СКД запрос, где получаю данные из таблицы-параметра, который бы потом на форме, при вызове отчета, заполнялся нужной ТЗ. Но такой запрос не даёт создать..
27 ilyayakimets
 
12.09.19
10:47
28 vova1122
 
12.09.19
10:52
(26)  что нужно в итоге? скопировать таблицу значений?
КопияТаб = Таб.ТзОрдеров("ДатаОтгрузки, Распоряжение, Состояние");
29 vova1122
 
12.09.19
10:53
(28) Сорри
КопияТаб = ТзОрдеров.СкопироватьКолонки("ДатаОтгрузки, Распоряжение, Состояние");
30 ilyayakimets
 
12.09.19
10:55
(28) Да скопировать то я могу, как мне потом её использовать в отчете, всё никак догнать не могу.
Вот как у меня вызывается отчет из этой формы на данный момент:

ФормаОтчета = ПолучитьФорму("Отчет.ЭО_КоличествоОрдеров.Форма");
//КомпоновщикНастроек = ФормаОтчета.Отчет.КомпоновщикНастроек;
//Настройки = КомпоновщикНастроек.Настройки;
//ПараметрыДанных = Настройки.ПараметрыДанных.Элементы;    
//Параметр = ПараметрыДанных.Найти(Новый ПараметрКомпоновкиДанных("ТЗОрдеров"));
//Параметр.Значение = РаспоряженияНаОтбор;
//Параметр.Использование = Истина;
ФормаОтчета.Открыть();

Собственно, где комментарии, пытался подставить параметр, но СКД не дало такой запрос написать.
Вот и вопрос, как это сделать..
31 vova1122
 
12.09.19
11:03
построитель = Новый ПостроительОтчета;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗОрдеров);
    Построитель.Макет = Неопределено;
    Макет = Построитель.Макет;
    Область = Макет.Область();
    Область.ШиринаКолонки = 10;
    Построитель.Макет = Макет;
    Построитель.Выполнить();
    Построитель.Вывести();
32 hhhh
 
12.09.19
11:04
(30) ну наверно форма отчета тебе не нужна. от слова совсем. Смотри лучше в моддуль объекта отчета, там обычно параметры устанавливаются, при компоновке результата
33 ilyayakimets
 
12.09.19
11:05
(31) Это где должно быть?
34 vova1122
 
12.09.19
11:07
(33) после того где ты сделал копию Таблицы значений
35 ilyayakimets
 
12.09.19
11:19
(34) Ничего не вывело
36 hhhh
 
12.09.19
11:22
(35) а что такое ТЗОрдеров? откуда оно берется?
37 vova1122
 
12.09.19
11:22
(35) всмысле вывело только заголовки таблицы или вообще ничего? Может не в том месте пишешь? или неправильно написал название таблицы значений (ТЗОрдеров)?
38 ilyayakimets
 
12.09.19
11:26
(37) У меня управляемые формы, наверное поэтому
(36) ТаблицаЗначений, в которую необходимые колонки скопированы
39 ilyayakimets
 
12.09.19
11:58
Есть ещё способы программного создания отчета напрямую в форме?
40 hhhh
 
12.09.19
12:07
(39) ну без проблем, возьми любую печатную форму

ТабДок = НОвый ТабличныйДокумент;
Макет = ПолучитьМакет(ТакойТО);

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");

ТабДок.Вывести(ОбластьШапка);
ТабДок.Вывести(ОбластьСтрока);

и на клиенте потом

ТабДОк.Показать();
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн