Имя: Пароль:
1C
1C 7.7
v7: Группировка по ДатаДок
,
0 SAM-soft
 
24.09.11
17:09
Доброго времени суток. Вопрос следующего характера. Есть регистр остатков, у него есть реквизит "ДокВозврата" тип значения ДОКУМЕНТ. По этому реквизиту проходят только два документа. Вот мой запрос:
ТекстЗапроса = "
|Период с ВыбДата по ВыбДата;
|Подразделение = Регистр.ДолгПоВозврату.Подразделение;
|Дат = Регистр.ДолгПоВозврату.ДокВозврата.ДатаДок;
|ТМЦ = Регистр.ДолгПоВозврату.ТМЦ;
|Количество = Регистр.ДолгПоВозврату.Количество;
|Функция Всего = КонОст(Количество);
|Группировка Подразделение;
|Группировка Дат;
|Группировка ТМЦ Без Групп;
|Условие (Подразделение в ВыбПодразделение);
|"
;
проблема заключается в том что нету группировки по переменной "Дат". Раньше в реквизите "ДокВозврата" тип значения был конкретный документ и все работало как надо, а теперь группировка не работает и имеет пустое значение.
1 Темный Эльф
 
24.09.11
17:14
Остатков по реквизитам не бывает. Остатки считаются в разрезе измерений.
2 NS
 
24.09.11
17:34
(0) не верю (с)
И раньше такое работать не могло.
3 SAM-soft
 
25.09.11
15:35
Вот в том то и дело что когда тип значения реквизита "ДокВозврата" был "Документ.ДокВозврата" то все отлично работало. Потом появилась потребность в этот реквезит вписывать еще один вид документа, после этого я изменил тип значения реквизита "ДокВозврата" с  "Документ.ДокВозврата" на "Документ" и все перестало работать.
4 hunter76
 
25.09.11
15:48
может тогда надо бы вот так:
Дат = Регистр.ДолгПоВозврату.ДокВозврата.ДатаДок, Регистр.ДолгПоВозврату.<Еще один вид документа, и аналогично, по всем видам, делающим движение по этому регистру>.ДатаДок;
?
5 G-Re
 
25.09.11
15:54
(3) Если ДокВозврата - тип Неопределенный или Вид Неопределенный - не взлетит. По всей видимости, это ограничение черного запроса.
Я так ДУМАЮ(Ф.Мкртчян, "Мимино").
6 SAM-soft
 
25.09.11
16:54
(4) Переменная "ДокВозврата" хранит ссылку на документ. ссылки могут быть на два вида документов "Документ.Перемещение" и "Документ.ВозвратБрака". Эти документы не делают движения по этому регистру. Они просто сохраняются в этой переменной.
7 hunter76
 
25.09.11
16:56
(6) а где переменная "ДокВозврата"?
8 SAM-soft
 
25.09.11
16:57
Вот что получается еще!!! Группировка по "Дат" не работает, а группировка по общему реквизиту "Автор" отрабатывает нормально. Пример:
|Дат = Регистр.ДолгПоВозврату.ДокВозврата.Автор;
|Группировка Дат;
Вот так все работает. Есть идеи????
9 hunter76
 
25.09.11
17:01
+(7) тогда так попробуй:
ТекстЗапроса = "
|Период с ВыбДата по ВыбДата;
|Подразделение = Регистр.ДолгПоВозврату.Подразделение;
|Дат = Регистр.ДолгПоВозврату.ДокВозврата.Перемещение.ДатаДок, Регистр.ДолгПоВозврату.ДокВозврата.ВозвратБрака.ДатаДок;
|ТМЦ = Регистр.ДолгПоВозврату.ТМЦ;
|Количество = Регистр.ДолгПоВозврату.Количество;
|Функция Всего = КонОст(Количество);
|Группировка Подразделение;
|Группировка Дат;
|Группировка ТМЦ Без Групп;
|Условие (Подразделение в ВыбПодразделение);
|"
;
10 SAM-soft
 
25.09.11
17:25
(9) нет не получается, ругается на неправильную переменную, да оно и понятно. Я думаю дело в том что ДатаДок не есть индивидуальной переменной. ДатаДок - это стандартная переменная любого документа, но по мимо этого существует еще и "Дополнительные атрибуты внутренних переменных типа документ" в которых тоже есть переменная "ДатаДок". Скорее всего по этому и не получается сделать группировку. Переменная "Дат" определяется как переменная типа Дата, но переменная пустая.
11 Voronve
 
25.09.11
17:32
ТекстЗапроса = "
|Период с ВыбДата по ВыбДата;
|Подразделение = Регистр.ДолгПоВозврату.Подразделение;
|Док = Регистр.ДолгПоВозврату.ДокВозврата;
|ТМЦ = Регистр.ДолгПоВозврату.ТМЦ;
|Количество = Регистр.ДолгПоВозврату.Количество;
|Функция Всего = КонОст(Количество);
|Группировка Подразделение;
|Группировка Док упорядочить по Док.ДатаДок;
|Группировка ТМЦ Без Групп;
|Условие (Подразделение в ВыбПодразделение)
|";

Не ?
12 SAM-soft
 
25.09.11
17:40
(11) упорядочить в этом случае не получается мне нужно сделать группировку по датам а не упорядочить по дотам (за 23.09.11 может пройти 20 документов) и если использовать группировку то должна быть одна строчка, а Группировка Док упорядочить по Док.ДатаДок; даст результат 20 строк.
Я уже подумываю об таком варианте только все это грузить в таблицаЗначений, а уж потом с нее создавать печатную таблицу. Других вариантов пока не видно!
13 ДенисЧ
 
25.09.11
17:44
прямой запрос - не предлагать?
14 SAM-soft
 
25.09.11
17:49
(13) что значит прямой? Предлагай, рассмотрим все варианты!
15 NS
 
26.09.11
02:06
(13) Расскажешь как-нибудь, как прямым запросом получишь остаток в разрезе реквизита.
16 SAM-soft
 
27.09.11
09:38
Эту проблему решил по другому (как говорится через зад...цу) Запрос выгружаю в ТЗ добавляю колонку дата, при добавлении строки вытягиваю дату с документа, ну а потом выбираю строки с ТЗ.
PS: Это так ради интереса, а возможно ли сделать запрос с ТаблицыЗначений или это бред?
17 1Сергей
 
27.09.11
10:47
(16) можно. прямой
18 NS
 
27.09.11
11:19
(16) Патент на получение остатка в разрезе реквизита получить не хочешь?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан