8.х УПП УПП: Ошибка при формировании Отчета по бюджету

Тема в разделе ""1С:Управление производственным предприятием УПП"", создана пользователем Necsot, 19 апр 2012.

  1. TopicStarter Overlay
    Necsot
    Offline

    Necsot

    Регистрация:
    19 апр 2012
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Добрый день. Столкнулся с проблемой при формировании отчета по бюджету в УПП (интерфейс бюджетирование). При попытке сформировать отчет с указанием данные: фактические данные (источники данных для расчетов)вылетает ошибка:
    {Отчет.ОтчетПоБюджету.МодульОбъекта(1500)}:
    Ошибка при установке значения атрибута контекста (Текст)
    ПостроительОтчета.Текст=ТекстПостроителя;
    по причине:
    {(110, 1)}: Синтаксическая ошибка "ИЗ"
    <<?>>ИЗ
    Причем в демо-конфигурации все работает.
    Если кто-то сталкивался подскажите как исправить. Спасибо.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Отладчиком перехватите тест запроса в этот момент и покажите его.
  3. TopicStarter Overlay
    Necsot
    Offline

    Necsot

    Регистрация:
    19 апр 2012
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Код:
    // Формирует текст запроса построителя по источникам данных
    //
    Процедура СформироватьТекстЗапросаПоисточникам(НетИсточников)
    
    СтруктураПараметров=Новый Структура;
    Периодичность=?(Сценарий.Пустая(),"День",Строка(Сценарий.Периодичность));
    
    ТекстПостроителя="
    |ВЫБРАТЬ
    |{ВЫБРАТЬ
    |ЦФО.* КАК ЦФО,
    |Проект.* КАК Проект,
    |Контрагент.* КАК Контрагент,
    |Номенклатура.* КАК Номенклатура,
    |Валюта КАК Валюта,
    |"+Бюджетирование.СформироватьТекстЗапросаПоПериодам(Периодичность,"Период")+"
    |ВЫРАЗИТЬ(Период КАК Дата) КАК Период
    |}
    |СуммаУпрОборот КАК СуммаУпр,
    |ВалютнаяСуммаОборот КАК ВалютнаяСумма,
    |КоличествоОборот КАК Количество
    |ИЗ";
    
    // Определим измерения бюджетирования, используемые в полях построителя
    
    СтруктураИспользуемых=Новый Структура;
    
    Для Каждого Поле Из ПостроительОтчета.ИзмеренияСтроки Цикл
    
    Если Поле.ПутьКДанным="ЦФО"
    ИЛИ Поле.ПутьКДанным="Проект"
    ИЛИ Поле.ПутьКДанным="Контрагент"
    ИЛИ Поле.ПутьКДанным="Номенклатура"
    ИЛИ Поле.ПутьКДанным="Валюта" Тогда
    
    СтруктураИспользуемых.Вставить(Поле.ПутьКДанным);
    
    Иначе
    
    ИмяИзмерения=Лев(Поле.ПутьКДанным,Найти(Поле.ПутьКДанным,".")-1);
    
    Если ИмяИзмерения="ЦФО"
    ИЛИ ИмяИзмерения="Проект"
    ИЛИ ИмяИзмерения="Контрагент"
    ИЛИ ИмяИзмерения="Номенклатура" Тогда
    
    СтруктураИспользуемых.Вставить(ИмяИзмерения);
    
    КонецЕсли;
    
    КонецЕсли;
    
    КонецЦикла;
    
    Для Каждого Поле Из ПостроительОтчета.Отбор Цикл
    
    Если Поле.ПутьКДанным="ЦФО"
    ИЛИ Поле.ПутьКДанным="Проект"
    ИЛИ Поле.ПутьКДанным="Контрагент"
    ИЛИ Поле.ПутьКДанным="Номенклатура"
    ИЛИ Поле.ПутьКДанным="Валюта" Тогда
    СтруктураИспользуемых.Вставить(Поле.ПутьКДанным);
    
    Иначе
    
    ИмяИзмерения=Лев(Поле.ПутьКДанным,Найти(Поле.ПутьКДанным,".")-1);
    
    Если ИмяИзмерения="ЦФО"
    ИЛИ ИмяИзмерения="Проект"
    ИЛИ ИмяИзмерения="Контрагент"
    ИЛИ ИмяИзмерения="Номенклатура" Тогда
    
    СтруктураИспользуемых.Вставить(ИмяИзмерения);
    
    КонецЕсли;
    
    КонецЕсли;
    
    КонецЦикла;
    
    СтруктураЗапроса=Бюджетирование.СформироватьТекстЗапросаПоОборотам(СтруктураИспользуемых,Сценарий,ДатаНач,ДатаКон, СформироватьСписокСтатей());
    
    Если СтруктураЗапроса.Свойство("НетИсточников") Тогда
    
    НетИсточников=Истина;
    Сообщить("Для выбранных статей оборотов по бюджетам не указаны источники данных.");
    
    Возврат
    
    КонецЕсли;
    
    Для Каждого Элемент ИЗ СтруктураЗапроса.ПараметрыЗапроса Цикл
    
    ПостроительОтчета.Параметры.Вставить(Элемент.Ключ,Элемент.Значение);
    
    КонецЦикла;
    
    ТекстПостроителя=ТекстПостроителя+"
    |("+СтруктураЗапроса.ТекстЗапроса+") КАК ОборотыПоСтатьям
    |{ГДЕ
    |ЦФО.*,
    |Проект.*,
    |Контрагент.*,
    |Номенклатура.*,
    |Валюта
    |}
    |УПОРЯДОЧИТЬ ПО Период
    |{УПОРЯДОЧИТЬ ПО
    |ЦФО.*,
    |Проект.*,
    |Контрагент.*,
    |Номенклатура.*,
    |Валюта КАК Валюта,
    |"+Бюджетирование.СформироватьТекстЗапросаПоПериодам(Периодичность,"Период")+"
    |ВЫРАЗИТЬ(Период КАК Дата) КАК Период}
    |ИТОГИ
    |СУММА(СуммаУпр),
    |СУММА(ВалютнаяСумма),
    |СУММА(Количество)
    |ПО ОБЩИЕ
    |{ИТОГИ ПО
    |ЦФО.*,
    |Проект.*,
    |Контрагент.*,
    |Номенклатура.*,
    |Валюта КАК Валюта,
    |"+Бюджетирование.СформироватьТекстЗапросаПоПериодам(Периодичность,"Период")+"
    |ВЫРАЗИТЬ(Период КАК Дата) КАК Период}";
    
    [b]ПостроительОтчета.Текст=ТекстПостроителя;[/b]
    
    ПостроительОтчета.Параметры.Вставить("ПустойЦФО",Новый(Тип("СправочникСсылка.Подразделения")));
    ПостроительОтчета.Параметры.Вставить("ПустойПроект",Новый(Тип("СправочникСсылка.Проекты")));
    ПостроительОтчета.Параметры.Вставить("ПустойКонтрагент",Новый(Тип("СправочникСсылка.Контрагенты")));
    
    КонецПроцедуры // СформироватьТекстЗапросаПоисточникам()
    

Поделиться этой страницей