Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Возможность группировки по функции
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
twilight_dream
Функция цен = Сумма(СуммаГрн/Кво) Когда (Кво<>0);

Можно ли как то сгруппировать по вычисленной цене в самом запросе?
Просто стоит задача разбить в выдаче ТМЦ по ценам прихода.

То есть если есть макароны, то надо сгруппировать

Продукция макаронная фирмы ЭН
Макароны, цена 3 гр,
- Приходная 1
- Приходная 2....
Макароны, цена 3.6 гр
- ПРиходная 1
.........



Ниже приведен весь запрос:
    ТекстЗапроса = 
    "//{{ЗАПРОС(Остатки7)
    |Период с ДатаС по ВыбКонПериода;
    |Фир = Регистр.Остатки.Фирма;
    |ТМЦ = Регистр.Остатки.ТМЦ;
    |ВидУчета = Регистр.Остатки.ВидУчета;
    |Поставщик=Регистр.Остатки.Партия.Док;";//Поставщик там дальше, но не влезло до третьего уровня расшифровки 1С вроде не видит дальше
    Если ДоДокументов=1 Тогда
        ТекстЗапроса=ТекстЗапроса+"
        |
        |Партия=Регистр.Остатки.Партия;
        |";
    КонецЕсли;
    ТекстЗапроса=ТекстЗапроса+"
    |СуммаГрн = Регистр.Остатки.СуммаГрн;
    |Кво = Регистр.Остатки.Кво;
    |Цена7 = Регистр.Остатки.ТМЦ.Цена7;
    |Функция цен = Сумма(СуммаГрн/Кво) Когда (Кво<>0);
    //|Функция сум = Сумма(КонОст(СуммаГрн)/КонОст(Кво));
    |Функция СуммаГрнКонОст = КонОст(СуммаГрн);
    |Функция КвоГрнКонОст = КонОст(Кво);
    //|Функция ЦенаГрнКонОст = КонОст(СуммаГрн/Кво);
    |Группировка ТМЦ упорядочить по ТМЦ.Наименование;
    //|Группировка цен;
    //|Группировка Документ;
    //|Условие(ТМЦ В спТМЦ); "
    |";
    Если ДоДокументов=1 Тогда
        ТекстЗапроса=ТекстЗапроса+"
        |Группировка Партия Упорядочить по цен;
        |";
    КонецЕсли;    
    Если выбВсеФирмы=0 Тогда        
        ТекстЗапроса=ТекстЗапроса+"
        |Условие(Фир В (выбФирма));
        |";
    КонецЕсли;
    Если ПустоеЗначение(выбВидУчета)=0 Тогда
        ТекстЗапроса=ТекстЗапроса+"
        |Условие(ВидУчета в выбВидУчета);
        |";
    КонецЕсли;
    Если ВыбПоставщик.Выбран()=1 Тогда
        ТекстЗапроса = ТекстЗапроса+"
        //|Условие (Поставщик.Клиент = ВыбПоставщик);";
        |Условие (ПроверкаПоставщика(Поставщик)=1);";
    КонецЕсли;
    //|Условие(СуммаГрнКонОст <>0);
    ТекстЗапроса=ТекстЗапроса+"
    |Условие (ТМЦ в выбТМЦ);
    |"//}}ЗАПРОС
;


Если возник вопрос , откуда я достал приходную, то она сидит в партии. Главное извлечь партию, а она в измерениях регистра.

Извращениями и сам страдаю. Можно выгрузить в индексную таблицу и вывести желаемое.
Но интересует именно красивый вариант с запросом без последующих махинаций.
Sanyk
Ні, безпосередньо запитом не можна.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.