Имя: Пароль:
1C
 
Вопрос по программному формированию СКД из модуля формы
0 inkvizitr
 
27.05.20
18:09
а, могу ли я с модуля формы запихнуть результат запроса в макет СКД, и если да то дайте ссылку на нужный мануал
1 Ненавижу 1С
 
гуру
27.05.20
18:22
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    ОтчетОбъект.СхемаКомпоновкиДанных.НаборыДанных[0].Запрос = ТекстЗапрос;
    ЗначениеВРеквизитФормы(ОтчетОбъект,"Отчет");
2 inkvizitr
 
27.05.20
18:37
(1) нее. не текст запроса, а ТаблицуЗначение с данными
3 toypaul
 
гуру
27.05.20
18:38
твоя таджикский язык не понимайт
4 inkvizitr
 
27.05.20
18:52
(3) Модуль формы
&НаКлиенте
Процедура Кнопка(Команда)
КнопкаНаСервере();
КОнецПроцедуры

&НаСервере
Процедура КнопкаНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = "...";
Выгрузка = Запрос.Выполнить().Выгрузить();

// а вот как запихнуть в макет скд вот эту выгрузку с модуля формы???
КонецПроцедуры
5 toypaul
 
гуру
27.05.20
18:54
через табличную часть отчета. как внешний набор
6 toypaul
 
гуру
27.05.20
18:56
если есть релиз 8.3.17, то можно во врем таблицу передать
7 inkvizitr
 
27.05.20
18:59
(5) а как из модуля формы передать выгрузку во внешний набор ?
8 ам794123
 
27.05.20
19:00
самое простое передать ТЗ как параметр СКД
9 toypaul
 
гуру
27.05.20
19:00
(7) ты таджик что ли? я вроде по-русски написал как
10 inkvizitr
 
27.05.20
19:01
(8) как это сделать из модуля формы?, из модуля отчета я могу сдеть ПриКомпоновкеРезультата, а из модуля формы, что то не идет
11 toypaul
 
гуру
27.05.20
19:01
(8) через какой параметр СКД?

видел какой-то извращение через ДополнительныеСвойства компоновщика. это оно имеется ввиду?
12 inkvizitr
 
27.05.20
19:02
(9) ну если по таджит ки не понимаешь, напишу по русски, скиньте ссылку на пример, в теме 0 по моему написано
13 toypaul
 
гуру
27.05.20
19:02
(10) кто и куда у тебя не идет? если ты весь отчет компонуешь в модуле формы, то я вообще не понял в чем вопрос. чо тут передавать-то
14 toypaul
 
гуру
27.05.20
19:04
(12) какой тебе пример давать, если ты толком не можешь объяснить, что тебе надо.

тебе уже кучу примеров дали из-за твоего косноязычия. и все тебе не так и не эдак.
15 ам794123
 
27.05.20
19:05
СКД - Настройки - Параметры данных. Обычно там передают Период, но ничего не мешает передать ТЗ
16 inkvizitr
 
27.05.20
19:05
1. Создал макет СКД, в нем создал внешний набор данных - объект, как в него передать из модуля формы Таблицу Значений???
17 toypaul
 
гуру
27.05.20
19:07
(15) прям таки ничего? то есть ты так делал?
18 toypaul
 
гуру
27.05.20
19:07
19 inkvizitr
 
27.05.20
19:08
(15) если я в "набор данных -запрос" напишу
Выбрать
ТЗ КАК ТЗ
ИЗ
&ТЗ КАК ТЗ
то скд выдаст ошибку и мне скажет использовать набор-объект
20 ам794123
 
27.05.20
19:10
(17) я не помню, делал так или нет, но не вижу никаких препятствий чтобы попробывать.
21 inkvizitr
 
27.05.20
19:10
(18) да в ПриКомпоновкеРезультата() это работает, но если я это начинаю реализовывать в модуле формы отчета, то система будет мне ругаться на строке
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки)
с ошибкой Поле не найдено "РодительВычисляемое"
22 inkvizitr
 
27.05.20
19:11
(20) делал
23 inkvizitr
 
27.05.20
19:11
(18) макет получал ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
24 ам794123
 
27.05.20
19:12
(22) не прокатило?
25 inkvizitr
 
27.05.20
19:13
вот синтаксис

Выгрузка = Запрос.Выполнить().Выгрузить();
    
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    
    СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("Электроэнергия");
    
    ВнешниеНаборыДанных = Новый Структура;
    ВнешниеНаборыДанных.Вставить("Электроэнергия", Выгрузка);
    
    Настройки = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);
       РезультатЭлектроэнергия = Элементы.РезультатЭлектроэнергия;
    РезультатЭлектроэнергия.Очистить();
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(РезультатЭлектроэнергия);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
26 inkvizitr
 
27.05.20
19:14
(24) нет, писал выше, что система ругается и выдает сообщение о том, чтобы я использовал Обект, даже гдето в мануалах встречал, что при загрузки ТЗ нужно использовать Объект
27 toypaul
 
гуру
27.05.20
19:14
(20) зачем пробовать, если это точно не работает
28 toypaul
 
гуру
27.05.20
19:15
(21) ты пытаешся сформировать отчет не по основной схеме, а по какой-то другой?
29 toypaul
 
гуру
27.05.20
19:19
у тебя в (25) настройки не соответствуют схеме. ты сначала получил настройки основной схемы, а потом пытаешься сформировать отчет по другой схеме.
30 inkvizitr
 
27.05.20
19:20
(28) да
31 toypaul
 
гуру
27.05.20
19:20
что-то можно почитать здесь https://wiki.programstore.ru/neskolko-sxem-dannyx-v-odnom-otchete-skd/ но это не готовое решение. там головой надо думать.

как правильно формировать по разным схемам разбирали в нашем курсе https://learn.programstore.ru/video_kurs_skd
32 inkvizitr
 
27.05.20
19:21
(29) а как тогда мне получить настройки нужной мне схемы, которая не основная?
33 inkvizitr
 
27.05.20
19:21
(31) сейчас посмотрю
34 toypaul
 
гуру
27.05.20
19:21
говорят что наш курс разошелся по файлопомойкам. можно там поискать :)
35 inkvizitr
 
27.05.20
19:54
(34) спасибо за подсказку, нашел, у гилева хорошо описано https://www.youtube.com/watch?time_continue=94&v=foAJJE1LWeo&feature=emb_logo применил к модулю формы