Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Не отрабатывает заполнение параметров отчета СКД

Не отрабатывает заполнение параметров отчета СКД
Я
   Romaxa
 
17.12.18 - 07:29
Всем доброго дня! Следующая ситуация, есть отчет, понадобилось отправлять его каждое утро. В модуле сделал следующее:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

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

Если открыть отчет и сформировать через "отчеты", то заполняется "Период" всё работает отлично. А когда я вызываю его во внешней обработке, для сохранения в xls, пишет &Период не заполнен. Запрос отчета:

ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.СуммаОстаток,
    ХозрасчетныйОстатки.Организация.Наименование
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками)), , Субконто1 = &Контрагент) КАК ХозрасчетныйОстатки

кэш чистил, конфа УПП 1,3 1.3.108.2, платформа 8.3 (8.3.8.2442), подскажите в какую сторону копать?
 
 
   Borteg
 
1 - 17.12.18 - 07:32
(0)   Настройки = КомпоновщикНастроек.ПолучитьНастройки();
   Romaxa
 
2 - 17.12.18 - 07:37
(1) Не помогло (
   Borteg
 
3 - 17.12.18 - 07:50
(2) Вестимо надо править код обработки, а не отчета. Если хочется сформировать отчет из внешней обработки с настройками надо собрать макет во внешней обработки и там заполнить параметры.
   Romaxa
 
4 - 17.12.18 - 07:52
С обработкой уже тоже всяко пробовал, вот один из вариантов:

Процедура КнопкаВыполнитьНажатие(Кнопка)

ТабДок1 = Новый ТабличныйДокумент();
    
    СКД1=Отчеты.Взаиморасчеты.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
        
    Настройки1=СКД1.НастройкиПоУмолчанию;
    
    
    Расшифровка1 = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета1 = Новый КомпоновщикМакетаКомпоновкиДанных;
    
    //МакетКомпоновки1 = КомпоновщикМакета1.Выполнить(СКД1, Настройки1, Расшифровка1);

    МакетКомпоновки1 = КомпоновщикМакета1.Выполнить(СКД1, Настройки1, Расшифровка1);
    ВнешниеПараметры1 = Новый Структура;
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки1, ВнешниеПараметры1, Расшифровка1);
    
    ПроцессорВывода1 = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода1.УстановитьДокумент(ТабДок1);
    ПроцессорВывода1.Вывести(ПроцессорКомпоновкиДанных, Истина);
    
    ТабДок1.Записать("C:\Temp\skd.xls", ТипФайлаТабличногоДокумента.XLS);
КонецПроцедуры
   Romaxa
 
5 - 17.12.18 - 07:54
Самое интересное, есть отчет в котором всё отрабатывает нормально, с запросом:

ВЫБРАТЬ
    ПлатежноеПоручениеВходящее.Дата,
    ПлатежноеПоручениеВходящее.Номер,
    ПлатежноеПоручениеВходящее.Организация,
    ПлатежноеПоручениеВходящее.СуммаДокумента,
    ПлатежноеПоручениеВходящее.ВидОперации,
    ПлатежноеПоручениеВходящее.Контрагент.Наименование,
    ПлатежноеПоручениеВходящее.Организация.Наименование,
    ПлатежноеПоручениеВходящее.ДатаОплаты КАК ДатаОплаты,
    ПлатежноеПоручениеВходящее.НазначениеПлатежа
ИЗ
    Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее
ГДЕ
    ПлатежноеПоручениеВходящее.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПоступлениеБезналичныхДенежныхСредств.ОплатаПокупателя)
{ГДЕ
    (ПлатежноеПоручениеВходящее.Дата МЕЖДУ &ДатаНачала И &ДатаКонца),
    (ПлатежноеПоручениеВходящее.Контрагент = &Контрагент),
    (ПлатежноеПоручениеВходящее.Организация = &Организация)}
УПОРЯДОЧИТЬ ПО
    ДатаОплаты
   Borteg
 
6 - 17.12.18 - 08:02
(4) где в этом коде установка параметров?
   Romaxa
 
7 - 17.12.18 - 08:14
(6) в модуле отчета, в процедуре "ПриКомпоновкеРезультата"
   Borteg
 
8 - 17.12.18 - 08:24
(7) но в этом коде ты этот отчет не вызываешь.
Берешь настройки схему и получаешь отчет, здесь ты не вызываешь модуль того отчета совсем
   Borteg
 
9 - 17.12.18 - 08:24
(7) заполни параметры в обработке.
   Гипервизор
 
10 - 17.12.18 - 08:34
Укажите прямо в схеме в выражении параметра КонецПериода(ТекущаяДата(), "День")
 
 Рекламное место пустует
   los_hooliganos
 
11 - 17.12.18 - 08:44
в консоле запроса перейти на закладке СКД и укажи свои параметры.

СКД не понимает твой параметр. А вообще более правильно оставить место пустым для параметра типа дата. Далее просмотреть как параметр назовет сама СКД и уже его и искать кодом.
   Romaxa
 
12 - 27.12.18 - 06:17
(10) Так работает, но я послушал (8) и сделал через компоновщик.

Всем спасибо и с Наступающим!

P.S.: Вроде сразу отписал, но видимо не нажал кнопку "Отправить".

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