|
Очень долго формируется отчет | ☑ | ||
---|---|---|---|---|
0
prilforreal
18.07.17
✎
14:17
|
Добрый день, прошу вашей помощи!
Строю отчет в скд, в в конструкторе запроса, добавляю необходимые измерения из регистра, один реквизит из табличной части документа и ставлю условие - период, связи через левое соединение, отчет грузится невероятно долго, хотя к нему нужно еще одно измерение другого регистра прикрепить с условием отбора... вот текст запроса: ВЫБРАТЬ ДилЗаказТабличнаяЧасть1.Срок КАК Срок, Потолки.Код, Потолки.Заказчик, Потолки.Материал, Потолки.Площадь ИЗ РегистрНакопления.Потолки КАК Потолки ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДилЗаказ.ТабличнаяЧасть1 КАК ДилЗаказТабличнаяЧасть1 ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок ГДЕ ДилЗаказТабличнаяЧасть1.Ссылка.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода СГРУППИРОВАТЬ ПО ДилЗаказТабличнаяЧасть1.Срок, Потолки.Код, Потолки.Заказчик, Потолки.Материал, Потолки.Площадь |
|||
1
Джинн
18.07.17
✎
14:32
|
Странное какое-то соединение:
ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок |
|||
2
Ц_У
18.07.17
✎
14:32
|
ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок
|
|||
3
mehfk
18.07.17
✎
14:35
|
(0)
Регистр - шляпа Документ - шляпа Запрос - шляпа |
|||
4
prilforreal
18.07.17
✎
14:40
|
(1) Потолки.Регистратор.ТабличнаяЧасть1.Срок = илЗаказТабличнаяЧасть1.Срок
Так вернее будет? |
|||
5
prilforreal
18.07.17
✎
14:41
|
(3) Шляпник, дай совет лучше)
|
|||
6
Любопытная
18.07.17
✎
14:43
|
какой-то ужас в (0)
|
|||
7
vicof
18.07.17
✎
14:43
|
(5) Позовите программиста
|
|||
8
Ц_У
18.07.17
✎
14:44
|
(4) если у тебя есть срок и регистратор нахрена соединять?
|
|||
9
vicof
18.07.17
✎
14:44
|
(3) +100500
|
|||
10
Любопытная
18.07.17
✎
14:44
|
(5) почему запрос к реальной таблице регистра? Почему таблица регистра слева, а ТЧ документа справа? Что вы вообще собрать хотите?
|
|||
11
catena
18.07.17
✎
14:49
|
(4)Да, сделай так. У тебя количество записей регистра умножится на количество строк в документе.
|
|||
12
prilforreal
18.07.17
✎
14:53
|
(10) Из таблицы регистра вытаскиваю почти все, из ТЧ док-а только одно поле-Срок, нужен отчет, без группировок, по колонкам- срок - код - материал - площадь - заказчик. Сперва это, после приделать регистратор состояния потолка, через него отбирать только готовые.
|
|||
13
Любопытная
18.07.17
✎
14:54
|
(12) у тебя выбирается вся таблица регистра без ограничения вообще. Уверен, что тебе это надо?
|
|||
14
prilforreal
18.07.17
✎
15:00
|
(12) Нет, мне нужно только 4 измерения, соединение начал делать по той причине, что сроки начали прописываться там, где даже нет записей о них, и в стремлении к соответствию данных попробовал соединить таблицы
|
|||
15
Любопытная
18.07.17
✎
15:02
|
а, т.е. ты даже не понимаешь о чем я говорю. Ну ок.
Тогда точно (7) |
|||
16
Avalone2010
18.07.17
✎
15:04
|
(12)В вашем регистре добавьте реквизит - срок. Не придеться выполнять соединения.
|
|||
17
prilforreal
18.07.17
✎
15:10
|
(15) я же ответил, что вся таблица регистра мне не нужна, только данные по четырем измерениям, ограниченные во времени и критериями отбора. Все же программисты рождаются обученными и квалифицированными.
|
|||
18
Джинн
18.07.17
✎
15:13
|
(17) Не обученные и не квалифицированные учатся и повышают свою квалификацию. Тут (3) прав - архитектура ээ..., в общем в армию тоже не годится. Отсюда дальше лезут всяческие проблемы, с которыми Вы пытаетесь героически бороться. Нет рядом никого, кто бы хотя бы концептуально архитектуру решения набросал? Коллеги какие-нибудь?
|
|||
19
Avalone2010
18.07.17
✎
15:14
|
(0)Нужна проверка заполнения срока по регистру?Типа в документе срока нет а в регистре он вдруг появился?
|
|||
20
Любопытная
18.07.17
✎
15:16
|
(17) Вы не поняли о чем я говорю. У вас берется вообще вся таблица. Представьте себе регистр в виде большого шкафа. В шкафу на полках стоят некие папки с документами. Вам нужно выбрать некоторые документы. И вы для этого берете и весь шкаф переворачиваете. Зачем вы так делаете?
|
|||
21
troekurov1991
18.07.17
✎
15:18
|
(0) Бери стандартную обработку "Консоль запросов", идет вроде с ИТС и отлаживай в ней свой запрос. Вначале задай более жесткие условия чтобы запрос не завис и что-то хотя бы вывел, потом убирай лишние условия
|
|||
22
troekurov1991
18.07.17
✎
15:20
|
(7) (20) Нехорошо издеваться над ребенком
|
|||
23
Любопытная
18.07.17
✎
15:21
|
(22) я не издеваюсь, я пытаюсь объяснить. Вопрос в (0) - почему долго строится отчет, я на пальцах объясняю почему он долго строится.
|
|||
24
troekurov1991
18.07.17
✎
15:24
|
(23) Я сомневаюсь что у него настолько большая даже файловая база, чтобы были проблемы с производительностью из-за того что он телегу впереди лошади ставит. В его случае лошадь будет толкать телегу достаточно быстро если было бы наоборот.
|
|||
25
Любопытная
18.07.17
✎
15:27
|
(24) Во-первых, мы не знаем. Во-вторых, это не повод писать тупой код. Стремиться к хорошему нужно всегда.
|
|||
26
troekurov1991
18.07.17
✎
15:27
|
(0) Сколько в регистре накопления "Потолки" у Вас записей?
|
|||
27
troekurov1991
18.07.17
✎
15:29
|
(25) Тупой не тупой, главное что работает, это для новичка большое достижение. А искать узкие места в плане производительности должен архитектор, а не новичок.
|
|||
28
Любопытная
18.07.17
✎
15:30
|
(27) И вы считаете себя хорошим специалистом?
|
|||
29
troekurov1991
18.07.17
✎
15:33
|
(28) Нет я знаю немного больше новичка, но успешно решил в одиночку несколько больших проектов.
|
|||
30
troekurov1991
18.07.17
✎
15:34
|
(28) Заказчик считает меня хорошим специалистом))
|
|||
31
Любопытная
18.07.17
✎
15:34
|
(29) я прям представляю эти решения.
|
|||
32
piter3
18.07.17
✎
15:34
|
(30) может просто разницы не понимает
|
|||
33
Ц_У
18.07.17
✎
15:34
|
(29) написать внешнюю печатную форму - это не проект
|
|||
34
troekurov1991
18.07.17
✎
15:38
|
(33) 1) Перенес почти все данные из 1С 7.7 Комплексная в 1С:8.2 Комплексная автоматизация
2) "с нуля" разработал конфу, перенес данные из старой программы Delphi, и организовал обмен с 1С:ЗУП? Продолжать?)) |
|||
35
piter3
18.07.17
✎
15:39
|
конечно продолжай
|
|||
36
prilforreal
18.07.17
✎
15:40
|
По порядку, беру из регистра Потолки необходимые измерения- колонки которые будут выводиться в отчете, (Площадь, Материал, Заказчик, Код) т.к. реквизиты из табличной части документа регистратора я включить в запрос не могу, приходится записи подтягивать из реквизита табличной части документа (ДокументДилЗаказ.ТабличнаяЧасть1.Срок) (23) записей в регистре накопления потолки пока несколько тысяч, т.к. база молодая, но в день появляется около сотни записей. Далее устанавливаю связь через регистратор, коллега подсказал связь делать через Регистратор.Документ.Ссылка на Доккумент.ТабличнаяЧасть.Срок. Условие пока только на период.
|
|||
37
troekurov1991
18.07.17
✎
15:40
|
(35) Теперь Вы сэр)))
|
|||
38
piter3
18.07.17
✎
15:41
|
(37) тут пальцами ты машешь,мне это не нужно)
|
|||
39
troekurov1991
18.07.17
✎
15:41
|
(36) Как долго формируется отчет, больше 15 секунд?
|
|||
40
troekurov1991
18.07.17
✎
15:41
|
(38) Я так и знал))
|
|||
41
troekurov1991
18.07.17
✎
15:44
|
(33) У меня на прошлой работе была внешняя обработка в ней учитывалось рабочее время и считалась зарплата, вместо того чтобы изменять ЗУП менялась эта обработка, в ней было 15 тыс. строк кода, я бы назвал ее тоже проектом
|
|||
42
prilforreal
18.07.17
✎
15:46
|
(20) Мне и нужны все записи о потолках в периоде, позже будет отбор по состоянию потолка, но так как я пока не могу связать регистр с документом не берусь туда еще один регистр СостояниеПотолков привязывать
|
|||
43
prilforreal
18.07.17
✎
15:46
|
(39) больше 15 минут
|
|||
44
Любопытная
18.07.17
✎
15:47
|
Ой нет, у меня слов нет. ТС, тебе тут товарищ "Троекуров" пусть помогает, вы, похоже, нашли друг друга
|
|||
45
prilforreal
18.07.17
✎
15:51
|
(44) Любопытная, спасибо конечно, но может подскажете, чем лучше мне здесь виртуальная таблица и как ее использовать вместо реальной.
|
|||
46
vicof
18.07.17
✎
15:54
|
(45) Посмотри курс по запросам от @Groovy хотя бы. Чтобы основы основ понимать.
|
|||
47
youalex
18.07.17
✎
15:54
|
(43)
>ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок 1) ".Ссылка" здесь не нужно, это лишнее соединение 2) у тебя во всех документах по одной строке? У тебя получается что все строки ТЧ одного документа - соединяются со всеми записями регистра по этому документу. Т.е. если в документе 100 строк (и записей сто) - то в результат по этому доку выведется 100*100 = 10 000 записей |
|||
48
prilforreal
18.07.17
✎
15:58
|
(45) Спасибо, обязательно посмотрю, вся проблема в том, что с связанными таблицами сталкиваюсь впервые... (43) то есть мне достаточно использовать
Потолки.Регистратор= ДилЗаказТабличнаяЧасть1.Срок? Нет, в документе то количество строк, сколько потолков менеджер к нему прикрепил. |
|||
49
troekurov1991
18.07.17
✎
15:58
|
(43) >ПО Потолки.Регистратор.Ссылка = ДилЗаказТабличнаяЧасть1.Срок
Ты дату или число (срок) сравниваешь с документом (регистратор)? |
|||
50
prilforreal
18.07.17
✎
16:01
|
(49) Дату.
|
|||
51
LuciferArh
18.07.17
✎
16:03
|
(50) А зачем?
|
|||
52
troekurov1991
18.07.17
✎
16:04
|
(50) Сравнивай одинаковые типы, а то ты дату с ссылкой на документ сравниваешь
|
|||
53
troekurov1991
18.07.17
✎
16:05
|
(50) Отчет тебе вообще правильную таблицу выдает?
|
|||
54
prilforreal
18.07.17
✎
16:05
|
(52) тогда так
ДилЗаказТабличнаяЧасть1.Срок=Регистратор.ТабличнаяЧасть1.Срок |
|||
55
prilforreal
18.07.17
✎
16:07
|
(53) Последний раз таблицу выдавал правильную, но происходило как заметил (47), число записей по одному документу дублировалось в количестве его строк
|
|||
56
vicof
18.07.17
✎
16:09
|
(54) мыши плакали и кололись
|
|||
57
prilforreal
18.07.17
✎
16:11
|
(56) Как правильно сделать соединение, я скоро уже сам мышью плачуще-колющейся стану...
|
|||
58
vicof
18.07.17
✎
16:14
|
(57) Правильно не соединения делать, а грамотно спроектировать структуру решения.
|
|||
59
prilforreal
18.07.17
✎
16:17
|
Может все на поверхности и мне нужно добавить не один лишь реквизит Срок, а вместе с табличной частью? Тогда и связь автоматически заполняется...
ПО Потолки.Регистратор = ДилЗаказ.Ссылка |
|||
60
troekurov1991
18.07.17
✎
16:20
|
(59) ТАк пробуй че спрашиваешь!
|
|||
61
prilforreal
18.07.17
✎
16:28
|
Отчет начал формироваться, быстро и без дублей, всем большое спасибо за терпение!)
|
|||
62
troekurov1991
18.07.17
✎
16:39
|
(31) Любопытная скушала?))
|
|||
63
Любопытная
18.07.17
✎
23:14
|
(62) ты прикалываешься? Хотя о чем это я... Да, вы великие спецы, постараюсь держаться от вас подальше, чтобы не дай бог не навредить вашей репутации.
|
|||
64
Diman000
18.07.17
✎
23:35
|
(61) Главное понять почему Регистратор.Ссылка это ужасно.
|
|||
65
H A D G E H O G s
19.07.17
✎
00:42
|
РН Потолки
РС Стены АВ Днище |
|||
66
Злопчинский
19.07.17
✎
05:04
|
Пусть автор почитает совсем небольшую книжку
SQL для чайников Автор вроде Тейлор Иначе он нихрена не поймёт как и зачем таблицы соединяются |
|||
67
Diman000
19.07.17
✎
06:58
|
Тут еще "1С в SQL для чайников" нужен. Если есть такой.
Для любой таблицы 1С ".Ссылка" это плохо и бессмысленно. Но Регистратор это часто много-много таблиц, поэтому в нем любые поля через точку это совсем беда бедная и потеря потерь потерь, если не типизировать. |
|||
68
prilforreal
19.07.17
✎
08:24
|
(66) Спасибо, прочту)
|
|||
69
troekurov1991
19.07.17
✎
08:56
|
(68) Да нафиг тебе эти книжки по SQL, это уж потом для общего развития. Для начала набери на ютубе: "1С запросы" и вдумчиво послушай там курс видеоуроков и в обработке "Консоль запросов.epf" поиграйся с запросами.
|
|||
72
prilforreal
19.07.17
✎
11:21
|
(69) Благодарю за материал, буду развиваться)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |