|   |   | 
| 
 | Функция в СКД | ☑ | ||
|---|---|---|---|---|
| 0
    
        seraf 29.11.19✎ 16:21 | 
        Подскажите, надо быстренько сделать.
 Есть функция в общем модуле, возвращающая таблицу значений (выгрузка результата запроса). В неё передается договор. Мне надо в СКД построить отчет состоящий из колонок Договор и рядом с каждым грубо говоря для начала эту таблицу вывести Как делается? | |||
| 1
    
        Консультант Баранов 29.11.19✎ 16:23 | ||||
| 2
    
        seraf 29.11.19✎ 16:25 | 
        Короче есть условно данные
 Сотрудник Договор они передаются построчно в функцию которая возвращает ТЗ Значение1 - Остаток1 Значение2 - Остаток2 Значение3 - Остаток3 Хочу получить отчет Сотрудник, Договор, Значение1, Значение2, Значение3 Остаток1, Остаток2, Остаток3 | |||
| 3
    
        Консультант Баранов 29.11.19✎ 16:25 | 
        У нас свободная страна - хотеть не запрещено, можно сколько угодно.     | |||
| 4
    
        shuhard 29.11.19✎ 16:27 | 
        (2) используй набор данных - объект
 или передай ТЗ как параметр и оберни временной таблицей | |||
| 5
    
        seraf 29.11.19✎ 16:31 | 
        Как построчно передать, если бы одно значение возвращала функция то вычисляемое поле, а тут надо ТЗ по каждой строке, передавая туда параметры.. не соображу пока, пример бы(     | |||
| 6
    
        seraf 29.11.19✎ 16:34 | 
        Вначале мне нужно получается выполнить цикл запросов, обращаясь к функции и получая в ответ по нескольку строк на пару параметров, и к каждой должны быть присоединены доп колонки Договор и Сотрудник чтобы понять чьи строки.
 Всё это в результате должно стать таблице исходных данных, из которых слеплю отчет. В модуле наверно можно было бы подготовить ТЗ, но лучше как-то в конструкторе | |||
| 7
    
        shuhard 29.11.19✎ 16:36 | 
        (6) в третий и последний раз, вывести ТЗ в СКД не является проблемой     | |||
| 8
    
        Ник080808 29.11.19✎ 16:37 | 
        (4) "или передай ТЗ как параметр и оберни временной таблицей" это как?     | |||
| 9
    
        hhhh 29.11.19✎ 16:39 | 
        (8) ВЫБРАТЬ * ПОМЕСТИТЬ ВременнаяТЗ ИЗ &ТЗ     | |||
| 10
    
        seraf 29.11.19✎ 16:39 | 
        (7) спасибо, я гуглю как и параллельно спрашиваю, ибо не работал, а надо срочно     | |||
| 11
    
        seraf 29.11.19✎ 16:41 | 
        одним конструктором обойтись можно?     | |||
| 12
    
        Ник080808 29.11.19✎ 16:56 | 
        (9) в скд?     | |||
| 13
    
        hhhh 29.11.19✎ 16:57 | 
        (12) да. Тут же про СКД     | |||
| 14
    
        seraf 29.11.19✎ 17:01 | 
        Простой вроде вопрос.
 Создаю в СКД элементарный запрос из 2 колонок. Каждую эту строку хочу передавая в функцию соединить с данными, возвращаемыми этой функцией. Как это в конструкторе выглядит не нахожу пока примера( | |||
| 15
    
        Ник080808 29.11.19✎ 17:03 | 
        (13) это с какой версии скд дает в параметр таблицу значений задать     | |||
| 16
    
        Ник080808 29.11.19✎ 17:11 | 
        не дает он тзшку в скд юзать не через объект     | |||
| 17
    
        hhhh 29.11.19✎ 17:28 | 
        (16) ну через объект. какие проблемы. в 8.2 вот
 Процедура ДоработатьКомпоновщикПередВыводом(ВнешниеНаборыДанных) Экспорт ВнешниеНаборыДанных = Новый Структура; ВыборкаДанных = ПолучитьВыборку(); ВнешниеНаборыДанных.Вставить("ТаблицаДанных", ВыборкаДанных); 10 лет уже работает. | |||
| 18
    
        Ник080808 29.11.19✎ 17:44 | 
        (17) та через объект понятно. я думал что так можно = ВЫБРАТЬ * ПОМЕСТИТЬ ВременнаяТЗ ИЗ &ТЗ прям в скд. Это было бы круто. бывает что нужно взять пару тзшек использовать их с другими данными в запросе, а не клепать соединения и объединения с наборами объектами     | |||
| 19
    
        seraf 29.11.19✎ 18:43 | 
        Создаю ТЗ вручную, добавил внешний источник, расписал колонки.
 Отчет крутится в цикле, но чего-то завершается Итератор не определен. взял код отсюда, там корректно? | |||
| 20
    
        seraf 29.11.19✎ 18:44 | 
        Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
 СтандартнаяОбработка = Ложь; НаборыДанных = Новый Структура("ВходящиеДанные", ТаблицаЗначенийВходящихДанных); Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); КМ = Новый КомпоновщикМакетаКомпоновкиДанных; Макет = КМ.Выполнить(Схема, КомпоновщикНастроек.Настройки); ПК = Новый ПроцессорКомпоновкиДанных; ПК.Инициализировать(Макет, НаборыДанных); ПВ = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПВ.УстановитьДокумент(ДокументРезультат); ПВ.Вывести(ПК, Истина); КонецПроцедуры | |||
| 21
    
        seraf 29.11.19✎ 18:47 | 
        Когда я наполнил внешний источник данных и создаю еще обычный набор данных, там эту ТЗ не вижу в качестве ВТ или еще как-то? Их только связать можно     | |||
| 22
    
        Другая 30.11.19✎ 03:28 | 
        А что мешает заделать это все одним запросом, а потом группировать как хочется?     | |||
| 23
    
        Другая 30.11.19✎ 03:29 | 
        Если запросом никак - то можно формировать ТЗ программно и выводить через СКД     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |