Имя: Пароль:
1C
1С v8
универсальный отчет
0 vip67
 
28.04.14
20:22
ДОбрый вечер! Помогите разобраться с шайтаном!
Есть отчет, который использует универсальный отчет. в этом отчете в процедуре УстановитьНачальныеНастройки я поменял лишь текст запроса -
было:
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    ВложенныйЗапрос.Контрагент КАК Контрагент,
    |    ВложенныйЗапрос.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |    ВложенныйЗапрос.ЗаказПокупателя КАК ЗаказПокупателя,
    |    СУММА(ВложенныйЗапрос.СуммаПродажи) КАК СуммаПродажи,
    |    СУММА(ВложенныйЗапрос.СуммаОплаты) КАК СуммаОплаты,
    |    СУММА(ВложенныйЗапрос.Себестоимость) КАК Себестоимость,
    |    СУММА(ВложенныйЗапрос.СуммаЗатрат) КАК СуммаЗатрат,
    |    СУММА(ВложенныйЗапрос.СуммаПродажи - ВложенныйЗапрос.Себестоимость) КАК Прибыль,
    |    СУММА(ВложенныйЗапрос.СуммаПродажи - ВложенныйЗапрос.Себестоимость - ЕСТЬNULL(ВложенныйЗапрос.СуммаЗатрат, 0)) КАК ЧистаяПрибыль,
    |    СУММА(ВложенныйЗапрос.СуммаОплаты / ВложенныйЗапрос.СуммаПродажи * 100) КАК ПроцентОплаты,
    |    СУММА(ВложенныйЗапрос.СуммаОплаты / ВложенныйЗапрос.СуммаПродажи * (ВложенныйЗапрос.СуммаПродажи - ВложенныйЗапрос.Себестоимость - ЕСТЬNULL(ВложенныйЗапрос.СуммаЗатрат, 0))) КАК ОплаченаяЧистаяПрибыль,
    |    ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
    |    СУММА(ЗаказПокупателяТовары.Количество) КАК Количество
    |{ВЫБРАТЬ
    |    Контрагент.*,
    |    ДоговорКонтрагента.*,
    |    ЗаказПокупателя.*,
    |    Номенклатура.*,
    |    Количество,
    |    СуммаПродажи,
    |    СуммаОплаты,
    |    Себестоимость,
    |    СуммаЗатрат,
    |    Прибыль,
    |    ЧистаяПрибыль,
    |    ПроцентОплаты,
    |    ОплаченаяЧистаяПрибыль}
    |ИЗ
    |    (ВЫБРАТЬ
    |        ПродажиОбороты.Контрагент КАК Контрагент,
    |        ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |        ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
    |        ПродажиОбороты.СтоимостьОборот КАК СуммаПродажи,
    |        Оплата.СуммаОплаты КАК СуммаОплаты,
    |        ТабСебестоимость.Себестоимость КАК Себестоимость,
    |        ЗатратыОбороты.СуммаПриход КАК СуммаЗатрат
    |    ИЗ
    |        (ВЫБРАТЬ
    |            ВложенныйЗапрос.ДокументРеализации КАК ДокументРеализации,
    |            СУММА(ВложенныйЗапрос.СуммаОплаты) КАК СуммаОплаты
    |        ИЗ
    |            (ВЫБРАТЬ
    |                ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.ДокументРасчетовСКонтрагентом КАК ДокументРеализации,
    |                СУММА(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.СуммаВзаиморасчетовРасход) КАК СуммаОплаты
    |            ИЗ
    |                РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(&ДатаНачОст, &ДатаКонОст, Регистратор, , ТИПЗНАЧЕНИЯ(ДокументРасчетовСКонтрагентом) = ТИП(Документ.РеализацияТоваровУслуг)) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты
    |            ГДЕ
    |                ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.ДокументРасчетовСКонтрагентом <> ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Регистратор
    |            
    |            СГРУППИРОВАТЬ ПО
    |                ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.ДокументРасчетовСКонтрагентом
    |            
    |            ОБЪЕДИНИТЬ ВСЕ
    |            
    |            ВЫБРАТЬ
    |                ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Регистратор,
    |                ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.СуммаВзаиморасчетовПриход
    |            ИЗ
    |                РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.ОстаткиИОбороты(&ДатаНачОст, &ДатаКонОст, Регистратор, , ) КАК ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты
    |            ГДЕ
    |                ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Регистратор <> ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.ДокументРасчетовСКонтрагентом
    |                И ТИПЗНАЧЕНИЯ(ВзаиморасчетыСКонтрагентамиПоДокументамРасчетовОстаткиИОбороты.Регистратор) = ТИП(Документ.РеализацияТоваровУслуг)) КАК ВложенныйЗапрос
    |        
    |        СГРУППИРОВАТЬ ПО
    |            ВложенныйЗапрос.ДокументРеализации) КАК Оплата
    |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(, , Регистратор, ) КАК ПродажиОбороты
    |                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |                    ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя,
    |                    ВЫБОР
    |                        КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
    |                            ТОГДА ПродажиСебестоимость.ДокументДвижения
    |                        ИНАЧЕ ПродажиСебестоимость.Регистратор
    |                    КОНЕЦ КАК Регистратор,
    |                    СУММА(ПродажиСебестоимость.Стоимость) КАК Себестоимость
    |                ИЗ
    |                    РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
    |                {ГДЕ
    |                    ПродажиСебестоимость.Проект.* КАК Проект,
    |                    ПродажиСебестоимость.Подразделение.* КАК Подразделение,
    |                    ПродажиСебестоимость.Номенклатура.* КАК Номенклатура,
    |                    ПродажиСебестоимость.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
    |                    ПродажиСебестоимость.ЗаказПокупателя.* КАК ЗаказПокупателя}
    |                
    |                СГРУППИРОВАТЬ ПО
    |                    ПродажиСебестоимость.ЗаказПокупателя,
    |                    ВЫБОР
    |                        КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
    |                            ТОГДА ПродажиСебестоимость.ДокументДвижения
    |                        ИНАЧЕ ПродажиСебестоимость.Регистратор
    |                    КОНЕЦ) КАК ТабСебестоимость
    |                ПО ПродажиОбороты.ЗаказПокупателя = ТабСебестоимость.ЗаказПокупателя
    |                    И ПродажиОбороты.Регистратор = ТабСебестоимость.Регистратор
    |                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Затраты.Обороты(, , , ) КАК ЗатратыОбороты
    |                ПО ПродажиОбороты.ЗаказПокупателя = ЗатратыОбороты.Заказ
    |            ПО Оплата.ДокументРеализации = ПродажиОбороты.ДокументПродажи
    |    {ГДЕ
    |        ПродажиОбороты.Контрагент.*,
    |        ПродажиОбороты.ДоговорКонтрагента.*,
    |        ПродажиОбороты.ЗаказПокупателя.*}) КАК ВложенныйЗапрос
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
    |        ПО ВложенныйЗапрос.ЗаказПокупателя = ЗаказПокупателяТовары.Ссылка
    |ГДЕ
    |    НЕ ВложенныйЗапрос.ЗаказПокупателя.Ссылка ЕСТЬ NULL
    |{ГДЕ
    |    ВложенныйЗапрос.Контрагент.*,
    |    ВложенныйЗапрос.ДоговорКонтрагента.*,
    |    ВложенныйЗапрос.ЗаказПокупателя.*,
    |    ВложенныйЗапрос.СуммаПродажи,
    |    ВложенныйЗапрос.СуммаОплаты,
    |    ВложенныйЗапрос.Себестоимость,
    |    ВложенныйЗапрос.СуммаЗатрат,
    |    (ВложенныйЗапрос.СуммаПродажи - ВложенныйЗапрос.Себестоимость) КАК Прибыль,
    |    (ВложенныйЗапрос.СуммаПродажи - ВложенныйЗапрос.Себестоимость - ЕСТЬNULL(ВложенныйЗапрос.СуммаЗатрат, 0)) КАК ЧистаяПрибыль,
    |    (ВложенныйЗапрос.СуммаОплаты / ВложенныйЗапрос.СуммаПродажи * 100) КАК ПроцентОплаты,
    |    (ВложенныйЗапрос.СуммаОплаты / ВложенныйЗапрос.СуммаПродажи * (ВложенныйЗапрос.СуммаПродажи - ВложенныйЗапрос.Себестоимость - ЕСТЬNULL(ВложенныйЗапрос.СуммаЗатрат, 0))) КАК ОплаченаяЧистаяПрибыль}
    |
    |СГРУППИРОВАТЬ ПО
    |    ВложенныйЗапрос.Контрагент,
    |    ВложенныйЗапрос.ДоговорКонтрагента,
    |    ВложенныйЗапрос.ЗаказПокупателя,
    |    ЗаказПокупателяТовары.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    |    Контрагент,
    |    ДоговорКонтрагента,
    |    ЗаказПокупателя,
    |    Номенклатура,
    |    ПроцентОплаты УБЫВ
    |{УПОРЯДОЧИТЬ ПО
    |    Контрагент.*,
    |    ДоговорКонтрагента.*,
    |    ЗаказПокупателя.*,
    |    СуммаПродажи,
    |    СуммаОплаты,
    |    Себестоимость,
    |    СуммаЗатрат,
    |    Прибыль,
    |    ЧистаяПрибыль,
    |    ПроцентОплаты,
    |    ОплаченаяЧистаяПрибыль}
    |ИТОГИ
    |    СУММА(СуммаПродажи),
    |    СУММА(СуммаОплаты),
    |    СУММА(Себестоимость),
    |    СУММА(СуммаЗатрат),
    |    СУММА(Прибыль),
    |    СУММА(ЧистаяПрибыль),
    |    СУММА(СуммаОплаты) / СУММА(СуммаПродажи) * 100 КАК ПроцентОплаты,
    |    СУММА(ОплаченаяЧистаяПрибыль),
    |    СУММА(Количество)
    |ПО
    |    ОБЩИЕ,
    |    Контрагент,
    |    ДоговорКонтрагента,
    |    ЗаказПокупателя,
    |    Номенклатура
    |{ИТОГИ ПО
    |    Контрагент.*,
    |    ДоговорКонтрагента.*,
    |    ЗаказПокупателя.*,
    |    Номенклатура.*,
    |    Количество,
    |    СуммаПродажи,
    |    СуммаОплаты,
    |    Себестоимость,
    |    СуммаЗатрат,
    |    Прибыль,
    |    ЧистаяПрибыль,
    |    ПроцентОплаты,
    |    ОплаченаяЧистаяПрибыль}";


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


в итоге нажатии на кнопку "Сформировать" выдает ошибку:


{Отчет.УниверсальныйОтчет.МодульОбъекта(2764)}: Ошибка при вызове метода контекста (Добавить)
            МассивВыбранныеПоляПоказатели.Добавить(ПостроительОтчета.ВыбранныеПоля.Добавить(ТекущийПоказатель.Имя));
по причине:
Поле не найдено. "Количество"

восстанавливаю старый запрос - все работает, с новым - не хочет!
1 neo_matrix_123
 
28.04.14
20:29
в универсальном отчете есть под учетной записью, которой запускаете ваш - настройки сохраненные. особенно те, что по умолчанию открываются?
открою большой секрет. типовой с такой-же багой вылетает, если перед этим его сформировали по регистру, где было измерение, затем выбрали другую настройку, где такого измерения нет.
2 vip67
 
28.04.14
20:44
т.е. нужно убрать первоначальные настройки?
3 vip67
 
28.04.14
20:45
убрал настройку  - не помогло...
4 Hans
 
28.04.14
20:52
(3) Проверь все вкладки в консоли запросов по построителю. Попробуй добавить количество туда, где его нет.
5 Hans
 
28.04.14
20:53
в фигурных скобках количества не хватает, то что в фигурных скобках - это настройки построителя.
6 vip67
 
28.04.14
20:54
(4),(5) смотрел вкладки по построителю - одинаоквые, но действительно - в тексте итоги отличаются - счас порою
7 vip67
 
28.04.14
21:00
(4) да,это помогло - появились другие ошибки, но путь найден - СПАСИБО!!!
8 ASpire
 
28.04.14
21:07
(7) Ты случайно не воятель типовых? А то мне кажется именно с такими словами новые релизы выходят
9 vip67
 
29.04.14
09:56
нет, я не воятель типовых
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший