Имя: Пароль:
1C
1С v8
Как в построитель отчета засунуть менеджер временных таблиц?
,
0 Anchel74
 
22.03.12
12:25
В общем, необходимо сделать отчет на базе универсального отчета.
Проблема в том, что необходимо было преобразовать значение из строки в число, что в запросе невозможно. Поэтому решили сначала отдельно преобразовать нужные значения с созданием ТЗ, а далее помещать ее в запрос. Но в построителе отчета никак не пойму как сделать менеджер временных таблиц. Подскажите, плиз, решение)

вот текущий код:

ТекстЗапроса =
   " Выбрать
   | Значение(Справочник.СерииНоменклатуры.ПустаяСсылка) как СерияНоменклатуры,
   |  ВЫРАЗИТЬ(0 КАК ЧИСЛО(15, 8)) как НомерСерии
   | ПОМЕСТИТЬ  ТаблицаСерий;
   |
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    ВложенныйЗапрос.Период,
   |    ВложенныйЗапрос.Регистратор,
   |    ВложенныйЗапрос.Склад,
   |    ВложенныйЗапрос.Номенклатура,
   |    ВложенныйЗапрос.Качество,
   |    ВложенныйЗапрос.ХарактеристикаНоменклатуры,
   |    ВложенныйЗапрос.СерияНоменклатуры,
   |    ВложенныйЗапрос.КоличествоНачальныйОстаток,
   |    ВложенныйЗапрос.КоличествоПриход,
   |    ВложенныйЗапрос.КоличествоРасход,
   |    ВложенныйЗапрос.КоличествоОборот,
   |    ВложенныйЗапрос.КоличествоКонечныйОстаток,
   |    ВложенныйЗапрос.КоличествоНачальныйОстатокВШт,
   |    ВложенныйЗапрос.КоличествоПриходВШт,
   |    ВложенныйЗапрос.КоличествоРасходВШт,
   |    ВложенныйЗапрос.КоличествоОборотВШт,
   |    ВложенныйЗапрос.КоличествоКонечныйОстатокВШт,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕНЬ) КАК ПериодДень,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, НЕДЕЛЯ) КАК ПериодНеделя,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕКАДА) КАК ПериодДекада,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ) КАК ПериодМесяц,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, КВАРТАЛ) КАК ПериодКвартал,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД) КАК ПериодГод
   |ИЗ
   |    (ВЫБРАТЬ
   |        ТоварыНаСкладахОстаткиИОбороты.Период КАК Период,
   |        ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
   |        ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
   |        ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
   |        ТоварыНаСкладахОстаткиИОбороты.Качество КАК Качество,
   |        ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |        ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот) КАК КоличествоОборот,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоНачальныйОстатокВШт,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоКонечныйОстатокВШт,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоОборотВШт,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоПриходВШт,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоРасходВШт
   |    ИЗ
   |        РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
   |            ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСерий КАК ТаблицаСерий
   |            ПО ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры = ТаблицаСерий.СерияНоменклатуры
   |    
   |    СГРУППИРОВАТЬ ПО
   |        ТоварыНаСкладахОстаткиИОбороты.Склад,
   |        ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   |        ТоварыНаСкладахОстаткиИОбороты.Регистратор,
   |        ТоварыНаСкладахОстаткиИОбороты.Качество,
   |        ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры,
   |        ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
   |        ТоварыНаСкладахОстаткиИОбороты.Период) КАК ВложенныйЗапрос
   |ИТОГИ ПО
   |    ОБЩИЕ";
1 le_
 
22.03.12
12:32
Через ОписаниеИсточникаДанных можно попробовать ТЗ построителю передать.
2 Anchel74
 
23.03.12
08:47
сделала через источник данных, но при формировании отчета не выводятся показатели по измерениям, ставлю "показывать детальные записи" в истина, выводятся. Делала все стандартно, как нужно формировать универсальный отчет. Может при использовании источника данных нужны еще какие то специальные настройки?
3 Anchel74
 
23.03.12
09:36
вот код:

Процедура УстановитьНачальныеНастройки(ДополнительныеПараметры = Неопределено) Экспорт
   
   
   УниверсальныйОтчет.мНазваниеОтчета = СокрЛП(ЭтотОбъект.Метаданные().Синоним);
   УниверсальныйОтчет.мВыбиратьИмяРегистра = Ложь;

   Если УниверсальныйОтчет.ДатаНач=Дата(0001,01,01)  Тогда
       УниверсальныйОтчет.ДатаНач=НачалоМесяца(ТекущаяДата());
   КонецЕсли;
   ТаблицаСерий=Новый ТаблицаЗначений;
   Массив = Новый Массив;
   Массив.Добавить(Тип("СправочникСсылка.СерииНоменклатуры"));  
   ТаблицаСерий.Колонки.Добавить("Серия", Новый ОписаниеТипов(Массив));
   Массив.Очистить();
   Массив.Добавить(Тип("Число"));
   КЧ = Новый КвалификаторыЧисла(15,8);
   ТаблицаСерий.Колонки.Добавить("НомерСерии", Новый ОписаниеТипов(Массив,,,КЧ));

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

   Запрос=Новый Запрос;
   Запрос.МенеджерВременныхТаблиц=новый МенеджерВременныхТаблиц;
   Запрос.УстановитьПараметр("ВнТаб", ТаблицаСерий);
   Запрос.УстановитьПараметр("ДатаНач", УниверсальныйОтчет.ДатаНач);
   Запрос.УстановитьПараметр("ДатаКон", УниверсальныйОтчет.ДатаКон);
   ТекстЗапроса =
   "ВЫБРАТЬ
   |    ТабСерий.Серия КАК СерияНоменклатуры,
   |    ТабСерий.НомерСерии КАК НомерСерии
   |ПОМЕСТИТЬ ТаблицаСерий
   |ИЗ
   |    &ВнТаб КАК ТабСерий
   |;
   |
   |////////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗРЕШЕННЫЕ
   |    ВложенныйЗапрос.Период КАК Период,
   |    ВложенныйЗапрос.Регистратор КАК Регистратор,
   |    ВложенныйЗапрос.Склад КАК Склад,
   |    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
   |    ВложенныйЗапрос.Качество КАК Качество,
   |    ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |    ВложенныйЗапрос.СерияНоменклатуры КАК СерияНоменклатуры,
   |    ВложенныйЗапрос.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   |    ВложенныйЗапрос.КоличествоПриход КАК КоличествоПриход,
   |    ВложенныйЗапрос.КоличествоРасход КАК КоличествоРасход,
   |    ВложенныйЗапрос.КоличествоОборот КАК КоличествоОборот,
   |    ВложенныйЗапрос.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
   |    ВложенныйЗапрос.КоличествоНачальныйОстатокВШт КАК КоличествоНачальныйОстатокВШт,
   |    ВложенныйЗапрос.КоличествоПриходВШт КАК КоличествоПриходВШт,
   |    ВложенныйЗапрос.КоличествоРасходВШт КАК КоличествоРасходВШт,
   |    ВложенныйЗапрос.КоличествоОборотВШт КАК КоличествоОборотВШт,
   |    ВложенныйЗапрос.КоличествоКонечныйОстатокВШт КАК КоличествоКонечныйОстатокВШт,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕНЬ) КАК ПериодДень,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, НЕДЕЛЯ) КАК ПериодНеделя,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕКАДА) КАК ПериодДекада,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ) КАК ПериодМесяц,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, КВАРТАЛ) КАК ПериодКвартал,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
   |    НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД) КАК ПериодГод
   |{ВЫБРАТЬ
   |    Склад.*,
   |    Номенклатура.*,
   |    Качество.*,
   |    ХарактеристикаНоменклатуры.*,
   |    СерияНоменклатуры.*,
   |    Регистратор.*,
   |    Период,
   |    ПериодДень,
   |    ПериодНеделя,
   |    ПериодДекада,
   |    ПериодМесяц,
   |    ПериодКвартал,
   |    ПериодПолугодие,
   |    ПериодГод,
   |    КоличествоНачальныйОстаток,
   |    КоличествоПриход,
   |    КоличествоРасход,
   |    КоличествоОборот,
   |    КоличествоКонечныйОстаток,
   |    КоличествоНачальныйОстатокВШт,
   |    КоличествоПриходВШт,
   |    КоличествоРасходВШт,
   |    КоличествоОборотВШт,
   |    КоличествоКонечныйОстатокВШт}
   |ИЗ
   |    (ВЫБРАТЬ
   |        ТоварыНаСкладахОстаткиИОбороты.Период КАК Период,
   |        ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Регистратор,
   |        ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад,
   |        ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
   |        ТоварыНаСкладахОстаткиИОбороты.Качество КАК Качество,
   |        ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |        ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот) КАК КоличествоОборот,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
   |        СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоНачальныйОстатокВШт,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоКонечныйОстатокВШт,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоОборотВШт,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоПриходВШт,
   |        СУММА(ВЫБОР
   |                КОГДА ЕСТЬNULL(ТаблицаСерий.НомерСерии, 0) > 0
   |                    ТОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход / ТаблицаСерий.НомерСерии
   |                ИНАЧЕ 0
   |            КОНЕЦ) КАК КоличествоРасходВШт
   |    ИЗ
   |        РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты
   |            ПОЛНОЕ СОЕДИНЕНИЕ ТаблицаСерий КАК ТаблицаСерий
   |            ПО ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры = ТаблицаСерий.СерияНоменклатуры
   |    
   |    СГРУППИРОВАТЬ ПО
   |        ТоварыНаСкладахОстаткиИОбороты.Регистратор,
   |        ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры,
   |        ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
   |        ТоварыНаСкладахОстаткиИОбороты.Качество,
   |        ТоварыНаСкладахОстаткиИОбороты.Период,
   |        ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   |        ТоварыНаСкладахОстаткиИОбороты.Склад) КАК ВложенныйЗапрос
   |{ГДЕ
   |    ВложенныйЗапрос.Склад.*,
   |    ВложенныйЗапрос.Номенклатура.*,
   |    ВложенныйЗапрос.Качество.*,
   |    ВложенныйЗапрос.ХарактеристикаНоменклатуры.*,
   |    ВложенныйЗапрос.СерияНоменклатуры.*,
   |    ВложенныйЗапрос.КоличествоНачальныйОстаток,
   |    ВложенныйЗапрос.КоличествоПриход,
   |    ВложенныйЗапрос.КоличествоРасход,
   |    ВложенныйЗапрос.КоличествоОборот,
   |    ВложенныйЗапрос.КоличествоКонечныйОстаток,
   |    ВложенныйЗапрос.КоличествоНачальныйОстатокВШт,
   |    ВложенныйЗапрос.КоличествоПриходВШт,
   |    ВложенныйЗапрос.КоличествоРасходВШт,
   |    ВложенныйЗапрос.КоличествоОборотВШт,
   |    ВложенныйЗапрос.КоличествоКонечныйОстатокВШт,
   |    ВложенныйЗапрос.Период,
   |    (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕНЬ)) КАК ПериодДень,
   |    (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, НЕДЕЛЯ)) КАК ПериодНеделя,
   |    (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕКАДА)) КАК ПериодДекада,
   |    (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ)) КАК ПериодМесяц,
   |    (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, КВАРТАЛ)) КАК ПериодКвартал,
   |    (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ПОЛУГОДИЕ)) КАК ПериодПолугодие,
   |    (НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД)) КАК ПериодГод}
   |{УПОРЯДОЧИТЬ ПО
   |    Склад.*,
   |    Номенклатура.*,
   |    Качество.*,
   |    ХарактеристикаНоменклатуры.*,
   |    СерияНоменклатуры.*,
   |    КоличествоНачальныйОстаток,
   |    КоличествоПриход,
   |    КоличествоРасход,
   |    КоличествоОборот,
   |    КоличествоКонечныйОстаток,
   |    КоличествоНачальныйОстатокВШт,
   |    КоличествоПриходВШт,
   |    КоличествоРасходВШт,
   |    КоличествоОборотВШт,
   |    КоличествоКонечныйОстатокВШт,
   |    ПериодДень,
   |    ПериодНеделя,
   |    ПериодДекада,
   |    ПериодМесяц,
   |    ПериодКвартал,
   |    ПериодПолугодие,
   |    ПериодГод}
   |ИТОГИ
   |    СУММА(КоличествоНачальныйОстаток),
   |    СУММА(КоличествоПриход),
   |    СУММА(КоличествоРасход),
   |    СУММА(КоличествоОборот),
   |    СУММА(КоличествоКонечныйОстаток),
   |    СУММА(КоличествоНачальныйОстатокВШт),
   |    СУММА(КоличествоПриходВШт),
   |    СУММА(КоличествоРасходВШт),
   |    СУММА(КоличествоОборотВШт),
   |    СУММА(КоличествоКонечныйОстатокВШт)
   |ПО
   |    ОБЩИЕ
   |{ИТОГИ ПО
   |    Склад.*,
   |    Номенклатура.*,
   |    Качество.*,
   |    ХарактеристикаНоменклатуры.*,
   |    СерияНоменклатуры.*,
   |    Регистратор.*,
   |    Период,
   |    ПериодДень,
   |    ПериодНеделя,
   |    ПериодДекада,
   |    ПериодМесяц,
   |    ПериодКвартал,
   |    ПериодПолугодие,
   |    ПериодГод}";    



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


   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Склад", "Склад");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Номенклатура", "Номенклатура");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("ХарактеристикаНоменклатуры", "Характеристика номенклатуры");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("СерияНоменклатуры", "Серия номенклатуры");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Качество", "Качество");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("Регистратор", "Документ движения(регистратор)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоНачальныйОстаток", "Количество (в базовых единицах) (нач. ост.)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоПриход",           "Количество (в базовых единицах) (приход)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоРасход",           "Количество (в базовых единицах) (расход)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоКонечныйОстаток",  "Количество (в базовых единицах) (кон. ост.)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоОборот",           "Количество (в базовых единицах) (оборот)");      
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоНачальныйОстатокВШт", "Количество (в шт.) (нач. ост.)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоПриходВШт",           "Количество (в шт.) (приход)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоРасходВШт",           "Количество (в шт.) (расход)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоКонечныйОстатокВШт",  "Количество (в шт.) (кон. ост.)");
   УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить("КоличествоОборотВШт",           "Количество (в шт.) (оборот)");
   
   
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоНачальныйОстаток", "Начальный остаток", Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоПриход",           "Приход",            Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоРасход",           "Расход",            Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоКонечныйОстаток",  "Конечный остаток",  Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОборот",           "Оборот",              Ложь, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕд", "Количество (в базовых единицах)");
   

   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоНачальныйОстатокВШт", "Начальный остаток", Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕдВШт", "Количество (в шт.)");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоПриходВШт",           "Приход",            Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕдВШт", "Количество (в шт.)");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоРасходВШт",           "Расход",            Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕдВШт", "Количество (в шт.)");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоКонечныйОстатокВШт",  "Конечный остаток",  Истина, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕдВШт", "Количество (в шт.)");
   УниверсальныйОтчет.ДобавитьПоказатель("КоличествоОборотВШт",           "Оборот",              Ложь, "ЧЦ=15; ЧДЦ=3", "КолБазовыхЕдВШт", "Количество (в шт.)");
   

   
   УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Склад");
   УниверсальныйОтчет.ДобавитьИзмерениеСтроки("Номенклатура");
   

   УниверсальныйОтчет.ДобавитьОтбор("Склад");
   УниверсальныйОтчет.ДобавитьОтбор("Номенклатура");
   
   
   // Установка представлений полей
   УниверсальныйОтчет.УстановитьПредставленияПолей(УниверсальныйОтчет.мСтруктураПредставлениеПолей, УниверсальныйОтчет.ПостроительОтчета);
   
   // Установка типов значений свойств в отборах отчета
   УниверсальныйОтчет.УстановитьТипыЗначенийСвойствДляОтбора();
   
   // Заполнение начальных настроек универсального отчета
   УниверсальныйОтчет.УстановитьНачальныеНастройки(Ложь);
   
КонецПроцедуры // УстановитьНачальныеНастройки()

может что то неправильно делаю?
4 le_
 
23.03.12
10:08
1.
ТаблицаСерий.Колонки.Добавить("Серия", Новый ОписаниеТипов("СправочникСсылка.СерииНоменклатуры"));
ТаблицаСерий.Колонки.Добавить("НомерСерии", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 8)));


2. Все это дело можно перенести в запрос:
Пока Выборка.Следующий() цикл
    Если ЗначениеЗаполнено(Выборка.СерийныйНомер) Тогда
        Попытка
            НовСтр=ТаблицаСерий.Добавить();
            НовСтр.Серия=Выборка.СерияНоменклатуры;
            НовСтр.НомерСерии=Число(Выборка.СерийныйНомер);
            //сообщить(Выборка.СерияНоменклатуры);

        Исключение
        КонецПопытки;
    КонецЕсли;
КонецЦикла;


3. Для чего создается МенеджерВременныхТаблиц?

4. Добавьте Итоги в колонки описания источника данных. Поиск в СП: КолонкаОписанияИсточникаДанных.
v8: Построитель запроса с источником данных ТаблицаЗапроса
5 Anchel74
 
23.03.12
11:37
(4) к п.2 и 3: Т.к в запросе невозможно привести строку к числу, для этого осуществляем преобразование отдельно, и потому и создаем менеджер временных таблиц

к п. 4: вот именно это и помогло, надо было для каждого показателя такую вот строчку писать:
ИсточникДанных.Колонки.КоличествоНачальныйОстаток.Итог = "СУММА(КоличествоНачальныйОстаток)";
6 le_
 
23.03.12
11:55
(5) Просто, всё можно сделать в одном запросе (пусть, с временной таблицей), без менеджера временных таблиц.

Менеджер временных таблиц нужен, когда разные запросы к какой-то временной таблице обращаются. Он хранит ВТ до тех пор, пока не будет уничтожен или закрыт.

СП: Если временная таблица создается, используется и уничтожается в рамках одного пакета запросов, менеджер временных таблиц создавать не нужно.
7 Anchel74
 
23.03.12
12:17
(6) подскажите тогда, как сделать проще? просто первый раз работаю с временными таблицами
8 le_
 
23.03.12
12:51
(7) Ну, вот пример простого пакетного запроса с временными таблицами без использования менеджера временных таблиц:
ВЫБРАТЬ//это первый пакет
   1 КАК Единичка
ПОМЕСТИТЬ ВременнаяТаблица
;
/////////////////////////////////////////////////////////
ВЫБРАТЬ//это второй пакет
   2 КАК Двойка
ПОМЕСТИТЬ ВременнаяТаблица2
;
/////////////////////////////////////////////////////////
//ниже, собственно, выборка из созданных временных таблиц
ВЫБРАТЬ
   ВременнаяТаблица.Единичка КАК ЦифИрки
ИЗ
   ВременнаяТаблица КАК ВременнаяТаблица

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ВременнаяТаблица2.Двойка
ИЗ
   ВременнаяТаблица2 КАК ВременнаяТаблица2
9 Anchel74
 
23.03.12
12:58
(8) ну это то я знаю, но мне то надо чтобы извне таблица значений помещалась во временную таблицу, а кроме как менеджера я не знаю как это сделать
10 le_
 
23.03.12
13:05
(9) Пример:

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