Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Сгруппировать ПО  (Прочитано 9448 раз)
0 Пользователей и 1 Гость смотрят эту тему.
DR.XXX
Помогающий

kz
Offline Offline

« : 26-08-2011 18:04 » 

Приветствую всех!

Не пойму куда правильно вставить СГРУППИРОВАТЬ ПО ... Везде выдает ошибки: то к группе не относится то еще что то

Код:
Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| РеализацияТМЗОбороты.Регистратор КАК ДокументДвижения,
| РеализацияТМЗОбороты.Склад КАК Склад,
| РеализацияТМЗОбороты.Номенклатура КАК Номенклатура,
| РеализацияТМЗОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
| РеализацияТМЗОбороты.ДоговорКонтрагента.Владелец КАК Контрагент,
| Выбор Когда (РеализацияТМЗОбороты.СуммаОборот)>0 Тогда РеализацияТМЗОбороты.СуммаОборот
|иначе 0 Конец КАК Сумма,
| Выбор Когда (РеализацияТМЗОбороты.СуммаОборот)< 0 Тогда РеализацияТМЗОбороты.СуммаОборот
|иначе 0 Конец КАК СуммаВозвратов,
| РеализацияТМЗОбороты.СуммаОборот Как СуммаСВозвратами,
| РеализацияТМЗОбороты.НДСОборот КАК НДС,
| РеализацияТМЗОбороты.АкцизОборот КАК Акциз,
| РеализацияТМЗОбороты.СтоимостьОборот КАК Стоимость,
| РеализацияТМЗОбороты.КоличествоОборот КАК Количество,
| РеализацияТМЗОбороты.СуммаОборот - РеализацияТМЗОбороты.НДСОборот - РеализацияТМЗОбороты.АкцизОборот КАК СуммаБезНалогов,
| РеализацияТМЗОбороты.СуммаОборот - РеализацияТМЗОбороты.НДСОборот - РеализацияТМЗОбороты.АкцизОборот - РеализацияТМЗОбороты.СтоимостьОборот КАК Профит,
|   (РеализацияТМЗОбороты.СуммаОборот - РеализацияТМЗОбороты.НДСОборот - РеализацияТМЗОбороты.АкцизОборот)/РеализацияТМЗОбороты.КоличествоОборот КАК Сумма1,
| РеализацияТМЗОбороты.СуммаОборот/РеализацияТМЗОбороты.КоличествоОборот КАК Сумма2";

Если мИспользоватьПартии Тогда
Текст = Текст + ",
| РеализацияТМЗОбороты.Партия Как Партия";
КонецЕсли;

Текст = Текст + "
| {ВЫБРАТЬ
| РеализацияТМЗОбороты.Организация.* КАК Организация,
| РеализацияТМЗОбороты.СчетУчета.* КАК СчетУчета,
| РеализацияТМЗОбороты.Номенклатура.* КАК Номенклатура,
| РеализацияТМЗОбороты.ДоговорКонтрагента.Владелец.* КАК Контрагент,
| РеализацияТМЗОбороты.ДоговорКонтрагента.* КАК ДоговорКонтрагента,";

Если мИспользоватьПартии Тогда
Текст = Текст + "
| РеализацияТМЗОбороты.Партия.* КАК Партия,";
КонецЕсли;

Текст = Текст + "
| РеализацияТМЗОбороты.Склад.* КАК Склад,
| РеализацияТМЗОбороты.Период Как Период,
| НачалоПериода(Период, День) КАК ПериодДень ,
| НачалоПериода(Период, Неделя) КАК ПериодНеделя ,
| НачалоПериода(Период, Декада) КАК ПериодДекада ,
| НачалоПериода(Период, Месяц) КАК ПериодМесяц ,
| НачалоПериода(Период, Квартал) КАК ПериодКвартал ,
| НачалоПериода(Период, Полугодие) КАК ПериодПолугодие ,
| НачалоПериода(Период, Год) КАК ПериодГод
|  //СВОЙСТВА
|}
|ИЗ
| РегистрНакопления.РеализацияТМЗ.Обороты(
| &ДатаНач,
| &ДатаКон,";

Если мИспользоватьПартии Тогда
Текст = Текст + "
| Регистратор,{Организация.*, СчетУчета.*, ДоговорКонтрагента.*, Номенклатура.*, Склад.*, ДоговорКонтрагента.Владелец.* КАК Контрагент, Партия.*}) КАК РеализацияТМЗОбороты";
Иначе
Текст = Текст + "
| Регистратор,{Организация.*, СчетУчета.*, ДоговорКонтрагента.*, Номенклатура.*, Склад.*, ДоговорКонтрагента.Владелец.* КАК Контрагент}) КАК РеализацияТМЗОбороты";
КонецЕсли;

Текст = Текст + "
| //СОЕДИНЕНИЯ
|{ГДЕ
| Период.* Как Период,
| Склад.*,
| Организация.*,
| Номенклатура.*,
| СчетУчета.*,
| ДоговорКонтрагента.Владелец.* КАК Контрагент,
| ДоговорКонтрагента.*,
| Регистратор.* КАК ДокументДвижения";

Если мИспользоватьПартии Тогда
Текст = Текст + ",
| Партия.*";
КонецЕсли;

Текст = Текст + "
|  //СВОЙСТВА
|  //КАТЕГОРИИ
|}";

Текст = Текст + "
|{УПОРЯДОЧИТЬ ПО
| Склад.*,
| организация.*,
| Номенклатура.*,
| СчетУчета.*,
| ДоговорКонтрагента.*,
| Контрагент.*,";

Если мИспользоватьПартии Тогда
Текст = Текст + "
| Партия.*,";
КонецЕсли;

Текст = Текст + "
| Период,
| ДокументДвижения.*
|  //СВОЙСТВА
|}

|ИТОГИ
| СУММА(Сумма),
| СУММА(СуммаВозвратов),
| СУММА(СуммаСВозвратами),
| СУММА(НДС),
| СУММА(Акциз),
| СУММА(Стоимость),
| СУММА(Количество),
| СУММА(СуммаБезНалогов),
| СУММА(Профит),
| СУММА(Сумма1),
|   СУММА(Сумма2)
|ПО
| ОБЩИЕ
|{ИТОГИ ПО
| Склад.*,
| Организация.*,
| Номенклатура.*,
| СчетУчета.*,
| Контрагент.*,
| ДоговорКонтрагента.*,
| ДокументДвижения.*,";

Если мИспользоватьПартии Тогда
Текст = Текст + "
| Партия.*,";
КонецЕсли;

Текст = Текст + "
| НачалоПериода(Период, День) КАК ПериодДень ,
| НачалоПериода(Период, Неделя) КАК ПериодНеделя ,
| НачалоПериода(Период, Декада) КАК ПериодДекада ,
| НачалоПериода(Период, Месяц) КАК ПериодМесяц ,
| НачалоПериода(Период, Квартал) КАК ПериодКвартал ,
| НачалоПериода(Период, Полугодие) КАК ПериодПолугодие ,
| НачалоПериода(Период, Год) КАК ПериодГод
|  //СВОЙСТВА
| }";

Вот здесь делю суммы на количество(ниже отрывок из кода), оказалось так что делится все на каждое перебираемое количество, а нужно чтобы делил на суммированное количество

Код:
	|   (РеализацияТМЗОбороты.СуммаОборот - РеализацияТМЗОбороты.НДСОборот - РеализацияТМЗОбороты.АкцизОборот)/РеализацияТМЗОбороты.КоличествоОборот КАК Сумма1";

Пробую через СУММА(РеализацияТМЗОбороты.КоличествоОборот), но для этого нужно прописывать СГРУППИРОВАТЬ ПО, вот и не пойму куда ее вписать Улыбаюсь


Прошу прощения за бестолковое разъяснение, но все же надеюсь вы поняли о чем я пытаюсь спросить
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 27-08-2011 06:15 » 

У тебя в запросе использутся Компоновка Данных, соответствено итоги расчитываются через нее. Поробуй вставить в группу ИТОГИ формулу типа:
СУММА(Стоимость)/СУММА(Количество)
Записан
DR.XXX
Помогающий

kz
Offline Offline

« Ответ #2 : 27-08-2011 06:46 » 

У тебя в запросе использутся Компоновка Данных, соответствено итоги расчитываются через нее. Поробуй вставить в группу ИТОГИ формулу типа:
СУММА(Стоимость)/СУММА(Количество)

А как результат присвоить переменной? Пробовал через КАК, но ошибку выдает: "Невозможно определить поле для записи результата"

Код:
	|ИТОГИ
| СУММА(Сумма),
| СУММА(СуммаВозвратов),
| СУММА(СуммаСВозвратами),
| СУММА(НДС),
| СУММА(Акциз),
| СУММА(Стоимость),
| СУММА(Количество),
| СУММА(СуммаБезНалогов),
| СУММА(Профит),
| СУММА(Стоимость)/СУММА(Количество) КАК Сумма1,
|       СУММА(Стоимость)/СУММА(Количество) КАК Сумма2
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 27-08-2011 13:59 » 

Ты попробуй весь запрос записать в одну многострочную строкову контанту (во формулировочка!) и эту формулу задать в конструкторе запроса, на закладке Компоновка. Потом увидишь как получилось. Если прокатит - то там будем думать, иначе придется наверное усложнть запрос...
Записан
DR.XXX
Помогающий

kz
Offline Offline

« Ответ #4 : 27-08-2011 17:08 » new

Спасибо за совет, но его не дождался)

Попробовал так
Код: (1C v8)
Запрос.Текст=Текст;
        Запрос.УстановитьПараметр("ДатаКон",КонецДня(ДатаКон));
        Запрос.УстановитьПараметр("ДатаНач",НачалоДня(ДатаНач));
       
        ТЗ=Запрос.Выполнить().Выгрузить();
        ТЗ.Свернуть("Номенклатура","Сумма,СуммаВозвратов,НДС,Акциз,Стоимость,Количество,СуммаБезНалогов,СуммаСВозвратами,Профит");
       
        //тИтоги.Параметры.ИтогСумма1 = 0;                                        
       
        Для Каждого СтрокаТЗ из ТЗ  Цикл             

                ОбластьСтрока.Параметры.Заполнить(СтрокаТЗ);
                ОбластьСтрока.Параметры.Сумма1 = окр(СтрокаТЗ.СуммаБезНалогов/СтрокаТЗ.Количество,2);
                ОбластьСтрока.Параметры.Сумма2 = окр(СтрокаТЗ.Стоимость/СтрокаТЗ.Количество,2);
               
                ОбластьСтрока.
                ТабДок123.Вывести(ОбластьСтрока);

Весь запрос в один текст. Затем использовал метод Свернуть(), Это помогло делить суммы на уже просуммированные количества(результат записывается в параметры Сумма1 и Сумма2). Но тут возникает другая проблема Улыбаюсь

Только незнаю как правильно задать вопрос. Наверное сначала нужно просмотреть на рисунок, я его прикрепил к вопросу.

Надеюсь на вашу помощь.

* отчет.JPG (96.68 Кб - загружено 879 раз.)
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines