Имя: Пароль:
1C
1С v8
Общие итоги в запросе
0 zzzLEXzzz
 
10.12.13
15:56
Приветствую, имеется запрос, знаю немного кривоват, как правильно вывести общий итог "количество", что делаю не так?

Макет = ОтчетОбъект.ПолучитьМакет("ОтчетЭфесРус");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Дата,
    |    РеализацияТоваровУслуг.Номер,
    |    ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 1, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 1, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 2, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 2, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 3, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 3, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 4, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 4, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 5, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 5, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 6, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 6, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 7, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 7, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 8, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 8, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 9, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 9, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 10, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 10, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 11, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 11, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ КАК Комментарий,
    |    РеализацияТоваровУслуг.Ссылка,
    |    РеализацияТоваровУслуг.Представление КАК ВидНакладной,
    |    РеализацияТоваровУслуг.Товары.(
    |        Номенклатура.Код КАК НоменклатураАртикул,
    |        Номенклатура.Наименование,
    |        РеализацияТоваровУслуг.Товары.Количество * РеализацияТоваровУслуг.Товары.Коэффициент * РеализацияТоваровУслуг.Товары.Номенклатура.КолЛвШТ КАК Количество,
    |        РеализацияТоваровУслуг.Товары.Количество * РеализацияТоваровУслуг.Товары.Коэффициент * РеализацияТоваровУслуг.Товары.Номенклатура.КолЛвШТ / РеализацияТоваровУслуг.Товары.Номенклатура.КолЛвУП КАК уп,
    |        Коэффициент,
    |        Номенклатура.КолЛвШТ
    |    ),
    |    РеализацияТоваровУслуг.Контрагент.Код,
    |    РеализацияТоваровУслуг.Контрагент.Наименование,
    |    РеализацияТоваровУслуг.Контрагент.Родитель.Код
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    |    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачало И &ДатаКонец
    |    И РеализацияТоваровУслуг.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
    |    И РеализацияТоваровУслуг.ПометкаУдаления = &ПометкаУдаления
    |    И РеализацияТоваровУслуг.Контрагент В ИЕРАРХИИ(&Контрагент)
    |     ИТОГИ ПО ОБЩИЕ";
    
    Запрос.УстановитьПараметр("ДатаКонец", ДатаКонец);
    Запрос.УстановитьПараметр("ДатаНачало", ДатаНачало);          
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("ПометкаУдаления", ПометкаУдаления);
    
                                                                                                                          
    Результат = Запрос.Выполнить();
    
    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    СуммаКоличество = Выборка.Количество;
        ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьПодвалТаблицы.Параметры.Итог = СуммаКоличество;
1 Tatitutu
 
10.12.13
15:59
(0) ой, беги....
2 zzzLEXzzz
 
10.12.13
16:06
(1) Пинать будут?
3 Rovan
 
гуру
10.12.13
16:14
(0) открой для себя Конструктор запросов
4 zzzLEXzzz
 
10.12.13
16:18
(3) я пробовал, но поле количество не заносится в итоги, не знаю почему
5 vicof
 
10.12.13
16:30
(4) Выбирай сразу из табличной части
6 vicof
 
10.12.13
16:30
а остальные данные по ссылке вытянешь
7 Wobland
 
10.12.13
16:34
это ж кто такой красивый хранит что-то важное в комментарии?
8 hhhh
 
10.12.13
16:34
чего реально МЕЖДУ работает со строками?
9 Wobland
 
10.12.13
16:35
(8) что, тоже никогда не пробовал, потому что на хрен не надо? ;)
10 zzzLEXzzz
 
10.12.13
16:36
(8) Да работает )))
11 mikecool
 
10.12.13
16:36
Итоги Количество(какое то поле) по общие
12 МишКа
 
10.12.13
16:39
(11) Ты в запрос глянь. Там это безобразие с впихиванием таблицы в ячейку. Не знаю, как его назвать.
13 mikecool
 
10.12.13
16:41
(12) и? если надо, почему бы и нет?
14 zzzLEXzzz
 
10.12.13
16:48
(11) какое-то поле - это в печатной форме поле?
15 zzzLEXzzz
 
10.12.13
17:08
Есть ещё идеи, не могу я справится ((
16 Tatitutu
 
10.12.13
17:15
(15) еще не убежал ?
тебе же сказали - перепиши лучше заново

Выборка.Количество

посмотри ГДЕ ОНО У ТЕБЯ ???? в запросе
(у тебя даже этого поля нет)

перепиши обратись сразу к таблице товары
а к документу по ссылке

простыми словами : твой "запрос" нервно курить в стороне и не понимает ,что ты о него хочешь...

расскажи "постановку" задачи - идею этой пьесы
17 zzzLEXzzz
 
10.12.13
17:25
(16) это отчет, который выводит в печатную форму определённые поля, вот полный код процедуры

Процедура ОтчетЭфесРус(ТабДок, ДатаКонец, ДатаНачало, Контрагент, Номенклатура, ПометкаУдаления) Экспорт
    //{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ОтчетЭфесРус)
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Макет = ОтчетОбъект.ПолучитьМакет("ОтчетЭфесРус");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Дата,
    |    РеализацияТоваровУслуг.Номер,
    |    ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 1, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 1, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 2, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 2, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 3, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 3, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 4, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 4, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 5, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 5, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 6, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 6, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 7, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 7, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 8, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 8, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 9, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 9, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 10, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 10, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ + ВЫБОР
    |        КОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 11, 1) МЕЖДУ ""0"" И ""9""
    |            ТОГДА ПОДСТРОКА(РеализацияТоваровУслуг.Комментарий, 11, 1)
    |        ИНАЧЕ """"
    |    КОНЕЦ КАК Комментарий,
    |    РеализацияТоваровУслуг.Ссылка,
    |    РеализацияТоваровУслуг.Представление КАК ВидНакладной,
    |    РеализацияТоваровУслуг.Товары.(
    |        Номенклатура.Код КАК НоменклатураАртикул,
    |        Номенклатура.Наименование,
    |        РеализацияТоваровУслуг.Товары.Количество * РеализацияТоваровУслуг.Товары.Коэффициент * РеализацияТоваровУслуг.Товары.Номенклатура.КолЛвШТ КАК Количество,
    |        РеализацияТоваровУслуг.Товары.Количество * РеализацияТоваровУслуг.Товары.Коэффициент * РеализацияТоваровУслуг.Товары.Номенклатура.КолЛвШТ / РеализацияТоваровУслуг.Товары.Номенклатура.КолЛвУП КАК уп,
    |        Коэффициент,
    |        Номенклатура.КолЛвШТ
    |    ),
    |    РеализацияТоваровУслуг.Контрагент.Код,
    |    РеализацияТоваровУслуг.Контрагент.Наименование,
    |    РеализацияТоваровУслуг.Контрагент.Родитель.Код
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    |    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачало И &ДатаКонец
    |    И РеализацияТоваровУслуг.Товары.Номенклатура В ИЕРАРХИИ(&Номенклатура)
    |    И РеализацияТоваровУслуг.ПометкаУдаления = &ПометкаУдаления
    |    И РеализацияТоваровУслуг.Контрагент В ИЕРАРХИИ(&Контрагент)";
        
    Запрос.УстановитьПараметр("ДатаКонец", ДатаКонец);
    Запрос.УстановитьПараметр("ДатаНачало", ДатаНачало);          
    Запрос.УстановитьПараметр("Контрагент", Контрагент);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("ПометкаУдаления", ПометкаУдаления);
    
                                                                                                                          
    Результат = Запрос.Выполнить();
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
    ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
    ТоварыОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ТоварыШапкаТаблицы");
    ТоварыОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ТоварыПодвалТаблицы");
    ТоварыОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("ТоварыДетали");

    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьЗаголовок);
    ТабДок.НачатьАвтогруппировкуСтрок();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();
        ТабДок.Вывести(ТоварыОбластьШапкаТаблицы);

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
        ТоварыВыборкаДетальныеЗаписи = ВыборкаДетальныеЗаписи.Товары.Выбрать();

        Пока ТоварыВыборкаДетальныеЗаписи.Следующий() Цикл
            ТоварыОбластьДетальныхЗаписей.Параметры.Заполнить(ТоварыВыборкаДетальныеЗаписи);
            
            ТоварыОбластьДетальныхЗаписей.Параметры.Дата = ВыборкаДетальныеЗаписи.Дата;
            ТоварыОбластьДетальныхЗаписей.Параметры.ВидНакладной = ВыборкаДетальныеЗаписи.ВидНакладной;
            ТоварыОбластьДетальныхЗаписей.Параметры.Номер = ВыборкаДетальныеЗаписи.Номер;
            ТоварыОбластьДетальныхЗаписей.Параметры.Комментарий = ВыборкаДетальныеЗаписи.Комментарий;
            //ТоварыОбластьДетальныхЗаписей.Параметры.уп = ВыборкаДетальныеЗаписи.уп;
            ТоварыОбластьДетальныхЗаписей.Параметры.КонтрагентКод = ВыборкаДетальныеЗаписи.КонтрагентКод;
            ТоварыОбластьДетальныхЗаписей.Параметры.КонтрагентНаименование = ВыборкаДетальныеЗаписи.КонтрагентНаименование;
            ТоварыОбластьДетальныхЗаписей.Параметры.КонтрагентРодительКод = ВыборкаДетальныеЗаписи.КонтрагентРодительКод;
                        
            ТабДок.Вывести(ТоварыОбластьДетальныхЗаписей, ТоварыВыборкаДетальныеЗаписи.Уровень());
        КонецЦикла;

        ТабДок.ЗакончитьАвтогруппировкуСтрок();
    КонецЦикла;

    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.Вывести(ОбластьПодвалТаблицы);
    ТабДок.Вывести(ОбластьПодвал);

    //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры
18 Tatitutu
 
10.12.13
17:31
читай (3)
19 zzzLEXzzz
 
10.12.13
17:41
(18) так проще всего сказать, я пробовал, у меня не полуяается
20 Tatitutu
 
10.12.13
17:47
ВЫБРАТЬ
    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
    РеализацияТоваровУслугТовары.Ссылка.Контрагент
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслугТовары.Ссылка.Контрагент,
    РеализацияТоваровУслугТовары.Номенклатура
ИТОГИ
    СУММА(Количество)
ПО
    Номенклатура
21 МишКа
 
10.12.13
17:53
(13) Потому и нет, что дальше уже ничего не получится.
Мораль - не нарушай свойство замкнутости.