Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
06 дек 2021, 08:37

СКД и менеджер временных таблиц

Автор neek666, 26 апр 2021, 15:21

0 Пользователей и 1 гость просматривают эту тему.

neek666

Народ добрый день! Подскажите что я делаю не так (первый раз работаю с менеджером временных таблиц).

Пытаюсь сделать АБСОЛЮТНО простой отчет: выборка документов и вывод их в отчет. Делаю на СКД. НО:
В наборе данных источником является временная таблица "ОборотПриход". Данную табличку я формирую в предопределенной процедуре. Код ее привел:

   ДатаОтчета = ПолучитьДатуОтчета();   - здесь просто получаю дату отчета из СКД (которую выбрал пользователь).
   
   Запрос = Новый Запрос;
   МВТ = Новый МенеджерВременныхТаблиц;
   
   ТекстЗапроса = "ВЫБРАТЬ
   |   ПриходныйКассовыйОрдер.Ссылка КАК РегистраторПрихода,
   |   ПриходныйКассовыйОрдер.СуммаДокумента КАК Приход,
   |   ПриходныйКассовыйОрдер.ПодразделениеОрганизации КАК Подразделение
   |ПОМЕСТИТЬ ОборотПриход
   |ИЗ
   |   Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
   |ГДЕ
   |   ПриходныйКассовыйОрдер.Проведен = &Проведен
   |   И ПриходныйКассовыйОрдер.Дата МЕЖДУ &ДатаН И &ДатаК";
   
   Запрос.Текст = ТекстЗапроса;
   Запрос.МенеджерВременныхТаблиц = МВТ;
   Запрос.Параметры.Вставить("ДатаН", ДатаОтчета.ДатаНачала);
   Запрос.Параметры.Вставить("ДатаК", ДатаОтчета.ДатаОкончания);
   Запрос.Параметры.Вставить("Проведен", Истина);
   
   Запрос.Выполнить();
   
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанных"));
   
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровки, Истина,, МВТ);
   
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);   


В самом СКД делаю описание временной таблице в наборе данных. НО СКД упорно не видит временную таблицу. Чего я не сделал еще?
Спасибо за внимание.

LexaK

Похоже СКД не умеет работать с вашим менеджером временных таблиц.

для самого простого отчета попробуйте использовать в виде источника самый простой запрос!

вставьте это в источник и у вас все будет работать

ВЫБРАТЬ
      ПриходныйКассовыйОрдер.Ссылка КАК РегистраторПрихода,
      ПриходныйКассовыйОрдер.СуммаДокумента КАК Приход,
      ПриходныйКассовыйОрдер.ПодразделениеОрганизации КАК Подразделение
   ИЗ
      Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
   ГДЕ
      ПриходныйКассовыйОрдер.Проведен //это не надо ... = &Проведен
      И ПриходныйКассовыйОрдер.Дата МЕЖДУ &ДатаН И &ДатаК



Добавлено: 26 апр 2021, 16:02


еще, в виде источника, можно использовать внешние данные
получаете запросом данные из вашего МВТ и в виде ТЗ передаете в СКД

Запрос.Текст = "Выбрать * из ОборотПриход";
Результат = Запрос.выполнить().выгрузить();
ВнешниеДанные = Новый Структура("ТабРезультат", Результат);
...
   ПроцессорКомпановкиДанных = Новый ПроцессорКомпоновкиДанных;
   ПроцессорКомпановкиДанных.Инициализировать(МакетКомпановки, ВнешниеДанные, ДанныеРасшифровки);
ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск