Имя: Пароль:
1C
1С v8
Помогите разобраться с отчетом
0 stepanov1991
 
21.07.14
20:25
Нужно сделать отчет по электроэнергии, вот нашел старый, переделываю, но вылазит 2 ошибки
{Отчет.ОтчетРасходРесурсов1.Форма.ФормаОтчета.Форма(126,3)}: Переменная не определена (ОбластьИтогЭлектроэнергия)
        <<?>>ОбластьИтогЭлектроэнергия.Параметры.Заполнить(ВыборкаЭлектроэнергии);
{Отчет.ОтчетРасходРесурсов1.Форма.ФормаОтчета.Форма(127,18)}: Переменная не определена (ОбластьИтогиЭлектроэнергии)
        ТабДок.Вывести(<<?>>ОбластьИтогиЭлектроэнергии,ВыборкаЭлектроэнергии.Уровень(),,Ложь);

Процедура КнопкаСформироватьНажатие(Кнопка) Экспорт
    //Элементы отчета
    ТабДок=ЭлементыФормы.ПолеТабличногоДокумента1;
    ТабДок1=ЭлементыФормы.ПолеТабличногоДокумента2;
    ТабДок.Очистить();
    ТабДок1.Очистить();
    Макет=ОтчетОбъект.ПолучитьМакет("МакетОтчет");
    Если ЗначениеЗаполнено(НачПериода) и ЗначениеЗаполнено(КонПериода) Тогда
        ОбластьШапка=Макет.ПолучитьОбласть("ШапкаСДатой");
        ОбластьШапка.Параметры.НачПериода=Формат(НачПериода,"ДЛФ=Д");
        ОбластьШапка.Параметры.КонПериода=Формат(КонПериода,"ДЛФ=Д");
    Иначе
        ОбластьШапка=Макет.ПолучитьОбласть("ШапкаБезДаты");
    КонецЕсли;
    //Выводим информацию в два отчета
    ТабДок.Вывести(ОбластьШапка);
    ТабДок1.Вывести(ОбластьШапка);
    /////////////////////////////
    ОбластьОтступ=Макет.ПолучитьОбласть("ОбластьОтступ");
    ТабДок.Вывести(ОбластьОтступ);
    ТабДок1.Вывести(ОбластьОтступ);
    Если ЗначениеЗаполнено(КДМ) Тогда
        ОбластьОтбор=Макет.ПолучитьОбласть("ОбластьСОтбором");
        ОбластьОтбор.Параметры.КДМ=КДМ;
    Иначе
        ОбластьОтбор=Макет.ПолучитьОбласть("ОбластьБезОтбора");
    КонецЕсли;
    ТабДок.Вывести(ОбластьОтбор);
    ТабДок1.Вывести(ОбластьОтбор);
    ТабДок1.Вывести(ОбластьОтступ);
    ТабДок.Вывести(ОбластьОтступ);
    
    //Таблица Вода.........
    ШапкаТабЭлектроэнергии=Макет.ПолучитьОбласть("ШапкаТабЭлектроэнергии");
    //ШапкаТабВоздух=Макет.ПолучитьОбласть("ШапкаТабВоздух");
    //ШапкаТабЭл=Макет.ПолучитьОбласть("ШапкаТабЭлектроэнергия");
    ТабДок.Вывести(ШапкаТабЭлектроэнергии);
    ОбластьИтогЭлектроэнергииа=Макет.ПолучитьОбласть("ОбластьИтогЭлектроэнергии");
    //ОбластьИтогиВоздух=Макет.ПолучитьОбласть("ОбластьИтогВоздух");
    //ОбластьИтогиЭл=Макет.ПолучитьОбласть("ОбластьИтогЭлектроэнергия");
    ОбластьГруппировкаЭлектроэнергии=Макет.ПолучитьОбласть("ОбластьГруппировкаЭлектроэнергии");
    //ОбластьГруппировкаВоздух=Макет.ПолучитьОбласть("ОбластьГруппировкаВоздух");
    //ОбластьГруппировкаЭл=Макет.ПолучитьОбласть("ОбластьГруппировкаЭлектроэнергия");
    //
    //График воды
    ОбластьГрафикЭлектроэнергии=Макет.ПолучитьОбласть("ОбластьДиаграмма");
    ОбластьГрафикЭлектроэнергии.Параметры.ВидРасхода="Расход Электроэнергии";
    ДиаграммаЭлектроэнергии = ОбластьГрафикЭлектроэнергии.Области.Диаграмма.Объект;
    ДиаграммаЭлектроэнергии.ТипДиаграммы=ТипДиаграммы.График;
    ДиаграммаЭлектроэнергии.ПропускатьБазовоеЗначение=Ложь;
    ДиаграммаЭлектроэнергии.Обновление=Ложь;
    ДиаграммаЭлектроэнергии.Автотранспонирование=Ложь;
    ДиаграммаЭлектроэнергии.Очистить();
    ДиаграммаЭлектроэнергии.КоличествоСерий=0;
    ДиаграммаЭлектроэнергии.КоличествоТочек=0;
    
    ////График воздуха
    //ОбластьГрафикВоздух=Макет.ПолучитьОбласть("ОбластьДиаграмма");
    //ОбластьГрафикВоздух.Параметры.ВидРасхода="Расход воздуха";
    //ДиаграммаВоздуха=ОбластьГрафикВоздух.Области.Диаграмма1.Объект;    
    //ДиаграммаВоздуха.ТипДиаграммы=ТипДиаграммы.График;
    //ДиаграммаВоздуха.ПропускатьБазовоеЗначение=Ложь;
    //ДиаграммаВоздуха.Обновление=Ложь;
    //ДиаграммаВоздуха.Автотранспонирование=Ложь;
    //ДиаграммаВоздуха.Очистить();
    //ДиаграммаВоздуха.КоличествоСерий=0;
    //ДиаграммаВоздуха.КоличествоТочек=0;
    //
    ////График эл-ии.
    //ОбластьГрафикЭл=Макет.ПолучитьОбласть("ОбластьДиаграмма");
    //ОбластьГрафикЭл.Параметры.ВидРасхода="Расход Электроэнергии";
    //ДиаграммаЭл=ОбластьГрафикЭл.Области.Диаграмма1.Объект;
    //ДиаграммаЭл.ТипДиаграммы=ТипДиаграммы.График;
    //ДиаграммаЭл.ПропускатьБазовоеЗначение=Ложь;
    //ДиаграммаЭл.Обновление=Ложь;
    //ДиаграммаЭл.Автотранспонирование=Ложь;
    //ДиаграммаЭл.Очистить();
    //ДиаграммаЭл.КоличествоСерий=0;
    //ДиаграммаЭл.КоличествоТочек=0;
    
    ////////Запрос Показателей Энергии  БЫЛ РАСХОД ВОДЫ
    ЗапросЭлектроэнергии=Новый Запрос;
    ЗапросЭлектроэнергии.УстановитьПараметр("КДМ",КДМ);
    ЗапросЭлектроэнергии.УстановитьПараметр("НачПериода",НачПериода);
    ЗапросЭлектроэнергии.УстановитьПараметр("КонПериода",КонПериода);
    Текст="ВЫБРАТЬ
          |    ПоказателиРасходаЭлектроэнергии.Период,
          |    ПоказателиРасходаЭлектроэнергии.Регистратор_,
          |    ПоказателиРасходаЭлектроэнергии.НачалоСмены КАК НачалоСмены,
          |    ПоказателиРасходаЭлектроэнергии.КонецСмены КАК КонецСмены,
          |    ПоказателиРасходаЭлектроэнергии.РасходОбщий КАК РасходОбщий,
          |    ПоказателиРасходаЭлектроэнергии.РасходСчетчик1 КАК РасходСчетчик1,
          //|    ПоказателиРасходаВоды.РасходСчетчик2 КАК РасходСчетчик2,
          //|    ПоказателиРасходаВоды.РасходСчетчик3 КАК РасходСчетчик3
          |ИЗ
          |    РегистрСведений.ПоказателиРасходаЭлектроэнергии КАК ПоказателиРасходаЭлектроэнергии";
    Если ЗначениеЗаполнено(КДМ) И НЕ ЗначениеЗаполнено(НачПериода) И НЕ ЗначениеЗаполнено(КонПериода) Тогда
        Текст=Текст+"
                    |ГДЕ
                    |    ПоказателиРасходаЭлектроэнергии.КДМ = &КДМ";
    ИначеЕсли ЗначениеЗаполнено(КДМ) И ЗначениеЗаполнено(НачПериода) И ЗначениеЗаполнено(КонПериода) Тогда
        Текст=Текст+"
                    |ГДЕ
                    |    ПоказателиРасходаЭлектроэнергии.КДМ = &КДМ
                    |   И ПоказателиРасходаЭлектроэнергии.Период МЕЖДУ &НачПериода И &КонПериода";
    ИначеЕсли НЕ ЗначениеЗаполнено(КДМ) И ЗначениеЗаполнено(НачПериода) И ЗначениеЗаполнено(КонПериода) Тогда
        Текст=Текст+"
                    |ГДЕ
                    |    ПоказателиРасходаЭлектроэнергии.Период МЕЖДУ &НачПериода И &КонПериода";            
    КонецЕсли;
    Текст=Текст+"
                |ИТОГИ
                |    СУММА(РасходОбщий)
                |ПО
                |    ОБЩИЕ";
                
    ЗапросЭлектроэнергии.Текст=Текст;
    Результат=ЗапросЭлектроэнергии.Выполнить();
    ВремТЗЭлектроэнергии=Результат.Выбрать();
    //////////////////////////////
    ВыборкаЭлектроэнергии=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    ///
    ТабДок.НачатьАвтогруппировкуСтрок();
    Пока ВыборкаЭлектроэнергии.Следующий() Цикл
        ОбластьИтогЭлектроэнергии.Параметры.Заполнить(ВыборкаЭлектроэнергии);
        ТабДок.Вывести(ОбластьИтогиЭлектроэнергии,ВыборкаЭлектроэнергии.Уровень(),,Ложь);
        ВыборкаГруппЭлектроэнергии=ВыборкаЭлектроэнергии.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        //Серии диаграммы
        Серия=ДиаграммаЭлектроэнергии.УстановитьСерию("Электроэнергия");
        Серия.Расшифровка=ВыборкаЭлектроэнергии.Регистратор_;
        //Вода и диаграмма
        Пока ВыборкаГруппЭлектроэнергии.Следующий() Цикл
            ОбластьГруппировкаЭлектроэнергии.Параметры.Заполнить(ВыборкаГруппЭлектроэнергии);
            ТабДок.Вывести(ОбластьГруппировкаЭлектроэнергии,ВыборкаГруппЭлектроэнергии.Уровень(),,Ложь);
            Точка=ДиаграммаЭлектроэнергии.УстановитьТочку(ВыборкаГруппЭлектроэнергии.КонецСмены);
            Точка.Текст=ВыборкаГруппЭлектроэнергии.КонецСмены;
            Точка.Расшифровка=ВыборкаГруппЭлектроэнергии.КонецСмены;
            ДиаграммаЭлектроэнергии.УстановитьЗначение(Точка,Серия,ВыборкаГруппЭлектроэнергии.РасходОбщий);
        КонецЦикла; //Группировка
    КонецЦикла;  //Итоги
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ДиаграммаЭлектроэнергии.АвтоТранспонирование=Истина;
    ДиаграммаЭлектроэнергии.Обновление=Истина;    
    ТабДок1.Вывести(ОбластьГрафикЭлектроэнергии);
    /////////---Вода------///////////
    
    //ТабДок.Вывести(ШапкаТабВоздух);
    //
    /////Запрос показателей Воздуха
    //ЗапросВоздуха=Новый Запрос;
    //ЗапросВоздуха.УстановитьПараметр("КДМ",КДМ);
    //ЗапросВоздуха.УстановитьПараметр("НачПериода",НачПериода);
    //ЗапросВоздуха.УстановитьПараметр("КонПериода",КонПериода);
    //Текст="ВЫБРАТЬ
    //      |    ПоказателиРасходаВоздуха.Период,
    //      |    ПоказателиРасходаВоздуха.Регистратор_,
    //      |    ПоказателиРасходаВоздуха.НачалоСмены,
    //      |    ПоказателиРасходаВоздуха.КонецСмены,
    //      |    ПоказателиРасходаВоздуха.РасходСчетчик1,
    //      |    ПоказателиРасходаВоздуха.РасходСчетчик2,
    //      |    ПоказателиРасходаВоздуха.РасходОбщий КАК РасходОбщий
    //      |ИЗ
    //      |    РегистрСведений.ПоказателиРасходаВоздуха КАК ПоказателиРасходаВоздуха";
    //Если ЗначениеЗаполнено(КДМ) И НЕ ЗначениеЗаполнено(НачПериода) И НЕ ЗначениеЗаполнено(КонПериода) Тогда
    //    Текст=Текст+"
    //                  |ГДЕ
    //                  |    ПоказателиРасходаВоздуха.КДМ = &КДМ";
    //ИначеЕсли ЗначениеЗаполнено(КДМ) И ЗначениеЗаполнено(НачПериода) И ЗначениеЗаполнено(КонПериода) Тогда
    //    Текст=Текст+"
    //                |ГДЕ
    //                  |    ПоказателиРасходаВоздуха.КДМ = &КДМ
    //                  |    И ПоказателиРасходаВоздуха.Период МЕЖДУ &НачПериода И &КонПериода";
    //ИначеЕсли НЕ ЗначениеЗаполнено(КДМ) И ЗначениеЗаполнено(НачПериода) И ЗначениеЗаполнено(КонПериода) Тогда
    //    Текст=Текст+"
    //                |ГДЕ
    //                |    ПоказателиРасходаВоздуха.Период МЕЖДУ &НачПериода И &КонПериода";
    //КонецЕсли;
    //Текст=Текст+"            
    //              |ИТОГИ
    //              |    СУММА(РасходОбщий)
    //              |ПО
    //              |    ОБЩИЕ";
    //ЗапросВоздуха.Текст=Текст;
    //РезультатВ=ЗапросВоздуха.Выполнить();
    //ВыборкаВоздуха=РезультатВ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    //ТабДок.НачатьАвтогруппировкуСтрок();
    //Пока ВыборкаВоздуха.Следующий() Цикл
    //    ОбластьИтогиВоздух.Параметры.Заполнить(ВыборкаВоздуха);
    //    ТабДок.Вывести(ОбластьИтогиВоздух,ВыборкаВоздуха.Уровень(),,Ложь);
    //    ВыборкаГруппВоздух=ВыборкаВоздуха.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    //    //Серии диаграммы
    //    СерияВозд=ДиаграммаВоздуха.УстановитьСерию("Воздух");
    //    СерияВозд.Расшифровка=ВыборкаВоздуха.Регистратор_;
    //    СерияВозд.Цвет=Новый Цвет(0, 204, 255);
    //    //Воздух и диаграмма
    //    Пока ВыборкаГруппВоздух.Следующий() Цикл
    //        ОбластьГруппировкаВоздух.Параметры.Заполнить(ВыборкаГруппВоздух);
    //        ТабДок.Вывести(ОбластьГруппировкаВоздух,ВыборкаГруппВоздух.Уровень(),,Ложь);
    //        ТочкаВозд=ДиаграммаВоздуха.УстановитьТочку(ВыборкаГруппВоздух.КонецСмены);
    //        ТочкаВозд.Текст=ВыборкаГруппВоздух.КонецСмены;
    //        ТочкаВозд.Расшифровка=ВыборкаГруппВоздух.КонецСмены;
    //        ДиаграммаВоздуха.УстановитьЗначение(ТочкаВозд,СерияВозд,ВыборкаГруппВоздух.РасходОбщий);
    //    КонецЦикла; //Группировка
    //КонецЦикла;  //Итоги
    //ТабДок.ЗакончитьАвтогруппировкуСтрок();
    //ДиаграммаВоздуха.АвтоТранспонирование=Истина;
    //ДиаграммаВоздуха.Обновление=Истина;
    //ТабДок1.Вывести(ОбластьГрафикВоздух);
    ////////////////////////////
    //
    //ТабДок.Вывести(ШапкаТабЭл);
    //
    /////Запрос показателей Электроэнергии
    //ЗапросЭл=Новый Запрос;
    //ЗапросЭл.УстановитьПараметр("КДМ",КДМ);
    //ЗапросЭл.УстановитьПараметр("НачПериода",НачПериода);
    //ЗапросЭл.УстановитьПараметр("КонПериода",КонПериода);
    //Текст="ВЫБРАТЬ
    //      |    ПоказателиРасходаЭлектроэнергии.Период,
    //      |    ПоказателиРасходаЭлектроэнергии.Регистратор_,
    //      |    ПоказателиРасходаЭлектроэнергии.НачалоСмены,
    //      |    ПоказателиРасходаЭлектроэнергии.КонецСмены,
    //      |    ПоказателиРасходаЭлектроэнергии.РасходСчетчик1,
    //      |    ПоказателиРасходаЭлектроэнергии.РасходОбщий КАК РасходОбщий
    //      |ИЗ
    //      |    РегистрСведений.ПоказателиРасходаЭлектроэнергии КАК ПоказателиРасходаЭлектроэнергии";
    //Если ЗначениеЗаполнено(КДМ) И НЕ ЗначениеЗаполнено(НачПериода) И НЕ ЗначениеЗаполнено(КонПериода) Тогда
    //    Текст=Текст+"
    //                  |ГДЕ
    //                  |    ПоказателиРасходаЭлектроэнергии.КДМ = &КДМ";
    //ИначеЕсли ЗначениеЗаполнено(КДМ) И ЗначениеЗаполнено(НачПериода) И ЗначениеЗаполнено(КонПериода) Тогда
    //    Текст=Текст+"
    //                |ГДЕ
    //                  |    ПоказателиРасходаЭлектроэнергии.КДМ = &КДМ
    //                  |    И ПоказателиРасходаЭлектроэнергии.Период МЕЖДУ &НачПериода И &КонПериода";
    //ИначеЕсли НЕ ЗначениеЗаполнено(КДМ) И ЗначениеЗаполнено(НачПериода) И ЗначениеЗаполнено(КонПериода) Тогда
    //    Текст=Текст+"
    //                |ГДЕ
    //                |    ПоказателиРасходаЭлектроэнергии.Период МЕЖДУ &НачПериода И &КонПериода";
    //КонецЕсли;
    //Текст=Текст+"            
    //              |ИТОГИ
    //              |    СУММА(РасходОбщий)
    //              |ПО
    //              |    ОБЩИЕ";
    //ЗапросЭл.Текст=Текст;
    //РезультатЭл=ЗапросЭл.Выполнить();
    //ВыборкаЭл=РезультатЭл.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    //ТабДок.НачатьАвтогруппировкуСтрок();
    //Пока ВыборкаЭл.Следующий() Цикл
    //    ОбластьИтогиЭл.Параметры.Заполнить(ВыборкаЭл);
    //    ТабДок.Вывести(ОбластьИтогиЭл,ВыборкаЭл.Уровень(),,Ложь);
    //    ВыборкаГруппЭл=ВыборкаЭл.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    //    //Серии диаграммы
    //    СерияЭл=ДиаграммаЭл.УстановитьСерию("Электроэнергия");
    //    СерияЭл.Расшифровка=ВыборкаЭл.Регистратор_;
    //    СерияЭл.Цвет=Новый Цвет(255, 204, 0);
    //    //Воздух и диаграмма
    //    Пока ВыборкаГруппЭл.Следующий() Цикл
    //        ОбластьГруппировкаЭл.Параметры.Заполнить(ВыборкаГруппЭл);
    //        ТабДок.Вывести(ОбластьГруппировкаЭл,ВыборкаГруппЭл.Уровень(),,Ложь);
    //        ТочкаЭл=ДиаграммаЭл.УстановитьТочку(ВыборкаГруппЭл.Период);
    //        ТочкаЭл.Текст=ВыборкаГруппЭл.КонецСмены;
    //        ТочкаЭл.Расшифровка=ВыборкаГруппЭл.КонецСмены;
    //        ДиаграммаЭл.УстановитьЗначение(ТочкаЭл,СерияЭл,ВыборкаГруппЭл.РасходОбщий);
    //    КонецЦикла; //Группировка
    //КонецЦикла;  //Итоги
    //ТабДок.ЗакончитьАвтогруппировкуСтрок();
    //ДиаграммаЭл.АвтоТранспонирование=Истина;
    //ДиаграммаЭл.Обновление=Истина;
    //ТабДок1.Вывести(ОбластьГрафикЭл);
    //Основной
    ТабДок.ТолькоПросмотр=Истина;
    ТабДок.АвтоМасштаб=Истина;
    ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
    //График
    ТабДок1.АвтоМасштаб=Истина;
    ТабДок1.ТолькоПросмотр=Истина;
    ТабДок1.ОриентацияСтраницы=ОриентацияСтраницы.Портрет;
            
КонецПроцедуры

Процедура ВыбПериодНажатие(Элемент)
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    НастройкаПериода.УстановитьПериод(НачПериода, ?(КонПериода='0001-01-01', КонПериода, КонецДня(КонПериода)));
    Если НастройкаПериода.Редактировать() Тогда
        НачПериода = НастройкаПериода.ПолучитьДатуНачала();
        КонПериода = НастройкаПериода.ПолучитьДатуОкончания();
    КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
    НачПериода=НачалоМесяца(ТекущаяДата());
    КонПериода=КонецДня(ТекущаяДата());
    КДМ5=Справочники.РабочиеЦентры.НайтиПоНаименованию("КДМ №5");
    КДМ=КДМ5;
КонецПроцедуры
1 stepanov1991
 
21.07.14
20:26
помогите разобраться с отчетом, чего то голову ломаю, прошу сильно не пинать, неделю только разбираюсьс 1с
2 Apokalipsec
 
21.07.14
20:27
ОбластьИтогЭлектроэнергииа - тут ошибка,ну и ещё где-то с именами напутал.
3 Ненавижу 1С
 
гуру
21.07.14
20:27
че платим?
4 stepanov1991
 
21.07.14
20:30
за че платим) договоримся)
5 stepanov1991
 
21.07.14
20:34
ДА нет,все вроди бы правильно(( А ошибка то есть
6 Wobland
 
21.07.14
20:37
(5) >Переменная не определена
всё правильно, да
7 Apokalipsec
 
21.07.14
20:38
ну раз не хочешь ничего делать сам - 1к и решим твою проблему
8 stepanov1991
 
21.07.14
20:39
Нашел проблемму, устранил) теперь другое горе))
{Отчет.ОтчетРасходРесурсов1.Форма.ФормаОтчета.Форма(119)}: Ошибка при вызове метода контекста (Выполнить)
    Результат=ЗапросЭлектроэнергии.Выполнить();
по причине:
{(8, 1)}: Синтаксическая ошибка "ИЗ"
<<?>>ИЗ
9 Wobland
 
21.07.14
20:40
(8) а это Синтаксическая ошибка у тебя. внезапно, правда?
10 stepanov1991
 
21.07.14
20:41
Wobland, правда правда))
11 Wobland
 
21.07.14
20:44
(10) восьмая строка. не за что
12 stepanov1991
 
21.07.14
20:57
Wobland, посмотри на свою почту которая указанна в профеле.
13 stepanov1991
 
21.07.14
20:59
Ну выводит у меня этот отчет с синтаксической ошибкой, но поля пустые, Люди помогите рпзобраться))
14 Kookish
 
21.07.14
21:04
(11)+
Восьмая строка текста запроса, если что. А чего волноваться-то, отчет-то выводит.
15 Ненавижу 1С
 
гуру
21.07.14
21:42
запятая перед ИЗ лишняя
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс