![]() |
|
v7: Как получить детальные записи по регистру в запросе 7.7? | ☑ | ||
---|---|---|---|---|
0
Prog111
09.03.16
✎
15:04
|
Не могу найти, как получить детальные записи по регистру при составлении запроса на 7.7. То есть, если мне нужна группировка по какому-либо полю, а затем я хочу получить и вывести детальные записи из регистра - то какую конструкцию запроса надо использовать?
|
|||
4
Злопчинский
09.03.16
✎
15:09
|
Группировка Документ;
вхренячь в самый низ |
|||
5
Злопчинский
09.03.16
✎
15:10
|
Вообще будет достаточно только одной группировки Документ
|
|||
6
Prog111
09.03.16
✎
15:10
|
Дальше, делаю вывод результатов запроса по конструкции:
Пока Запрос.Группировка("Подрядчик") = 1 Цикл //Тут выводится подрядчик и его итоги. /////А дальше хотелось бы обход по записям регистра по этому подрядчику. |
|||
7
Prog111
09.03.16
✎
15:11
|
(4) Группировка "Документ", пожалуй, не подходит, поскольку в регистр пишутся записи не аналогичные строке документа.
|
|||
8
Prog111
09.03.16
✎
15:13
|
(3) "Тупо обход группировок" - это как на 7.7?
Вот на восьмерке есть конструкция "Детальные записи", а в 7.7 не могу найти аналог. |
|||
9
Ёпрст
гуру
09.03.16
✎
15:17
|
что хочешь получить в "детальных записях" при группировке подрядчик ?
|
|||
10
Злопчинский
09.03.16
✎
15:21
|
(7) а ты нигде не упоминал, что нужны строки документа - с чего это они тебя взволновали..?
|
|||
11
Злопчинский
09.03.16
✎
15:22
|
для начала сделай тупо
|Функция ВыполненоФактическиПриход = Приход(ВыполненоФактически); |Группировка Документ; |Группировка Заказчик упорядочить по Заказчик.Наименование без групп; |Группировка Подрядчик упорядочить по Подрядчик.Наименование без групп;"; и выводи тремя циклами вложенными по группировкам. |
|||
12
Prog111
09.03.16
✎
15:25
|
(10) Группировка "Документ" ведь судя по ЖКК даёт группировку по документу? А у меня в документе, допустим, 7 строк, а движений по регистру - 21.
|
|||
13
Злопчинский
09.03.16
✎
15:25
|
"детальные записи из регистра" - это записи, не просуммированные по какой-либо "группировке" или как?
. в регистре следующие записи: Документ1 заказчик1 подрядчик1 100 Документ1 заказчик1 подрядчик2 200 Документ1 заказчик2 подрядчик1 300 Документ1 заказчик2 подрядчик2 400 Документ2 заказчик1 подрядчик1 500 Документ2 заказчик1 подрядчик2 600 Документ2 заказчик2 подрядчик1 700 Документ2 заказчик2 подрядчик2 800 напиши - что в отчете хочешь увидеть? |
|||
14
Prog111
09.03.16
✎
15:25
|
(9) Возможно, я неправильный подход изначально выбрал.... Сейчас попытаюсь объяснить, что хочу получить на выходе.
|
|||
15
Смотрящий
09.03.16
✎
15:26
|
....
|НомерСтроки = Регистр.Сануборка.НомерСтроки; .... |Группировка НомерСтроки; |
|||
16
Злопчинский
09.03.16
✎
15:26
|
(12) какое отношение строки в ДОКУМЕНТНЕ имеют отношение к документу, который зафиксирован в регистре? - НИКАКОГО! (в твоем случае)
|
|||
17
Злопчинский
09.03.16
✎
15:27
|
(14) контрольный пример в (13) - на нем и объясняй
|
|||
18
Prog111
09.03.16
✎
15:31
|
(9), (13) В отчете хочу увидеть примерно следующее:
Строка1ГруппировкаЗаказчик (с итогами по группировке): заказчик1 1400 Строка2ГруппировкаПодрядчик (с итогами по группировке): Подрядчик1 600 Строка3 Детальная запись 100 Строка3 Детальная запись 500 |
|||
19
Масянька
09.03.16
✎
15:37
|
(18) Документ -> Регистр -> Отчет (так на курсах объясняли).
Объясняй по человечески: есть док-ты, в них есть то-то и то-то, в отчете хочу увидеть то-то и то-то. А еще лучше - картинку нарисовать. В цвете - вообще круто. |
|||
20
Злопчинский
09.03.16
✎
15:38
|
(18) ответ неверный.
суммы нижних иерархий не дают сумму верхних уровней. думай сильнее! |
|||
21
Злопчинский
09.03.16
✎
15:39
|
(19) у него в голове пока табун блондинок носится... ждем пока симогут хотя бы пипидастрами потрясти и какое-то осмысленное движение выдать.. ;-)
|
|||
22
Масянька
09.03.16
✎
15:41
|
(21) Что-то в последнее время по семерке много тем... Кризис, видать, и до эски добрался...
|
|||
23
Prog111
09.03.16
✎
15:42
|
(20) Это часть отчета, в котором для быстроты посчитал только группировку по заказчику1, по заказчику2 и их детальные записи.
|
|||
24
Злопчинский
09.03.16
✎
15:42
|
(20) Сорри, облажался, цифры в глаза набились...
делай как намного выше написал: |Группировка Заказчик упорядочить по Заказчик.Наименование без групп; |Группировка Подрядчик упорядочить по Подрядчик.Наименование без групп;"; |Группировка Документ; |
|||
25
Prog111
09.03.16
✎
15:42
|
(23) То есть по Заказчику1 и по Подрядчику1.
|
|||
26
Злопчинский
09.03.16
✎
15:42
|
(23) угу, увидел уже
|
|||
27
Злопчинский
09.03.16
✎
15:43
|
Конструктором запроса твой отчет ваяется минут за пять... с перекуром...
|
|||
28
Prog111
09.03.16
✎
15:43
|
(15) Вроде не подходит, поскольку у меня одна строка документа может делать 2-3-4 движения по регистру.
|
|||
29
Злопчинский
09.03.16
✎
15:44
|
если тяжко - стучись в скайп Zlopun - сваяем совместно.
все равно делать нечего.. крызыс.. |
|||
30
Злопчинский
09.03.16
✎
15:44
|
(28) ДА ПОХРЕН!!!!!!!
|
|||
31
Злопчинский
09.03.16
✎
15:45
|
(28) у тебя в разделе ДОКУМЕНТ будут выведены итоги по уникальным кортежам <заказчик, подрядчик>
|
|||
32
Злопчинский
09.03.16
✎
15:46
|
если у тебя в регистре есть
Документ1 заказчик1 подрядчик1 100 Документ1 заказчик1 подрядчик1 200 то увидишь в отчете заказчик1, Подрядчик1, Документ1 = 300 |
|||
33
ДенисЧ
09.03.16
✎
15:47
|
Функция(ДетальныеЗаписи=ВызватьПрограммистаИЗаплатитьЕму();
|
|||
34
Prog111
09.03.16
✎
15:49
|
(32) А мне нужно ещё и записи по регистрам выводить... Вот в чем вопрос у меня.
|
|||
35
Злопчинский
09.03.16
✎
15:50
|
(34) зачем?
чем эти две записи отличаются? Документ1 заказчик1 подрядчик1 100 Документ1 заказчик1 подрядчик1 200 По какому признаку ты ИХ МОЖЕШЬ РАЗДЕЛИТЬ? |
|||
36
Prog111
09.03.16
✎
15:50
|
Уговорили, пойду попробую поиграться с группировками по документу и НомерСтроки. Хотя нутро протестует, ибо в ЖКК читаю, что эти группировки относятся к документу и строкам документа.
|
|||
37
Prog111
09.03.16
✎
15:51
|
(35) Там 100 рублей, а там - 200 рублей. И это не мне нужно, а пользователям)
|
|||
38
Злопчинский
09.03.16
✎
15:53
|
(36) НомерСтроки - если запрос к документам (а не к регистру) или к регистру, в котором привязаны номера строк.
. есть еще Функция ЧтоТо=Счётчик(); воткни ее после группировки документ и посмотри что получится |
|||
39
Prog111
09.03.16
✎
15:54
|
(38) У меня запрос именно к регистру.
|
|||
40
Масянька
09.03.16
✎
15:56
|
(39) Та, ё-моё (тут всё вырезано и замазано)...
|
|||
41
Prog111
09.03.16
✎
15:56
|
Спасибо за замечания, пойду пробовать. Если не получится - то распишу более подробно, с картинками))
|
|||
42
Злопчинский
09.03.16
✎
15:57
|
(37) эти 100 рублей и 200 рублей - ОДИНАКОВЫЕ - их не различишь к чему они относятся. и 100 руб и 200 руб относятмя к "заказчик1, подрядчик1". если пользователю важно занть что 200 рублей - то он захочет увидеть за что эти 200 рублей - то есть третий член кортежа, например "статья работ". если это неважно (статья работ) - то и неважно разделение на 100 и 200.
Ибо "заказчик1, подрядчик1" 300 может быть разложено (правильно!) "заказчик1, подрядчик1" 100 "заказчик1, подрядчик1" 200 а может быть разложено (неправильно!) "заказчик1, подрядчик1" 150 "заказчик1, подрядчик1" 150 и если у тебя нет "статьи работа" (третьего уточняющего измерения - ты не сможешь сделать вывод что к чему относится. и какие цифры правильные. а какие нет. |
|||
43
Злопчинский
09.03.16
✎
15:59
|
Ёпрст от этого беспредела наверное валерьяну пьет, или котов гладит...
|
|||
44
Злопчинский
09.03.16
✎
16:01
|
такое деление с подробностями что 300 состоит из 100+200 могу представить только если надо оценить некую "емкость" - то есть сумма получена крупными подрядами, или мелкими... но сомневаюсь, что именно это нужно в данном случае... ибо тогда уже надо быбло бы считать распределение пордряодов по величинам сумм, а не их тупой перечень выводить...
|
|||
45
trad
09.03.16
✎
16:49
|
чОрным запросом движения детально не получить.
либо прямым запросом. либо перебором движений документа. |
|||
46
trad
09.03.16
✎
16:50
|
давайте лучше поговорим о том, являются ли несколько движений документа по регистру цепочкой движений или нет?
) |
|||
47
Злопчинский
09.03.16
✎
16:58
|
(46) являются.
|
|||
48
trad
09.03.16
✎
16:59
|
(47) согласен
|
|||
49
Prog111
09.03.16
✎
19:46
|
Возвращаясь к написанному....
В общем, почему надо получать движения регистра: на самом деле показателей (измерений и реквизитов) в записи регистра много, и показывать кучу группировок в отчете становится - не очень информативно и наглядно. Нужно 3-4 группировки, а дальше нужно показывать уже просто список движений, без дополнительных группировок. Это во-первых. Во-вторых, как я сталкивался, запрос в 7.7 поддерживает только 7-8 уровней группировок, а дальше уже идёт ограничение на уровне платформы, поэтому физически не смогу показать 9 и более группировок. Пробовал группировки "Документ" - выдает только уровень документа. Группировка "НомерСтроки" выдет строки документа (а нужны движения регистра). |
|||
50
mehfk
09.03.16
✎
19:50
|
Смотри (3).
|
|||
51
Злопчинский
09.03.16
✎
19:51
|
(49) вот ты упорный дятел
|
|||
52
Злопчинский
09.03.16
✎
19:53
|
Еще раз
Список движений без дополнительных группировок не представляет ценности Ибо такие движения друг от друга ничем не отличаются |
|||
53
Prog111
09.03.16
✎
19:56
|
(51) Московские пробки сказываются на настроении?
|
|||
54
Prog111
09.03.16
✎
19:57
|
(52) Это пользователь / заказчик решает, хочет он видеть список движений или только группировки.
|
|||
55
Злопчинский
09.03.16
✎
19:57
|
Сделай штатный отчет как я выше написал
Группировка заказчик, подрядчик, доекмент, сумма При жмаке юзверем по нижней группировке - а тебе известен документ заказчик и подрядчик - делай тупую выборку движений документа и показывай Или для начала тупо сделай три группировки как выше В обходе группировок для самой нижней группировки документа считывай движения документа и выводи в отчет Работы на 10 минут для тестового варианта, а ты уже день мусолишь Тем более что я скайп онлайн да нще и безвазмезна |
|||
56
Prog111
09.03.16
✎
19:58
|
(52) Согласитесь, у всех разное представление о ценности той или иной информации.
|
|||
57
Злопчинский
09.03.16
✎
19:58
|
(53) мне пофиг
Я сегодня принял волевое решение в офис не ездить |
|||
58
Злопчинский
09.03.16
✎
20:00
|
(56) не соглашусь
Ибо видя две совершенно одинаковые записи только в одной 100 а в другой 200 любой вменяемый пользователь если ему нужна такая информация с делением на 100 и 200 - сразу же захочет увидеть почему здесь 109 а злесь 200 Тем не менее вариант решения есть я выше написал Изготовить его - дело 10 минут |
|||
59
Prog111
09.03.16
✎
20:00
|
(55) Это у вас день, я вопросом занялся под конец рабочего дня, потом поездки, купания детей и т.п.. Сейчас вот только затестил отчет с новыми методами группировок.
|
|||
60
Злопчинский
09.03.16
✎
20:02
|
(59) ну покажи код который получился
|
|||
61
Prog111
09.03.16
✎
20:02
|
(58) Там разница не только в 100 или 200, но ещё и по адресам, инженерам и куче всего. Но по адресам и инженерам группировки не нужны, нужен просто список движений, где адрес или инженер - не группирующая строка, а просто колонка.
|
|||
62
Prog111
09.03.16
✎
20:04
|
(55) "делай тупую выборку движений документа и показывай ". Ну вот вопрос у меня в этом и был - есть ли типовой механизм как в восьмерочном запросе или нужно по мере получения выборки в запросе обращаться к промежуточным результатам запроса (например, документу) и уже делать выборку дополнительную...
|
|||
63
Злопчинский
09.03.16
✎
20:04
|
(61) угу добрались наконец до какогото просветления
|
|||
64
mehfk
09.03.16
✎
20:04
|
(61) Данные из реквизитов регистра?
|
|||
65
Prog111
09.03.16
✎
20:05
|
(64) И из реквизитов, и из измерений.
|
|||
66
Злопчинский
09.03.16
✎
20:06
|
(62) а ты думаешь что восьмерка эти детальные записи из воздуха берет? Точно также тянет
|
|||
67
Злопчинский
09.03.16
✎
20:07
|
Вот насчет ограничения количества группировок в запросе не слышал
Поэтому сомневаюсь |
|||
68
Злопчинский
09.03.16
✎
20:09
|
Если делать красиво то альтернативы нет - только прямой запрос
А так - три группировки с консолидацией цифр на первых двух уровнях, а на третьем - выбором тупо движений документа |
|||
69
Prog111
09.03.16
✎
20:15
|
(67) Вот отрывок с форума про ограничения: "...Ограничение типа «8 (9,10,11,100500) группировок» — это ограничение не 1с 7.7, а ограничение формата dbf (ну и некоторых личностей ) вызванное вот чем (цитирую раздел ИТС):
«…При выполнении Запроса формируется временный файл для хранения данных в формате dbf. Сортировка и группировка данных осуществляются посредством создания соответствующих индексов в формате cdx. Индексы в файлах cdx имеют два ограничения: на длину ключа равную 240 байтам и, на длину индексного выражения равную 255 байтам.Размер группировки в ключе зависит от типа данных:Строка Размер строки + 1 (байт)Число Размер числа + 1 (байт)Дата 10(байт)Перечисление 10(байт)Справочник одноуровневый 10(байт)Справочник многоуровневый «без групп» 19(байт)Справочник многоуровневый 20(байт)Справочник неопределенного вида 14(байт)Документ 10(байт)Документ неопределенного вида 14(байт)Если длина ключа индекса группировки больше 240 байт, то выводится сообщение об ошибке:»Длина индекса превышает максимальную длину и не может быть уменьшена»Индекс сортировки содержит помимо информации о группироках, информацию об упорядочиваниях и его длина заведомо больше длины ключа индекса группировки. Для индекса сортировки считается возможным сокращение длины строкровых полей упорядочивания..." |
|||
70
Злопчинский
09.03.16
✎
20:20
|
(69) угу спсб
За туеву хучу лет никогда не сталкивался с необходимостью вывода большого еоличества группировок, ибо нах никому это не надо... |
|||
71
Злопчинский
09.03.16
✎
20:22
|
А тебе по сути нужен не отчет как выясняется а практически реестр движений
|
|||
72
Злопчинский
09.03.16
✎
20:24
|
И у тебя получается что регистр с несколькими измерениями и туевой зучей справочных реквизитов для движений...
|
|||
73
Prog111
09.03.16
✎
20:28
|
(71) Нужен очень и очень детализированный отчет. Контора бюджетная, поэтому нужно отображать все нюансы в отчете. На разговор о целесообразности этого, думаю, не стоит тратить времени))
|
|||
74
Злопчинский
09.03.16
✎
20:30
|
(73) ну так в итоге написал оичет или до сих пор страдаешь? ;-)
|
|||
75
Prog111
09.03.16
✎
20:34
|
(74) Ещё нет) В выборке движений тоже ведь надо будет отбирать движения по условиям. В одном документе могут быть несколько показателей, которые сидят в табличной части, и по которым идет группировка.
|
|||
76
torgm
09.03.16
✎
20:38
|
Пипец
В среднем для анализа используются три группировке, все остальное расшифровками. Что бы отследить вручную восемь уровней это да! |
|||
77
Злопчинский
09.03.16
✎
20:39
|
(75) проблема в чем
Обзови в запросе группировки как реквизиты документа А при выборке движений документа циклом прокрути значения фильтра по атрибутам регистра и все |
|||
78
Злопчинский
09.03.16
✎
20:41
|
(76) бюджет!!!
Бюджету очень важно Что десять силикатных кирпичей положил кирпичник юсуф с окладом 10 тыс, а другие десять силикатных кирпичей положил кирпичник Махмуд с окладом 10 тыс |
|||
79
Это_mike
09.03.16
✎
20:43
|
А группировка СтрокаДокумнта не поможет?
Впрочем, я черные запросы так и не познал... |
|||
80
Это_mike
09.03.16
✎
20:46
|
(76) это надо в кубик запихивать и там крутить... У мню вроде 12 разрезов учета было...
|
|||
81
Злопчинский
09.03.16
✎
20:46
|
(79) если в регистре строка документа привязана - то поможет
Но если у автора на строку документа генерятся несколько ОДНОРОДНЫХ записей (я это с трудом представляю) - то не поможет даже привязка строки в документе Хотя например можно посмотреть можно ли в привязку номера строки в регистр засунуть произвольное число |
|||
82
Злопчинский
09.03.16
✎
20:47
|
Если можно тогда вуаля
Группировка строка и все |
|||
83
Prog111
09.03.16
✎
20:51
|
(81) На одну строку документа генерятся записи с разными инженерами. На один документ проставляется несколько инженеров и суммы в табличной части делятся поровну на количество инженеров. Поэтому 1 строка документа = несколько записей регистра с практически одинаковыми суммами, но с разными инженерами.
|
|||
84
Prog111
09.03.16
✎
20:54
|
(81) Предлагаете в методе Привязыватьстроку(НомерСтроки) ставить не номер строки документа, а свой номер?
|
|||
85
Злопчинский
09.03.16
✎
20:58
|
(84) угу, простой счетчик от 1 до N - по количеству записываемых движений. Тогда делаешь запрос где в переменных описываешь все нужные тебе уникальные переменные и делаешь группировку Заказчик-подрядчик-Документ-Строка
|
|||
86
Это_mike
09.03.16
✎
20:59
|
Сделал бы прямым запросом и не трахал мозг себе и людям
|
|||
87
Злопчинский
09.03.16
✎
21:01
|
(83) заказчик-подрядчик-инженер
- что еще? |
|||
88
Prog111
09.03.16
✎
21:04
|
(86) База на DBF.
|
|||
89
Злопчинский
09.03.16
✎
21:05
|
(88) ты не поверишь. там тоже работают прямые запросы.
|
|||
90
Prog111
09.03.16
✎
21:09
|
(89) Так это же ещё надо изучать, как писать прямые запросы! Тут со встроенными бы разобраться)
|
|||
91
mehfk
09.03.16
✎
21:14
|
(90) Попробовав единожды прямые ты уже никогда не захочешь возвращаться на "черные запросы".
|
|||
92
Prog111
09.03.16
✎
21:27
|
(91) Они ближе к восьмерочным?
|
|||
93
Злопчинский
09.03.16
✎
21:55
|
(92) ты не поверишь - это восьмерочные дапросы попытка сделать чтото вменяемое, близкое к прямым запросам
|
|||
94
Prog111
09.03.16
✎
22:32
|
Чтобы не плодить тем, задам здесь вопрос - что-то не срабатывает фильтр при получении данных по регистру:
Пока Запрос.Группировка("Док") = 1 Цикл Рег = СоздатьОбъект("Регистр.СанУборка"); Рег.УстановитьФильтр(Запрос.ОбъектФинансирования, , Запрос.Подрядчик, Запрос.Инженер, Запрос.Договор, , Запрос.ВидыРемонта, Запрос.Док, Запрос.Расшифровка); Рег.ВыбратьДвиженияДокумента(Запрос.Док); Пока Рег.ПолучитьДвижение() = 1 Цикл выдает все записи, хотя по фильтру должно выдаваться меньше записей. |
|||
95
KoZuB
09.03.16
✎
22:47
|
(94) значения в фильтре. По непустым и фильтрует.
|
|||
96
Prog111
09.03.16
✎
22:49
|
(95) Прочитал, что "УстановитьФильтр" не действует на "ВыбратьДвиженияДокумента".
|
|||
97
KoZuB
09.03.16
✎
22:51
|
(96) )) угу. Просто ВыбратьДвижения()
|
|||
98
KoZuB
09.03.16
✎
22:53
|
(97) +(Запрос.Док.ДатаДок,Запрос.Док.ДатаДок)
|
|||
99
Злопчинский
09.03.16
✎
23:24
|
Рег = СоздатьОбъект(..) - вынеси наверх перед циклами
|
|||
100
Масянька
10.03.16
✎
08:07
|
Сотка... Ух ты :)
|
|||
101
Масянька
10.03.16
✎
08:07
|
Таки я не поняла - получилось у ТС или нет?
|
|||
102
Prog111
10.03.16
✎
11:04
|
(101) Получилось, но я думал, что будет более простой механизм.
|
|||
103
Злопчинский
10.03.16
✎
12:38
|
(102) это вам, восьмерочным кнопкотыкам, не галочки расставлять... ;-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |