Имя: Пароль:
1C
1С v8
СКД, не выводится отчет
0 AnisaL
 
28.08.19
09:01
Добрый день, есть запрос на СКД, сам запрос работает (пробовала через консоль запросов), а вот через СКД не выводится, вот процедура вывода отчета:
Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ДокументРезультат) Экспорт
    
    //ДокументРезультат = Новый ТабличныйДокумент;
    
    СхемаКомпоновкиДанных = ПолучитьМакет("Макет");
    
    НастройкиОтчета = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
    КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета);
    
    Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Добавить();
    Параметры.Параметр = Новый ПараметрКомпоновкиДанных("СсылкаНаОбъект");
    Параметры.Использование = Истина;
    КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("СсылкаНаОбъект", СсылкаНаОбъект);
    НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
    
    ТекстЗапроса = СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос;
    ТекстЗапроса = СтрЗаменить(
        ТекстЗапроса,
        "&ТекстЗапросаЕдиницаИзмерения",
        Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаВесУпаковки("ДанныеДокумента.ЕдиницаИзмерения", "ДанныеДокумента.Номенклатура"));
    СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = ТекстЗапроса;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиОтчета);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    
    Возврат ДокументРезультат;
    
КонецФункции
1 AnisaL
 
28.08.19
09:03
(0) может что-то не так в процедуре?
2 AnisaL
 
28.08.19
09:05
(0) вот настройки отчета: https://d.radikal.ru/d17/1908/20/0c435b4c5a10.png
3 GGDots
 
28.08.19
09:12
(0) А что происходит за пределами этой функции?
4 Максим Нижегородец
 
28.08.19
09:14
(2) Что вы делаете (или думаете сделать)? Выводите СКД отчет не СКД методами?
5 AnisaL
 
28.08.19
09:19
(3) вот процедура Печать:
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.АвтоМасштаб = Истина;
    НомерДокумента = 0;
    
    Для Каждого СсылкаНаОбъект Из МассивОбъектов цикл
         НомерДокумента = НомерДокумента + 1;
        Если НомерДокумента > 1 тогда
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
        СформироватьПечатнуюФорму(СсылкаНаОбъект, ТабДокумент);
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, СсылкаНаОбъект);
    КонецЦикла;
    
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "АВС-классификация", "АВС-классификация", ТабДокумент);
    
КонецПроцедуры
6 AnisaL
 
28.08.19
09:21
(4) немного поняла
7 Максим Нижегородец
 
28.08.19
09:33
(6) Я снимаю перед вами шляпу. Т.к. я сам так сложно задачу с СКД не решал. Обычно "Макет отчета" использую стандартный. Или 2 отчета СКД вывести. Или параметры СКД отчета забрать с формы. Или дополнительную расшифровку прикрутить к отчету. Остальное СКД выполняет (хорошо) и без дополнительного кода.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший