Есть отчет на СКД (УТ 11.0, управляемые формы). Запрос привожу ниже, это отгрузки за период и последняя по времени цена с заданным видом (цена закупки).
Так вот в консоли запросов все отлично работает. А в СКД поле "Цена закупки" иногда не заполняется. Это "иногда", как я понял, состоит в том, что в одном месяце, который полностью попадает в отчет, цена закупки поменялась и при этом есть две отгрузки, одна со старой ценой, другая с новой. Тогда в той отгрузке, где старая цена, она в СКД пропадает, поле остается пустым.
Поле с ценой делал измерением, ресурсом, просто полем без роли, один хрен, ничего не меняется.
Я так подозреваю, что СКД что-то где-то оптимизирует, чтобы мне было проще и удобнее. Но найти не могу. Кто знает, что где исправить?

```1c
    ВЫБРАТЬ
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)) КАК Сделка,
    АналитикаНоменклатуры.Номенклатура КАК Номенклатура,
    АналитикаНоменклатуры.Характеристика КАК Характеристика,
    АналитикаПоПартнерам.Организация КАК Организация,
    АналитикаПоПартнерам.Партнер КАК Партнер,
    Продажи.ВидЗапасов КАК ВидЗапасов,
    Продажи.ВидЗапасов.Поставщик КАК Поставщик,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО) КАК Менеджер,
    ВЫБОР
    КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
    ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
    ТОГДА Продажи.ЗаказКлиента
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ КАК ЗаказКлиента,
    Продажи.Подразделение КАК Подразделение,
    АналитикаНоменклатуры.Склад КАК Склад,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ КАК Контрагент,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ КАК Покупатель,
    СУММА(Продажи.КоличествоОборот) КАК Количество,
    СУММА(Продажи.СуммаВыручкиОборот) КАК Выручка,
    Продажи.ПериодДень КАК День,
    Продажи.ПериодНеделя КАК Неделя,
    Продажи.ПериодДекада КАК Декада,
    Продажи.ПериодМесяц КАК Месяц,
    Продажи.ПериодКвартал КАК Квартал,
    Продажи.ПериодПолугодие КАК Полугодие,
    Продажи.ПериодГод КАК Год,
    МАКСИМУМ(ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    ТОГДА Продажи.Регистратор.ФормаОплаты
    ИНАЧЕ ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтКлиента
    ТОГДА Продажи.Регистратор.ДокументРеализации.ФормаОплаты
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ
    КОНЕЦ) КАК ФормаОплаты,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сборщик, НЕОПРЕДЕЛЕНО) КАК МенеджерСборщик,
    АналитикаНоменклатуры.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    МАКСИМУМ(ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    ТОГДА Продажи.Регистратор.СтатусОплаты
    ИНАЧЕ ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтКлиента
    ТОГДА Продажи.Регистратор.ДокументРеализации.СтатусОплаты
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ
    КОНЕЦ) КАК СтатусОплаты,
    Продажи.Регистратор КАК Регистратор
    ПОМЕСТИТЬ Таблица
    {ВЫБРАТЬ
    День,
    Неделя,
    Декада,
    Месяц,
    Квартал,
    Полугодие,
    Год}
    ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНач {(&НачалоПериода)}, &ДатаКон {(&ОкончаниеПериода)}, Авто, ) КАК Продажи
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
    ПО Продажи.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики}
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
    ПО Продажи.АналитикаУчетаПоПартнерам = АналитикаПоПартнерам.КлючАналитики}
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры
    ПО Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры
    И (АналитикаПоПартнерам.Организация = СтоимостьНоменклатуры.Организация)
    И Продажи.ВидЗапасов = СтоимостьНоменклатуры.ВидЗапасов
    И (СтоимостьНоменклатуры.Период = НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ))}
    ГДЕ
    (&ПоказыватьПродажи = 1
    И АналитикаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ИЛИ &ПоказыватьПродажи = 2
    И АналитикаПоПартнерам.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ИЛИ &ПоказыватьПродажи = 0)
    {ГДЕ
    АналитикаНоменклатуры.Номенклатура.* КАК Номенклатура,
    АналитикаНоменклатуры.Характеристика.* КАК Характеристика,
    АналитикаПоПартнерам.Организация.* КАК Организация,
    АналитикаПоПартнерам.Партнер.* КАК Партнер,
    АналитикаНоменклатуры.Склад.* КАК Склад,
    АналитикаПоПартнерам.Контрагент.* КАК Контрагент,
    (ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка))).* КАК Сделка}

    СГРУППИРОВАТЬ ПО
    ВЫБОР
    КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
    ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
    ТОГДА Продажи.ЗаказКлиента
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ,
    Продажи.Подразделение,
    АналитикаНоменклатуры.Склад,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ,
    Продажи.ПериодДень,
    Продажи.ПериодНеделя,
    Продажи.ПериодДекада,
    Продажи.ПериодМесяц,
    Продажи.ПериодКвартал,
    Продажи.ПериодПолугодие,
    Продажи.ПериодГод,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)),
    АналитикаНоменклатуры.Номенклатура,
    АналитикаНоменклатуры.Характеристика,
    АналитикаПоПартнерам.Партнер,
    Продажи.ВидЗапасов,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО),
    АналитикаПоПартнерам.Организация,
    Продажи.ВидЗапасов.Поставщик,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сборщик, НЕОПРЕДЕЛЕНО),
    АналитикаНоменклатуры.Номенклатура.НаименованиеПолное,
    Продажи.Регистратор
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ПОМЕСТИТЬ НоменклатурыДаты
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ;

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

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    НоменклатурыДаты.Номенклатура,
    НоменклатурыДаты.Характеристика,
    НоменклатурыДаты.День,
    МАКСИМУМ(МаксимальныеДатыЦены.Период) КАК Период
    ПОМЕСТИТЬ ДатыЦен
    ИЗ
    НоменклатурыДаты КАК НоменклатурыДаты
    ЛЕВОЕ СОЕДИНЕНИЕ МаксимальныеДатыЦены КАК МаксимальныеДатыЦены
    ПО НоменклатурыДаты.Номенклатура = МаксимальныеДатыЦены.Номенклатура
    И НоменклатурыДаты.Характеристика = МаксимальныеДатыЦены.Характеристика
    И НоменклатурыДаты.День >= МаксимальныеДатыЦены.Период

    СГРУППИРОВАТЬ ПО
    НоменклатурыДаты.Номенклатура,
    НоменклатурыДаты.Характеристика,
    НоменклатурыДаты.День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ДатыЦен.Номенклатура КАК Номенклатура,
    ДатыЦен.Характеристика КАК Характеристика,
    ДатыЦен.День,
    МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
    ПОМЕСТИТЬ ЦеныПоДатам
    ИЗ
    ДатыЦен КАК ДатыЦен
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ДатыЦен.Характеристика = ЦеныНоменклатуры.Характеристика
    И ДатыЦен.Период = ЦеныНоменклатуры.Период
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)

    СГРУППИРОВАТЬ ПО
    ДатыЦен.Номенклатура,
    ДатыЦен.Характеристика,
    ДатыЦен.День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(Таблица.Количество) КАК Количество,
    СУММА(Таблица.Выручка) КАК Выручка,
    ВЫБОР
    КОГДА Таблица.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ПродажиМеждуОрганизациями,
    Таблица.Номенклатура КАК Номенклатура,
    Таблица.Характеристика КАК Характеристика,
    Таблица.Организация КАК Организация,
    Таблица.Партнер КАК Партнер,
    Таблица.ЗаказКлиента КАК ЗаказКлиента,
    Таблица.Подразделение КАК Подразделение,
    Таблица.Склад КАК Склад,
    Таблица.Контрагент КАК Контрагент,
    Таблица.Покупатель КАК Покупатель,
    Таблица.Поставщик КАК Поставщик,
    Таблица.Менеджер КАК Менеджер,
    Таблица.Сделка КАК Сделка,
    Таблица.Сделка.Ответственный КАК МенеджерСделки,
    Таблица.ВидЗапасов КАК ВидЗапасов,
    Таблица.День,
    Таблица.Неделя,
    Таблица.Декада,
    Таблица.Месяц,
    Таблица.Квартал,
    Таблица.Полугодие,
    Таблица.Год,
    ВЫБОР
    КОГДА Таблица.СтатусОплаты = ЗНАЧЕНИЕ(Перечисление.СтатусОплатыРеализации.Сертификат)
    ТОГДА "Сертификат"
    ИНАЧЕ Таблица.ФормаОплаты
    КОНЕЦ КАК ФормаОплаты,
    Таблица.МенеджерСборщик,
    Таблица.НаименованиеПолное,
    Таблица.Регистратор,
    МАКСИМУМ(ЦеныПоДатам.Цена) КАК ЦенаЗакупки
    ИЗ
    Таблица КАК Таблица
    ЛЕВОЕ СОЕДИНЕНИЕ ЦеныПоДатам КАК ЦеныПоДатам
    ПО Таблица.Номенклатура = ЦеныПоДатам.Номенклатура
    И Таблица.Характеристика = ЦеныПоДатам.Характеристика
    И Таблица.День = ЦеныПоДатам.День

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

    ИМЕЮЩИЕ
    (СУММА(Таблица.Количество) <> 0
    ИЛИ СУММА(Таблица.Выручка) <> 0)

    УПОРЯДОЧИТЬ ПО
    Номенклатура,
    Характеристика
```
---
Что то типа этого, СКД вроде как вложенные запросы не правит

```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ПОМЕСТИТЬ НоменклатурыДаты
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ;

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

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День) КАК ВложенныйЗапрос
    ПО НоменклатурыДаты.Номенклатура = ВложенныйЗапрос.Номенклатура
    И НоменклатурыДаты.Характеристика = ВложенныйЗапрос.Характеристика
    И НоменклатурыДаты.День = ВложенныйЗапрос.Период) КАК ВложенныйЗапрос
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ВложенныйЗапрос.Характеристика = ЦеныНоменклатуры.Характеристика
    И ВложенныйЗапрос.Период = ЦеныНоменклатуры.Период
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Характеристика,
    ВложенныйЗапрос.День
```

И еще ваш запрос на цену можно сократить

```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ПОМЕСТИТЬ НоменклатурыДаты
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена,
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Характеристика,
    ВложенныйЗапрос.День
    ПОМЕСТИТЬ ЦеныПоДатам
    ИЗ
    (ВЫБРАТЬ
    НоменклатурыДаты.Номенклатура КАК Номенклатура,
    НоменклатурыДаты.Характеристика КАК Характеристика,
    НоменклатурыДаты.День КАК День,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период
    ИЗ
    НоменклатурыДаты КАК НоменклатурыДаты
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО НоменклатурыДаты.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И НоменклатурыДаты.Характеристика = ЦеныНоменклатуры.Характеристика
    И НоменклатурыДаты.День >= ЦеныНоменклатуры.Период
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)

    СГРУППИРОВАТЬ ПО
    НоменклатурыДаты.Номенклатура,
    НоменклатурыДаты.Характеристика,
    НоменклатурыДаты.День) КАК ВложенныйЗапрос
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ВложенныйЗапрос.Характеристика = ЦеныНоменклатуры.Характеристика
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)
    И ВложенныйЗапрос.Период = ЦеныНоменклатуры.Период

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Характеристика,
    ВложенныйЗапрос.День
```

Вполне достаточно для получения последней цены
---
starjevschik,чтобы посмотреть как СКД преобразует текст запроса рекомендую это http://infostart.ru/public/97962/. А в качестве легкого варианта попробовать на вкладке "НаборыДанных" в "Ролях" отметить все поля как обязательные
---
konstruktiv, не надо ничего группировать, а надо в ресурс цену поместить и выбрать "Максимум(цена)". Ну и количество с выручкой туда же. Потом в отбор количество и выручку.
---
starik-2005, это я уже пробовал, не помогает.

(29) Xershi, уроки Гилева я время от времени смотрю, когда понимаю, куда смотреть. Просмотреть все 100+ уроков сейчас не в состоянии. Никто не оплатит мне это :)

(30) insurgut, да это я так. Что делать-то, так и не понятно.
---
starjevschik, пользуйся оглавлением.
---
starjevschik, для тестирования результата в СКД нельзя полагаться на консоль запросов. Я на нее полагаюсь, потому что:
```1c
    {ВЫБРАТЬ
    День,
    Неделя,
    Декада,
    Месяц,
    Квартал,
    Полугодие,
    Год}
```

Не пишу в запросе код, который в СКД не работает. Т.е. у вас косяк в этом куске, скобки никогда не применяйте. А для тестирование используйте консоль отчетов именно она предназначена для тестирования СКД.
---
в пакете ДатыЦен - не накладываете условие по виду цены, а выше и ниже - отбор есть. хотя это не причина разных результатов в консоли и скд
---
sommid, запрос правильно работает

(4) Sangre1999, запрос правильно работает :)))) никакой срез первыхпоследних не поможет сделать такую выборку, можем поспорить на пару маней, если интересно. Но вопрос не в этом.

(2) konstruktiv, спасибо, изучаю...
---
starjevschik, попробуй в консоли отборы по периодам, там тоже не должно сработать. Возможно даты надо приводить к Началу месяца, концу месяца. Проблема интересная, видимо только если удаленно подключатся можно разобраться
---
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры, тут ты берешь основную таблицу регистра, и когда даты не совпадают в твоей таблице и регистре цент выводится пусто, могу посоветовать:
1. В консоли ситуацию смоделировать можно, при помощи установки параметров.
2. Работать нужно не с прямой таблицей регистра сведений, а с таблицей срез первых или послдених, там в нее загонишь в качестве параметра нужную дату из таблицы ДатыЦен, и что-то должно показать.
---
Да у вас этих скобок пруд пруди в запросе! СКД не полностью может использовать все функции запроса это нужно понять и простить))
---
Xershi, ну скобки это осталось от начального варианта. Это когда-то был какой-то штатный отчет, не помню даже какой.
Щас попробую скобки убрать, спасибо за идею.
---
starjevschik, раз пишите запрос, то и проверяйте на корректность. А то писал не я, а тут бац и не работает. Уберешь будет результат одинаковый.
---
Xershi, скобки убрал - не помогло
Качаю обработку из (2) konstruktiv, посмотрим, может это поможет.

(10) Sangre1999, в консоли запросов все работает четко, с любыми отборами, с любыми периодами.

ЗЫЫ скачал - она под неуправляемые формы
обоземой.
---
starjevschik, и где ваш исправленный запрос?
---
Xershi, да запрос-то что, скобки убрал, запрос правильный.
Обработка не работает:
{Форма.ФормаОтладкаСКД.Форма(67)}: Ошибка при вызове метода контекста (ПрочитатьXML)
   СхемаКД = СериализаторXDTO.ПрочитатьXML(Читалка, Тип("СхемаКомпоновкиДанных"));
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/settings}Settings Форма: Элемент Тип: {http://v8.1c.ru/8.1/data-composition-system/schema}DataCompositionSchema
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.1/data-composition-system/settings}selection Форма: Элемент Тип: {http://www.w3.org/2001/XMLSchema}anyType

Запрос

```1c
    ВЫБРАТЬ
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)) КАК Сделка,
    АналитикаНоменклатуры.Номенклатура КАК Номенклатура,
    АналитикаНоменклатуры.Характеристика КАК Характеристика,
    АналитикаПоПартнерам.Организация КАК Организация,
    АналитикаПоПартнерам.Партнер КАК Партнер,
    Продажи.ВидЗапасов КАК ВидЗапасов,
    Продажи.ВидЗапасов.Поставщик КАК Поставщик,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО) КАК Менеджер,
    ВЫБОР
    КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
    ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
    ТОГДА Продажи.ЗаказКлиента
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ КАК ЗаказКлиента,
    Продажи.Подразделение КАК Подразделение,
    АналитикаНоменклатуры.Склад КАК Склад,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ КАК Контрагент,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ КАК Покупатель,
    СУММА(Продажи.КоличествоОборот) КАК Количество,
    СУММА(Продажи.СуммаВыручкиОборот) КАК Выручка,
    Продажи.ПериодДень КАК День,
    Продажи.ПериодНеделя КАК Неделя,
    Продажи.ПериодДекада КАК Декада,
    Продажи.ПериодМесяц КАК Месяц,
    Продажи.ПериодКвартал КАК Квартал,
    Продажи.ПериодПолугодие КАК Полугодие,
    Продажи.ПериодГод КАК Год,
    МАКСИМУМ(ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    ТОГДА Продажи.Регистратор.ФормаОплаты
    ИНАЧЕ ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтКлиента
    ТОГДА Продажи.Регистратор.ДокументРеализации.ФормаОплаты
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ
    КОНЕЦ) КАК ФормаОплаты,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сборщик, НЕОПРЕДЕЛЕНО) КАК МенеджерСборщик,
    АналитикаНоменклатуры.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    МАКСИМУМ(ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    ТОГДА Продажи.Регистратор.СтатусОплаты
    ИНАЧЕ ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтКлиента
    ТОГДА Продажи.Регистратор.ДокументРеализации.СтатусОплаты
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ
    КОНЕЦ) КАК СтатусОплаты,
    Продажи.Регистратор КАК Регистратор
    ПОМЕСТИТЬ Таблица
    ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНач, &ДатаКон, Авто, ) КАК Продажи
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
    ПО Продажи.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
    ПО Продажи.АналитикаУчетаПоПартнерам = АналитикаПоПартнерам.КлючАналитики
    ГДЕ
    (&ПоказыватьПродажи = 1
    И АналитикаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ИЛИ &ПоказыватьПродажи = 2
    И АналитикаПоПартнерам.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ИЛИ &ПоказыватьПродажи = 0)

    СГРУППИРОВАТЬ ПО
    ВЫБОР
    КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
    ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
    ТОГДА Продажи.ЗаказКлиента
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ,
    Продажи.Подразделение,
    АналитикаНоменклатуры.Склад,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ,
    Продажи.ПериодДень,
    Продажи.ПериодНеделя,
    Продажи.ПериодДекада,
    Продажи.ПериодМесяц,
    Продажи.ПериодКвартал,
    Продажи.ПериодПолугодие,
    Продажи.ПериодГод,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)),
    АналитикаНоменклатуры.Номенклатура,
    АналитикаНоменклатуры.Характеристика,
    АналитикаПоПартнерам.Партнер,
    Продажи.ВидЗапасов,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО),
    АналитикаПоПартнерам.Организация,
    Продажи.ВидЗапасов.Поставщик,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сборщик, НЕОПРЕДЕЛЕНО),
    АналитикаНоменклатуры.Номенклатура.НаименованиеПолное,
    Продажи.Регистратор
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ПОМЕСТИТЬ НоменклатурыДаты
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ;

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

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    НоменклатурыДаты.Номенклатура,
    НоменклатурыДаты.Характеристика,
    НоменклатурыДаты.День,
    МАКСИМУМ(МаксимальныеДатыЦены.Период) КАК Период
    ПОМЕСТИТЬ ДатыЦен
    ИЗ
    НоменклатурыДаты КАК НоменклатурыДаты
    ЛЕВОЕ СОЕДИНЕНИЕ МаксимальныеДатыЦены КАК МаксимальныеДатыЦены
    ПО НоменклатурыДаты.Номенклатура = МаксимальныеДатыЦены.Номенклатура
    И НоменклатурыДаты.Характеристика = МаксимальныеДатыЦены.Характеристика
    И НоменклатурыДаты.День >= МаксимальныеДатыЦены.Период

    СГРУППИРОВАТЬ ПО
    НоменклатурыДаты.Номенклатура,
    НоменклатурыДаты.Характеристика,
    НоменклатурыДаты.День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ДатыЦен.Номенклатура КАК Номенклатура,
    ДатыЦен.Характеристика КАК Характеристика,
    ДатыЦен.День,
    МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
    ПОМЕСТИТЬ ЦеныПоДатам
    ИЗ
    ДатыЦен КАК ДатыЦен
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ДатыЦен.Характеристика = ЦеныНоменклатуры.Характеристика
    И ДатыЦен.Период = ЦеныНоменклатуры.Период
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)

    СГРУППИРОВАТЬ ПО
    ДатыЦен.Номенклатура,
    ДатыЦен.Характеристика,
    ДатыЦен.День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(Таблица.Количество) КАК Количество,
    СУММА(Таблица.Выручка) КАК Выручка,
    ВЫБОР
    КОГДА Таблица.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ПродажиМеждуОрганизациями,
    Таблица.Номенклатура КАК Номенклатура,
    Таблица.Характеристика КАК Характеристика,
    Таблица.Организация КАК Организация,
    Таблица.Партнер КАК Партнер,
    Таблица.ЗаказКлиента КАК ЗаказКлиента,
    Таблица.Подразделение КАК Подразделение,
    Таблица.Склад КАК Склад,
    Таблица.Контрагент КАК Контрагент,
    Таблица.Покупатель КАК Покупатель,
    Таблица.Поставщик КАК Поставщик,
    Таблица.Менеджер КАК Менеджер,
    Таблица.Сделка КАК Сделка,
    Таблица.Сделка.Ответственный КАК МенеджерСделки,
    Таблица.ВидЗапасов КАК ВидЗапасов,
    Таблица.День,
    Таблица.Неделя,
    Таблица.Декада,
    Таблица.Месяц,
    Таблица.Квартал,
    Таблица.Полугодие,
    Таблица.Год,
    ВЫБОР
    КОГДА Таблица.СтатусОплаты = ЗНАЧЕНИЕ(Перечисление.СтатусОплатыРеализации.Сертификат)
    ТОГДА "Сертификат"
    ИНАЧЕ Таблица.ФормаОплаты
    КОНЕЦ КАК ФормаОплаты,
    Таблица.МенеджерСборщик,
    Таблица.НаименованиеПолное,
    Таблица.Регистратор,
    МАКСИМУМ(ЦеныПоДатам.Цена) КАК ЦенаЗакупки
    ИЗ
    Таблица КАК Таблица
    ЛЕВОЕ СОЕДИНЕНИЕ ЦеныПоДатам КАК ЦеныПоДатам
    ПО Таблица.Номенклатура = ЦеныПоДатам.Номенклатура
    И Таблица.Характеристика = ЦеныПоДатам.Характеристика
    И Таблица.День = ЦеныПоДатам.День

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

    ИМЕЮЩИЕ
    (СУММА(Таблица.Количество) <> 0
    ИЛИ СУММА(Таблица.Выручка) <> 0)

    УПОРЯДОЧИТЬ ПО
    Номенклатура,
    Характеристика
```

ищу "консоль отчетов", хоть узнаю, что это такое :)
---
starjevschik,
```1c
    ИМЕЮЩИЕ
```
 СКД это тоже не умеет считать! Так что тут тоже нужно попотеть!
---
starjevschik, у вас что самописная конфигурация? Обычно уже встроены в обработки.
---
starjevschik, в чем сложность УТ 11 для тестирования запустить как обычное приложение?
---
insurgut, запустил, не помогло :)

(15) Xershi, не верю, чесслово. Она же такая умная. Неужели правда?

(16) Xershi, когда-то она была УТ 11.0.6.что-то, а сейчас она уже больше самописная. Что встроено? где? Скачал какую-то консоль, но не понял, как туда перенести готовый отчет. Все заново писать, что ли.
---
starjevschik, Макет из конфигурации сохраняешь - а там создаешь новый отчет и загружаешь макет из конфы.
---
Perrojka, спасибо, получилось.

Итак на сейчас ситуация такая. Есть две продажи одного товара. Одна 02.12, цена закупки одна. Вторая продажа 24.12, цена закупки другая.
В консоли запросов обе цены закупки есть.
В отчете на СКД есть только цена закупки ко второй продаже, к первой 0.
В консоли отчетов нет обеих цен закупки. Смешно, но факт.
---
starjevschik, я консолью отчетов не пользуюсь, но знаю точно, что если там нет, значит в СКД тоже не будет.
Так что правь запрос.
---
Xershi, я тоже не пользуюсь. ИМЕЮЩИЕ там есть.
НО! поставив туда все параметры, я таки получил тот же результат, что и отчете. И перенес запрос в консоль запросов - и вуаля! там тот же результат! офигенное достижение. Щас разберемся.
---
starjevschik, ну не верь. СКД часть операций выполняет не в самом запросе, пора бы это уже понять. Те же группировки и суммирования в ресурсы вынесены! А имеющие рудемент запроса.
---
starjevschik, это я говорил к тому что было написано ЗЫЫ скачал - она под неуправляемые формы
обоземой.... Понятное дело СКД по другому работать там не станет, но старые добрые инструменты работают на ура :)
---
БИНГО :))))

я пишу запрос

```1c
    ВЫБРАТЬ
    Таблица.Номенклатура КАК Номенклатура,
    Таблица.Характеристика КАК Характеристика,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период,
    Таблица.День
    ПОМЕСТИТЬ МаксимальныеДатыЦены
    ИЗ
    Таблица КАК Таблица
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО Таблица.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И Таблица.Характеристика = ЦеныНоменклатуры.Характеристика
    И (ЦеныНоменклатуры.Период <= Таблица.День)
    ГДЕ
    ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика, Таблица.День
```

а из СКД он вылезает в виде

```1c
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    Таблица.Номенклатура КАК Номенклатура,
    Таблица.Характеристика КАК Характеристика,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период
    ПОМЕСТИТЬ МаксимальныеДатыЦены
    ИЗ
    Таблица КАК Таблица
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО Таблица.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И Таблица.Характеристика = ЦеныНоменклатуры.Характеристика
    И (ЦеныНоменклатуры.Период <= Таблица.День)
    ГДЕ
    ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика
```

какого черта, спрашивается??
---
starjevschik, Видимо, т.к. в настройках не используется данное поле. Поле можно указать как обязательное в наборе данных СКД
---
dabu-dabu, это один из промежуточных запросов...
---
starjevschik, Но в результирующем запросе у тебя используется данное поле. Сделай его обязательным (роль поля в наборе данных).
---
dabu-dabu, поле День? Сделал, не помогло.
Но там же это поле из другой таблицы.
Я вообще-то подозреваю, что она думает, что это тоже период. Там есть и Период и День. Они оба стандартные названия периодов. Она думает, что одно лишнее. Есть вроде какие-то пути ей сказать, что типа этот Период - не какой-то там ее стандартный, а мой личный?
Я попробовал переименовать день, но не помогло опять же.
Какая-то клиника.
---
starjevschik, посмотри уроки Гилева по СКД.
(22) starjevschik, имеющие работаю в СКД?
---
starjevschik,
Может быть кэш?
Отчет на чем отлаживается? Через внешний отчет (файл *.erf)? Или все-таки через консоль СКД (КонсольСистемыКомпоновкиДанных)?
Если отлаживать через внешний отчет, то я сталкивался на УТ с тем, что 1С запоминает в хранилище значений предыдущие настройки и упрямо их подсовывает.
А вот если отладку вести через консоль СКД, то там все аккуратно, без побочных эффектов
---
tarassov, действительно есть такая проблема, но я по-разному пробовал через все что только есть. В самом деле иногда она исправлений вообще замечает, но здесь не тот случай, я проверял, что она видит именно новый вариант.

(34) RomanBor, да вот я тоже так думаю, но я переименовал, даже больше того, добавил специально еще одно поле только для этого запроса. Но не помогает.

(35) vadim1011985, это промежуточный запрос, для него нет ролей...
---
starjevschik,
попробуй не только переименовать День во что-либо еще но и обернуть его в конструкция ВЫРАЗИТЬ КАК
---
starjevschik, может дело в релизе платформе может релиз кривой просто или реально кеш глючит
---
starjevschik,
Мне кажется 1с не нравится само название поля "День" попробуй поменять его на например "пДень", может парсер запроса не корректно отрабатывает :(
может он вообще режет такие поля как "День" "Месяц" и ....
---
RomanBor,
примерно так?

```1c
    ВЫБРАТЬ
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)) КАК Сделка,
    АналитикаНоменклатуры.Номенклатура КАК Номенклатура,
    АналитикаНоменклатуры.Характеристика КАК Характеристика,
    АналитикаПоПартнерам.Организация КАК Организация,
    АналитикаПоПартнерам.Партнер КАК Партнер,
    Продажи.ВидЗапасов КАК ВидЗапасов,
    Продажи.ВидЗапасов.Поставщик КАК Поставщик,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО) КАК Менеджер,
    ВЫБОР
    КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
    ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
    ТОГДА Продажи.ЗаказКлиента
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ КАК ЗаказКлиента,
    Продажи.Подразделение КАК Подразделение,
    АналитикаНоменклатуры.Склад КАК Склад,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ КАК Контрагент,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ КАК Покупатель,
    СУММА(Продажи.КоличествоОборот) КАК Количество,
    СУММА(Продажи.СуммаВыручкиОборот) КАК Выручка,
    Продажи.ПериодДень КАК _День,
    Продажи.ПериодНеделя КАК _Неделя,
    Продажи.ПериодДекада КАК _Декада,
    Продажи.ПериодМесяц КАК _Месяц,
    Продажи.ПериодКвартал КАК _Квартал,
    Продажи.ПериодПолугодие КАК _Полугодие,
    Продажи.ПериодГод КАК _Год,
    МАКСИМУМ(ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
    ТОГДА Продажи.Регистратор.ФормаОплаты
    ИНАЧЕ ВЫБОР
    КОГДА Продажи.Регистратор ССЫЛКА Документ.ВозвратТоваровОтКлиента
    ТОГДА Продажи.Регистратор.ДокументРеализации.ФормаОплаты
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ
    КОНЕЦ) КАК ФормаОплаты,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО) КАК МенеджерСборщик,
    АналитикаНоменклатуры.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
    НЕОПРЕДЕЛЕНО КАК СтатусОплаты,
    Продажи.Регистратор КАК Регистратор
    ПОМЕСТИТЬ Таблица
    {ВЫБРАТЬ
    _День,
    _Неделя,
    _Декада,
    _Месяц,
    _Квартал,
    _Полугодие,
    _Год}
    ИЗ
    РегистрНакопления.ВыручкаИСебестоимостьПродаж.Обороты(&ДатаНач {(&НачалоПериода)}, &ДатаКон {(&ОкончаниеПериода)}, Авто, ) КАК Продажи
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
    ПО Продажи.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики}
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК АналитикаПоПартнерам
    ПО Продажи.АналитикаУчетаПоПартнерам = АналитикаПоПартнерам.КлючАналитики}
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтоимостьТоваров КАК СтоимостьНоменклатуры
    ПО Продажи.АналитикаУчетаНоменклатуры = СтоимостьНоменклатуры.АналитикаУчетаНоменклатуры
    И (АналитикаПоПартнерам.Организация = СтоимостьНоменклатуры.Организация)
    И Продажи.ВидЗапасов = СтоимостьНоменклатуры.ВидЗапасов
    И (СтоимостьНоменклатуры.Период = НАЧАЛОПЕРИОДА(Продажи.ПериодМесяц, МЕСЯЦ))}
    ГДЕ
    (&ПоказыватьПродажи = 1
    И АналитикаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ИЛИ &ПоказыватьПродажи = 2
    И АналитикаПоПартнерам.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ИЛИ &ПоказыватьПродажи = 0)
    {ГДЕ
    АналитикаНоменклатуры.Номенклатура.* КАК Номенклатура,
    АналитикаНоменклатуры.Характеристика.* КАК Характеристика,
    АналитикаПоПартнерам.Организация.* КАК Организация,
    АналитикаПоПартнерам.Партнер.* КАК Партнер,
    АналитикаНоменклатуры.Склад.* КАК Склад,
    АналитикаПоПартнерам.Контрагент.* КАК Контрагент,
    (ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка))).* КАК Сделка}

    СГРУППИРОВАТЬ ПО
    ВЫБОР
    КОГДА Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
    ИЛИ Продажи.ЗаказКлиента ССЫЛКА Документ.ЗаявкаНаВозвратТоваровОтКлиента
    ТОГДА Продажи.ЗаказКлиента
    ИНАЧЕ НЕОПРЕДЕЛЕНО
    КОНЕЦ,
    Продажи.Подразделение,
    АналитикаНоменклатуры.Склад,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Контрагенты
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ,
    ВЫБОР
    КОГДА АналитикаПоПартнерам.Контрагент ССЫЛКА Справочник.Организации
    ТОГДА АналитикаПоПартнерам.Контрагент
    ИНАЧЕ NULL
    КОНЕЦ,
    Продажи.ПериодДень,
    Продажи.ПериодНеделя,
    Продажи.ПериодДекада,
    Продажи.ПериодМесяц,
    Продажи.ПериодКвартал,
    Продажи.ПериодПолугодие,
    Продажи.ПериодГод,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Сделка, ЗНАЧЕНИЕ(Справочник.СделкиСКлиентами.ПустаяСсылка)),
    АналитикаНоменклатуры.Номенклатура,
    АналитикаНоменклатуры.Характеристика,
    АналитикаПоПартнерам.Партнер,
    Продажи.ВидЗапасов,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО),
    АналитикаПоПартнерам.Организация,
    Продажи.ВидЗапасов.Поставщик,
    АналитикаНоменклатуры.Номенклатура.НаименованиеПолное,
    Продажи.Регистратор,
    ЕСТЬNULL(Продажи.ЗаказКлиента.Менеджер, НЕОПРЕДЕЛЕНО)
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица._День
    ПОМЕСТИТЬ НоменклатурыДаты
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица._День
    ;

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

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица._День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    НоменклатурыДаты.Номенклатура,
    НоменклатурыДаты.Характеристика,
    НоменклатурыДаты._День,
    МАКСИМУМ(МаксимальныеДатыЦены.Период) КАК Период
    ПОМЕСТИТЬ ДатыЦен
    ИЗ
    НоменклатурыДаты КАК НоменклатурыДаты
    ЛЕВОЕ СОЕДИНЕНИЕ МаксимальныеДатыЦены КАК МаксимальныеДатыЦены
    ПО НоменклатурыДаты.Номенклатура = МаксимальныеДатыЦены.Номенклатура
    И НоменклатурыДаты.Характеристика = МаксимальныеДатыЦены.Характеристика
    И НоменклатурыДаты._День >= МаксимальныеДатыЦены.Период

    СГРУППИРОВАТЬ ПО
    НоменклатурыДаты.Номенклатура,
    НоменклатурыДаты.Характеристика,
    НоменклатурыДаты._День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ДатыЦен.Номенклатура КАК Номенклатура,
    ДатыЦен.Характеристика КАК Характеристика,
    ДатыЦен._День,
    МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
    ПОМЕСТИТЬ ЦеныПоДатам
    ИЗ
    ДатыЦен КАК ДатыЦен
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ДатыЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ДатыЦен.Характеристика = ЦеныНоменклатуры.Характеристика
    И ДатыЦен.Период = ЦеныНоменклатуры.Период
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)

    СГРУППИРОВАТЬ ПО
    ДатыЦен.Номенклатура,
    ДатыЦен.Характеристика,
    ДатыЦен._День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(Таблица.Количество) КАК Количество,
    СУММА(Таблица.Выручка) КАК Выручка,
    ВЫБОР
    КОГДА Таблица.Партнер = ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ПродажиМеждуОрганизациями,
    Таблица.Номенклатура КАК Номенклатура,
    Таблица.Характеристика КАК Характеристика,
    Таблица.Организация КАК Организация,
    Таблица.Партнер КАК Партнер,
    Таблица.ЗаказКлиента КАК ЗаказКлиента,
    Таблица.Подразделение КАК Подразделение,
    Таблица.Склад КАК Склад,
    Таблица.Контрагент КАК Контрагент,
    Таблица.Покупатель КАК Покупатель,
    Таблица.Поставщик КАК Поставщик,
    Таблица.Менеджер КАК Менеджер,
    Таблица.Сделка КАК Сделка,
    Таблица.Сделка.Ответственный КАК МенеджерСделки,
    Таблица.ВидЗапасов КАК ВидЗапасов,
    Таблица._День,
    Таблица._Неделя,
    Таблица._Декада,
    Таблица._Месяц,
    Таблица._Квартал,
    Таблица._Полугодие,
    Таблица._Год,
    Таблица.ФормаОплаты КАК ФормаОплаты,
    Таблица.МенеджерСборщик,
    Таблица.НаименованиеПолное,
    Таблица.Регистратор,
    МАКСИМУМ(ЦеныПоДатам.Цена) КАК ЦенаЗакупки
    ИЗ
    Таблица КАК Таблица
    ЛЕВОЕ СОЕДИНЕНИЕ ЦеныПоДатам КАК ЦеныПоДатам
    ПО Таблица.Номенклатура = ЦеныПоДатам.Номенклатура
    И Таблица.Характеристика = ЦеныПоДатам.Характеристика
    И Таблица._День = ЦеныПоДатам._День

    СГРУППИРОВАТЬ ПО
    Таблица.Сделка,
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.Организация,
    Таблица.Партнер,
    Таблица._День,
    Таблица._Неделя,
    Таблица._Декада,
    Таблица._Месяц,
    Таблица._Квартал,
    Таблица._Полугодие,
    Таблица._Год,
    Таблица.ЗаказКлиента,
    Таблица.Подразделение,
    Таблица.Склад,
    Таблица.Контрагент,
    Таблица.Покупатель,
    Таблица.Поставщик,
    Таблица.Менеджер,
    Таблица.ВидЗапасов,
    Таблица.Сделка.Ответственный,
    Таблица.МенеджерСборщик,
    Таблица.НаименованиеПолное,
    Таблица.Регистратор,
    Таблица.ФормаОплаты

    ИМЕЮЩИЕ
    (СУММА(Таблица.Количество) <> 0
    ИЛИ СУММА(Таблица.Выручка) <> 0)

    УПОРЯДОЧИТЬ ПО
    Номенклатура,
    Характеристика
```
---
tarassov, я примерно так уже делал
ничего не меняется.
Больше того, я даже добавил еще одно поле, специально отдельное от роли СКД. Пофигу ей.
Не могу прямо сейчас этим заняться дальше, ведь работу копание в этом говне не отменяет. Сейчас доделаю дела и продолжу...
---
СКД определяет что поле является периодом по роли поля. Попробуйте у этого поля поставить роль например Измерение или вообще убрать роль
---
Чтобы быть уверенным, что дело не в кэше, у вас не должно в коде сохранять значения и СКД должен быть встроен в конфигурацию!
---
Сделайте это во вложенном запросе, если мне не изменяет память мне это помогло в свое время, единственно конечно что тогда разрешенные нельзя использовать
---
Человек правильно пишет. Там где в запросе вы используете СГРУППИРОВАТЬ ПО - поместите весь запрос во вложенный
---
Что то типа этого, СКД вроде как вложенные запросы не правит

```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ПОМЕСТИТЬ НоменклатурыДаты
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ;

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

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День) КАК ВложенныйЗапрос
    ПО НоменклатурыДаты.Номенклатура = ВложенныйЗапрос.Номенклатура
    И НоменклатурыДаты.Характеристика = ВложенныйЗапрос.Характеристика
    И НоменклатурыДаты.День = ВложенныйЗапрос.Период) КАК ВложенныйЗапрос
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ВложенныйЗапрос.Характеристика = ЦеныНоменклатуры.Характеристика
    И ВложенныйЗапрос.Период = ЦеныНоменклатуры.Период
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Характеристика,
    ВложенныйЗапрос.День
```

И еще ваш запрос на цену можно сократить

```1c
    ВЫБРАТЬ РАЗЛИЧНЫЕ
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ПОМЕСТИТЬ НоменклатурыДаты
    ИЗ
    Таблица КАК Таблица

    СГРУППИРОВАТЬ ПО
    Таблица.Номенклатура,
    Таблица.Характеристика,
    Таблица.День
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена,
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Характеристика,
    ВложенныйЗапрос.День
    ПОМЕСТИТЬ ЦеныПоДатам
    ИЗ
    (ВЫБРАТЬ
    НоменклатурыДаты.Номенклатура КАК Номенклатура,
    НоменклатурыДаты.Характеристика КАК Характеристика,
    НоменклатурыДаты.День КАК День,
    МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период
    ИЗ
    НоменклатурыДаты КАК НоменклатурыДаты
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО НоменклатурыДаты.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И НоменклатурыДаты.Характеристика = ЦеныНоменклатуры.Характеристика
    И НоменклатурыДаты.День >= ЦеныНоменклатуры.Период
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)

    СГРУППИРОВАТЬ ПО
    НоменклатурыДаты.Номенклатура,
    НоменклатурыДаты.Характеристика,
    НоменклатурыДаты.День) КАК ВложенныйЗапрос
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
    ПО ВложенныйЗапрос.Номенклатура = ЦеныНоменклатуры.Номенклатура
    И ВложенныйЗапрос.Характеристика = ЦеныНоменклатуры.Характеристика
    И (ЦеныНоменклатуры.ВидЦены = &ВидЦеныЗакупочная)
    И ВложенныйЗапрос.Период = ЦеныНоменклатуры.Период

    СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Номенклатура,
    ВложенныйЗапрос.Характеристика,
    ВложенныйЗапрос.День
```

Вполне достаточно для получения последней цены
---
bmk74, спасибо большое. Так заработало :)
Не очень люблю большие вложенные запросы, удобнее, когда все последовательно по шагам и проверить можно каждый шаг отдельно. Первый раз сталкиваюсь с тем, что СКД корежит запрос до неправильного.
Копеечка за ответ изначально была, я ее возвращаю и отдаю. Спасибо.