Имя: Пароль:
1C
1С v8
Сгруппировать по типу регистратора в ТОРГ-29
,
0 R0m1n
 
14.05.13
08:45
УТ 10.3, товарный отчет. имеется следующий код:
   
Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Дата1", НачалоДня(ДатаНач));
   Запрос.УстановитьПараметр("Дата2", КонецДня(ДатаКон));
   Запрос.УстановитьПараметр("Склад", Склад);

   Если Склад.ВидСклада = Перечисления.ВидыСкладов.Розничный Тогда
       ТекстЗапроса = "
       |ВЫБРАТЬ РАЗРЕШЕННЫЕ
       |    NULL КАК Док,
       |    NULL КАК ДатаДок,
       |    NULL КАК НомерДок,
       |    СУММА(ОстаткиТоваров.СуммаПродажнаяНачальныйОстаток) КАК НачОст,
       |    СУММА(ОстаткиТоваров.СуммаПродажнаяКонечныйОстаток) КАК КонОст,
       |    СУММА(
       |        ВЫБОР КОГДА ОстаткиТоваров.СуммаПродажнаяПриход - ОстаткиТоваров.СуммаПродажнаяРасход > 0 ТОГДА
       |            ОстаткиТоваров.СуммаПродажнаяПриход - ОстаткиТоваров.СуммаПродажнаяРасход
       |        ИНАЧЕ
       |            0
       |        КОНЕЦ
       |    ) КАК Приход,
       |    СУММА(
       |        ВЫБОР КОГДА ОстаткиТоваров.СуммаПродажнаяРасход - ОстаткиТоваров.СуммаПродажнаяПриход > 0 ТОГДА
       |            ОстаткиТоваров.СуммаПродажнаяРасход - ОстаткиТоваров.СуммаПродажнаяПриход
       |        ИНАЧЕ
       |            0
       |        КОНЕЦ
       |    ) КАК Расход
       |ИЗ
       |    РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&Дата1, &Дата2, , , Склад = &Склад) КАК ОстаткиТоваров
       |ИМЕЮЩИЕ
       |    СУММА(ОстаткиТоваров.СуммаПродажнаяНачальныйОстаток) <> 0.00
       |    ИЛИ СУММА(ОстаткиТоваров.СуммаПродажнаяКонечныйОстаток) <> 0.00
       |    ИЛИ СУММА(ВЫБОР    КОГДА ОстаткиТоваров.СуммаПродажнаяПриход - ОстаткиТоваров.СуммаПродажнаяРасход > 0 ТОГДА
       |                    ОстаткиТоваров.СуммаПродажнаяПриход - ОстаткиТоваров.СуммаПродажнаяРасход ИНАЧЕ 0.00 КОНЕЦ) <> 0.00
       |    ИЛИ СУММА(ВЫБОР    КОГДА ОстаткиТоваров.СуммаПродажнаяРасход - ОстаткиТоваров.СуммаПродажнаяПриход > 0 ТОГДА
       |                    ОстаткиТоваров.СуммаПродажнаяРасход - ОстаткиТоваров.СуммаПродажнаяПриход ИНАЧЕ 0.00 КОНЕЦ) <> 0.00
       |;
       |ВЫБРАТЬ РАЗРЕШЕННЫЕ
       |    ОстаткиТоваров.Регистратор КАК Док,
       |    ОстаткиТоваров.Период КАК ДатаДок,
       |    ОстаткиТоваров.Регистратор.Номер КАК НомерДок,
       |    СУММА(ОстаткиТоваров.СуммаПродажнаяНачальныйОстаток) КАК НачОст,
       |    СУММА(ОстаткиТоваров.СуммаПродажнаяКонечныйОстаток) КАК КонОст,
       |    СУММА(
       |        ВЫБОР КОГДА ОстаткиТоваров.СуммаПродажнаяПриход - ОстаткиТоваров.СуммаПродажнаяРасход > 0 ТОГДА
       |            ОстаткиТоваров.СуммаПродажнаяПриход - ОстаткиТоваров.СуммаПродажнаяРасход
       |        ИНАЧЕ
       |            0
       |        КОНЕЦ
       |    ) КАК Приход,
       |    СУММА(
       |        ВЫБОР КОГДА ОстаткиТоваров.СуммаПродажнаяРасход - ОстаткиТоваров.СуммаПродажнаяПриход > 0 ТОГДА
       |            ОстаткиТоваров.СуммаПродажнаяРасход - ОстаткиТоваров.СуммаПродажнаяПриход
       |        ИНАЧЕ
       |            0
       |        КОНЕЦ
       |    ) КАК Расход
       |ИЗ
       |    РегистрНакопления.ТоварыВРознице.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , Склад = &Склад) КАК ОстаткиТоваров
       |СГРУППИРОВАТЬ ПО
       |    ОстаткиТоваров.Регистратор,
       |    ОстаткиТоваров.Период,
       |    ОстаткиТоваров.Регистратор.Номер
       |УПОРЯДОЧИТЬ ПО
       |    ОстаткиТоваров.Период
       |";

разве вот эта строка:
       |СГРУППИРОВАТЬ ПО
       |    ОстаткиТоваров.Регистратор,

не должна объединять регистраторы в группу по типу регистратора?
1 mikecool
 
14.05.13
08:46
нет
2 cw014
 
14.05.13
08:46
Нет не должна
3 cw014
 
14.05.13
08:46
Делай поле ТипЗначения(ОстаткиТоваров.Регистратор) и группируй по нему
4 ДенисЧ
 
14.05.13
08:51
(0) Регистратор - это сслыка на документ, а не на вид документа
5 R0m1n
 
14.05.13
08:54
(4) ну да, была такая мысль
я сейчас сделал просто через
       |УПОРЯДОЧИТЬ ПО
       |    ОстаткиТоваров.Регистратор,
       |    ОстаткиТоваров.Период

и вроде как все нормально - сначала видимо сортируется по алфавиту, потом по дате соответственно. может так оставить?
6 cw014
 
14.05.13
08:54
(5) Ну тут ты сам реши, как тебе нужно оставить
7 R0m1n
 
14.05.13
08:57
(6) просто интересуюсь - возможно это решение неверное, ведь по сути здесь не идет группировка именно по виду документов, она просто получается исходя из того что сами имена документов  сортируются...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший