Вход | Регистрация
 

Вопрос по программному формированию СКД из модуля формы

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

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

// а вот как запихнуть в макет скд вот эту выгрузку с модуля формы???

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

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

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

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

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


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