Имя: Пароль:
1C
1C 7.7
v7: Запрос по остаткам регистра.
0 Romyr
 
16.12.16
08:06
торговля и склад. Регистр заявок.
Хочу получить остатки по незакрытым заявкам в удобной для меня форме.
Как правильно оформить запрос?
Пробовал
"Организация = Регистр.Заявки.Фирма.Наименование;
                |Договор = Регистр.Заявки.ДоговорПокупателя;
                |Контрагент = Регистр.Заявки.ДоговорПокупателя.Владелец;
                |Номенклатура = Регистр.Заявки.Номенклатура.Код;
                |Количество = Регистр.Заявки.КоличествоРасход;
                |Функция КонОст = КонОст(Количество);
                |Группировка Номенклатура;

В этом случае он сворачивает договора, контграгентов и прочее. В случае если одна и та же номенклатура участвовала в движении по разным договорам/контрагентам/организациям.

http://www.mista.ru/articles1c/query.htm
здесь ничего про одновременную группировку по нескольким полям не нашел, а запросы по товарам и складу в примере обрабатываются корректно.
ЧЯДНТ?
1 Это_mike
 
16.12.16
08:08
Что Ты Не Так Делаешь - не читаешь документацию.
2 mehfk
 
16.12.16
08:09
Группировка Договор;
Группировка Контрагент;
Группировка КакаяХочуТакаяИБудет;
3 Romyr
 
16.12.16
08:24
(2) так было изначально.
если же я добавлю в запрос еще 1 группировку, то у меня строки по которым я контролирую результат не изменятся, кроме того что в колонке организации вообще пропадет наименование организации.

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

В общем что происходит:

Колонки
Организация, Номенлкатура, Остаток.

Строки
ОргА, НомА, 1
ОргА, НомБ, 5
ОргБ, НомА, 8

Если группировать по номенклатуре будет:
ОргА, НомА, 9
ОргаА, НомБ, 5

Если группировать по номенклатуре, организации

_______, НомА, 9
_______, НомБ, 5

Я бы даже согласился на результат без группировок, но в таком случае как его получить, ибо мне ничего не возвращается.

Полный текст на всякий случай:
//*******************************************
Процедура Сформировать()
    
    Таблица = СоздатьОбъект("ТаблицаЗначений");

    Таблица.НоваяКолонка("Организация");
    Таблица.НоваяКолонка("Договор");
    Таблица.НоваяКолонка("Контрагент");
    Таблица.НоваяКолонка("Номенклатура");
    Таблица.НоваяКолонка("КонОст");
    
    
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    Таб.Опции(0,0,0,0);
    
    Текст = "Организация = Регистр.Заявки.Фирма.Наименование;
                |Договор = Регистр.Заявки.ДоговорПокупателя;
                |Контрагент = Регистр.Заявки.ДоговорПокупателя.Владелец;
                |Номенклатура = Регистр.Заявки.Номенклатура.Код;
                |Количество = Регистр.Заявки.КоличествоРасход;
                |Функция КонОст = КонОст(Количество);
                |Группировка Организация;
                |Группировка Номенклатура;                
        //        |Группировка Контрагент;
        //        |Группировка Договор;                     
                |";                          
    Таб.ВывестиСекцию("Шапка");        
    Запрос = СоздатьОбъект("Запрос");
    Запрос.Выполнить(Текст);
        Пока Запрос.Группировка(1) = 1 Цикл
            Выражение_1 = Запрос.Организация;
            Выражение_2 = Запрос.Контрагент;
            Выражение_3 = Запрос.Договор;
            Выражение_4 = Запрос.Номенклатура;
            Выражение_5 = Запрос.КонОст;
            Таб.ВывестиСекцию("Строка");
        КонецЦикла;
    Таб.Показать("Сформировать","");    
КонецПроцедуры
4 Romyr
 
16.12.16
08:25
(3) в таком виде итоговый результат предсталвляет из себя 3 строки по организациям, и незаполненную колонку номенклатуры.
5 mehfk
 
16.12.16
08:27
Так обходи по всем группировкам
Пока Запрос.Группировка(1) = 1 Цикл
   Пока Запрос.Группировка(2) = 1 Цикл
      Пока Запрос.Группировка(3) = 1 Цикл
6 Это_mike
 
16.12.16
08:27
открой для себя конструктор запросов...
7 Romyr
 
16.12.16
08:29
(6) в 7рке?
(5) благодарю. именно это я похоже и упустил.
8 Это_mike
 
16.12.16
08:30
(6) естественно.
9 Это_mike
 
16.12.16
08:30
(8) к (7) - естественно.
10 Romyr
 
16.12.16
08:40
(8) это который отдельно откуда-то скачивается?
ну в следующий раз, когда столкнусь с 7ркой буду иметь ввиду.
11 Это_mike
 
16.12.16
08:41
(10) ты не поверишь....©
он встроенный в конфигуратор...
абсолютно шататный, описаный в документации доступный через меню и по кнопке...
12 Romyr
 
16.12.16
08:57
(11) хм. нашел в конструкторах. Ладно, буду знать.
13 пипец
 
16.12.16
09:22
ужс, а ведь есть еще и консоль запросов для 7-ки ))))
14 Злопчинский
 
16.12.16
11:02
Открой для себя http://catalog.mista.ru/public/20827/
15 Злопчинский
 
16.12.16
11:08
(0) ну и в бщем то
Функция КонОст = КонОст(Количество);
- недостаточно, там есть еще и СУММА в ресурсах. вариант когда колво=0, а сумма не равно 0 - вполне себе типовое явление в бардачных базах где работают через заднее число. такая заявка - если подходить строго - незакрыта.