|
Сложные запросы в 1С | ☑ | ||
---|---|---|---|---|
0
Maksu_
09.08.22
✎
11:48
|
А часто ли в вашей практике встречаются сложные запросы (вложенные, левый джойн и проч.)?
|
|||
1
Волшебник
09.08.22
✎
11:49
|
Левый джойн часто бывает, а вот правый джойн уже признак того, что запрос написан вручную, с любовью.
|
|||
2
Галахад
гуру
09.08.22
✎
12:02
|
Интересно, а простые это какие?
|
|||
3
Dmitrii
гуру
09.08.22
✎
12:08
|
(0) Если вложенные запросы и левые джойны это примеры сложных запросов, то в моей практике простые запросы практически не встречаются.
Какой-то тупой опрос. |
|||
4
H A D G E H O G s
09.08.22
✎
12:10
|
Автор хочет в мир 1С и пытается задавать вопросы из жизни.
|
|||
5
Kassern
09.08.22
✎
12:11
|
(0) а что для вас простой запрос? Это просто обращение к одной таблице?)
|
|||
6
IVT_2009
09.08.22
✎
12:12
|
Очень часто. Обычно текст запроса на несколько экранов.
|
|||
7
Kassern
09.08.22
✎
12:14
|
(6) это еще ладно на несколько экранов, а вот когда он в 100500 менеджерах таблиц, а текст запросов еще программно собирается из кучи кусков - вот это уже веселее)
|
|||
8
mikecool
09.08.22
✎
12:14
|
(0) нет, сынок, это фантастика
|
|||
9
Smallrat
09.08.22
✎
12:16
|
(0) какие джойны и вложенные? ЗУПа вам покажет что такое сложные запросы.
|
|||
10
Kassern
09.08.22
✎
12:16
|
(9) это я как и пытался описать в (7) ))
|
|||
11
NorthWind
09.08.22
✎
12:21
|
(2) Выбрать * из Справочник.Номенклатура, наверно
|
|||
12
lubitelxml
09.08.22
✎
12:22
|
(9) (10) в УТ аналогично
|
|||
13
Kassern
09.08.22
✎
12:22
|
(11) Справочники.Номенклатура.Выбрать() - еще проще (по факту такой же запрос)
|
|||
14
Kassern
09.08.22
✎
12:23
|
(12) там хоть не так жестят со менеджерами таблиц
|
|||
16
Maksu_
09.08.22
✎
13:07
|
(4) Возможно. Пустите?
|
|||
17
mistеr
09.08.22
✎
13:10
|
(0) Вложенные и левый джойн это не сложные. Сложные это когда от количества джойнов рябит в глазах, а ты отчаянно пытаешься понять, это поле в условии с этого уровня вложенности или с предыдущего. :)
|
|||
18
Жан Пердежон
09.08.22
✎
13:11
|
мне вот сейчас в наследство достался запрос с 160+ временных таблиц,
просят оптимизировать, говорят медленно работает... |
|||
19
Kassern
09.08.22
✎
13:18
|
(18) и сколько по времени открывается конструктор запроса?
|
|||
20
RomanYS
09.08.22
✎
13:22
|
(1) В какой-то момент начал ловить случаи, когда конструктор делает правые соединения. Был удивлён)
|
|||
21
Волшебник
09.08.22
✎
13:23
|
(18) Может временных таблиц не хватает?
|
|||
22
Smallrat
09.08.22
✎
13:27
|
Вспомнил еще одну жесть - типовые шаблоны RLS, как это читать можно я до сих пор не вкуриваю
|
|||
23
magnum2
09.08.22
✎
13:40
|
(17) А как разбираться в таком?
|
|||
24
mistеr
09.08.22
✎
13:44
|
(23) С помощью консоли запросов ИР
|
|||
25
Said_We
09.08.22
✎
19:13
|
(0) Если хочешь изучать запросы, то точно не на 1С.
1С использует стандарт SQL-92 + небольшие расширения в виде итогов, иерархии.... Если посмотришь на запросы, которые используют люди которые пишут не на 1С - будешь чувствовать себя... В общем запросы сейчас пишут короче и понятнее, решая подобные задачи. Под задачами я понимаю не задачи конфигурации, а более короткие и простые. Например, разбить на периоды последовательность и дат. Рекурсивных запросов в 1С нет. Оконных функций в 1С нет. PIVOT, UNPIVOT в 1С нет.... Список можно продолжать. И это только то, что касается простой выборки данных. |
|||
26
CepeLLlka
09.08.22
✎
20:56
|
(22)Такая же фигня :) Было пару раз при помощи ИР вроде научился их вкуривать, но забыл как страшный сон :)
|
|||
27
H A D G E H O G s
09.08.22
✎
21:12
|
(0) Если хочешь изучать запросы - то смело можешь использовать 1С.
1С позволяет строить запросы так, как они и были изначально задуманы - с минимально необходимым синтаксисом минимально избыточных данных. Остальная шлянь в виде итогов, рекурсий и представлений и не нужна в трехзвенках и должна обрабатываться кодом, без всяких извращений. |
|||
28
SleepyHead
гуру
10.08.22
✎
06:56
|
(18) "просят оптимизировать, говорят медленно работает..."
Успевают чай попить два раза? |
|||
29
Bigbro
10.08.22
✎
07:51
|
(28) зато можно заработать всеобщую благодарность и возможно премию ускорив весь этот беспредел на порядок. или даже два.
мне как то удалось отчет разогнать в 60+ раз. чтобы вместо 3,5 часов 3 минуты с хвостиком формировался )) до меня с этим жили и мучались 3 с лишним года. |
|||
30
Skom2
10.08.22
✎
08:22
|
(28) это они себестоимость в ерп не считали просто)
|
|||
31
Said_We
10.08.22
✎
11:09
|
(27) Задумано когда? 30 лет назад?
ROW_NUMBER() в 1С через жо.. реализована. Какие-то надуманные ограничения. Простейшие RANK(), DENSE_RANK() - отсутствуют как класс. Хрен с ним с разделением на группы NTILE() - используется не часто. Хрен с CHOOSE() и IIF(), да нагляднее короче и понятнее, но не на столько важно. Не только короче и нагляднее, но и быстрее такие функции как LAG(), LEAD(), но важней же как оно задумывалось до 92 года, пока в стандарт SQL-92 попало. Все придумали колесо, а 1С продолжает волоком таскать. Как-то так мне это видится. |
|||
32
mistеr
10.08.22
✎
14:53
|
(31) А часто они нужны в 1С? Только если в отчетах, так в СКД они почти все есть.
|
|||
33
Arbuz
10.08.22
✎
15:35
|
(29) > можно заработать всеобщую благодарность и возможно премию ускорив весь этот беспредел на порядок. или даже два.
Неужели деинсталлировав 1С? (32) Зачем тащить всё в СКД, если можно в запросе отфильтровать/сгруппировать/посчитать сразу? |
|||
34
Arbuz
10.08.22
✎
15:35
|
+(33)
*можно было бы* |
|||
35
Жан Пердежон
10.08.22
✎
16:04
|
(31) до SQL-92 было только внутреннее соединение, а оконные функции вообще только в 2003 появились
|
|||
36
ptiz
10.08.22
✎
16:09
|
(0) Сложный запрос бывает и без джойнов.
Например, этот для многих сложный, не могут сказать результат: ВЫБРАТЬ СУММА(1) ИЗ Справочник.Номенклатура |
|||
37
Said_We
10.08.22
✎
23:56
|
(35) В стандарте появились почти 20 лет назад. В оракле были до выхода стандарта.
Вы считаете, что для того что бы появиться в 1С оконным функциям 20-30 лет это слишком быстро? Да в SQLite появились они в 2018 году. Но во первых уже 4 года назад как появились, а во вторых это БЕСПЛАТНЫЙ SQL сервер, который на сейчас лениво пишет всего один человек. По факту иногда уделяет время. Да и задачи SQLite другие обычно решает по объемам баз. Почему этого нет в 1С? Ответ на поверхности. Есть бесплатный SQL Постгри. Необходимо отказаться от файловой в пользу какой-то версии на Постгри и дальше можно всё написать быстрее. Но как это так отказаться от файловой? Ай яй яй. По факту после отказа от файловой задача будет стоять - перевод текста с языка запросов 1С в язык запросов SQL сервера на которой крутится база. По факту практически 1 к 1 с русского на английский с очень мелкими нюансами. А кто пишет на английском в 1С, то ... ещё проще. Например: в MS SQL "SELECT TOP 100...", а в Постгри "SELECT ... FROM ... LIMIT 100". Синтаксис языка SQL в части выборки в самих SQL серверах очень похожи. Есть нюансы, но это мелочи. В любом случае реализация на Постгри уже есть и уже работает. Как результат не нужно тянуть бегемота из болота и тормозить развитие языка SQL в 1C, за счет собственной какой-то реализации языка SQL в файловой версии. Какие усилия необходимо предпринять - кроме как морально-волевых? Да особо никаких. После каждого выхода редакции конфигурации пользователям приходится больше действий совершать. То перенос данных, то документы генерировать или вводить, то ещё что. А тут установил 1С 8.8 (например) без поддержки файловой версии, но с Постгри вместо неё. Базу выгрузил и загрузил. Усё. Будет это? Предположу, что никогда не будет. Нет морали и нет воли. |
|||
38
Kassern
11.08.22
✎
09:17
|
(37) Вопрос тут в другом, будет спрос - будет реализация. Для 99% проектов, оконные функции могут вообще никогда не понадобиться, за глаза хватает текущего функционала. Поэтому нафига тратить время(деньги) на реализацию того, что в перспективе не принесет тебе денег(ускорит разработку)?
Сейчас работа идет к тому, чтобы было по меньше программистов и по больше консультантов имхо. Раньше допиливали конфу под нужны бизнеса. Сейчас конфы перегружены функционалом и их настройками приводят к хотелкам бизнеса в рамках коробочного решения. |
|||
39
Said_We
11.08.22
✎
10:22
|
(38) т.е. скорость разработки и поддержки за счет более короткого и понятного кода SQL запросов не важна. Скорость работы этих запросов тоже не важна.
За то мы типа ускорялись когда переходили с обычных форм на управляемые. В итоге получили такие тормоза... По моему надо честно сказать - не правильной дорогой идём товарищи. Сейчас рисуют на основе 1С исполнителя, или как там его назвали, новую платформу 1С 9.0. При этом хотят сделать на основе бесплатного, что-то платное. При этом то что сделали пока работает как-то не очень по сравнению с бесплатным. Какой-то велосипед опять изобретают. |
|||
40
Kassern
11.08.22
✎
10:33
|
(39) "За то мы типа ускорялись когда переходили с обычных форм на управляемые" - не верно. Данный переход позволил перейти в веб и в мобилки. А это актуально на сегодняшний день.
"т.е. скорость разработки и поддержки за счет более короткого и понятного кода SQL запросов не важна" - Вангую, что скорость разработки это дело не сильно увеличит, а доработка возни добавит много. В общем выбирают меньшее из зол. Вот если бы каждому второму разрабу, приходилось извращаться сторонними инструментами, чтобы реализовать оконные функции и т.д. для решения задач 1с, то 99.9% это бы внедрили и очень оперативно. "Сейчас рисуют на основе 1С исполнителя, или как там его назвали, новую платформу 1С 9.0" - поживем увидим, что получится. |
|||
41
Kassern
11.08.22
✎
10:37
|
Вот понадобилось разрабам система линейных уравнений, для решения задач расчета той же себестоимости. Контора понимала, что это упростит им жизнь, поэтому и реализовала. Как часто вы пользуетесь СЛУ в 1с?
Если разрабам для разработки будущих конфигураций нужны были оконные функции, они бы и это запилили, хотя бы для себя. |
|||
42
mistеr
11.08.22
✎
10:41
|
(37) Который год уже ты не можешь смириться с тем, что файловая еще жива. Не надоело? :)
Это меньшая из проблем 1С. Ну или одна из меньших. |
|||
43
Said_We
11.08.22
✎
10:41
|
(40) "не верно. Данный переход позволил перейти в веб и в мобилки" - вспоминаем как это преподносилось. Причиной перехода 1С называло ускорение работы и снижение нагрузки на сеть. Другими словами - просто врали. :-)
|
|||
44
Kassern
11.08.22
✎
10:43
|
(43) ну смотря как посмотреть. Давайте возьмем условную конфигурацию на 5-10тыс пользователей. Как вы на обычных формах нагрузку распределите и отчетность? Для клиент серверной версии есть множество вариантов.
|
|||
45
Kassern
11.08.22
✎
10:43
|
если же речь идет о конторе в 1-50 человек, то да, ускорение особое вы вряд ли увидите
|
|||
46
Said_We
11.08.22
✎
10:44
|
(42) На мой взгляд это одна из самых больших проблем. Сейчас условно "ларьки" частично уходят в системы, которые предлагают банки или сама налоговая.
Файловая для кого? (44) Да хоть 5 тысяч пользователей, хоть всего 5-ть. Тормозит. |
|||
47
mistеr
11.08.22
✎
10:44
|
(41) Предположу, что в данном случае дело было немного иначе. На каком-то крупном внедрении топ заказчика вышел на топа из 1С и сказал: "Какая-то маленькая программка на Си считает нашу себестоимость за полчаса, а у вас сутки! Вы там не охренели?"
|
|||
48
Kassern
11.08.22
✎
10:47
|
(47) все возможно, вот когда так будет с оконными функциями, то их таким же макаром внедрят))
|
|||
49
Said_We
11.08.22
✎
10:47
|
(45) Еще вопрос задам. Файловая никак не накладывает ограничения на запись данных в БД?
|
|||
50
Kassern
11.08.22
✎
10:47
|
(46) "Да хоть 5 тысяч пользователей, хоть всего 5-ть. Тормозит." - только вот в первом случае у вас может вообще не взлететь, там где тонкий клиент "тормозит"
|
|||
51
Said_We
11.08.22
✎
10:49
|
(50) "там где тонкий клиент "тормозит" - а условно "маленькая программка на С" вообще не тормозит и на 100 000 пользователях.
|
|||
52
Kassern
11.08.22
✎
10:50
|
(51) только вот сколько вам нужно времени, чтобы эта маленькая программа на Си обрасла таким же функционалом, как коробочная корп конфа?
|
|||
53
Kassern
11.08.22
✎
10:52
|
Сколько лет и денег вы потеряете пока такую напишите и как скоро она окупится. Еще и спецов нужно будет искать отдельных на разработку и поддержку этой программы. И полюбому она не одним Си делана будет, а целый зоопарк из технологий.
|
|||
54
Kassern
11.08.22
✎
10:52
|
С тем же успехом все можно на ассемблере написать и будет быстро, но не всегда это выгодно.
|
|||
55
Said_We
11.08.22
✎
10:54
|
(52) Вопрос не функционала, а простой отображения формы для пользователя с минимум данных. То что таких форм в 1С сотни и все они тормозят никак не оправдывает положение дел. Какая разница сколько форм тормозит. В 1С можно нарисовать с пустой конфигурации простейшую с простейшим функционалом и всё это будет тормозить.
|
|||
56
ptiz
11.08.22
✎
10:54
|
(44) Обычные форм не отменяют клиент-серверной архитектуры.
|
|||
57
mistеr
11.08.22
✎
10:54
|
(46) Ты не можешь включить Постгрю в базовую, кто ее будет чинить? Техподдержка первой линии по e-mail? Embedded версии у Постгри нет. А еще есть мобилки. В принципе, может подойти SQLite, но экономически овчинка (переписывание) выделки не стоит.
А еще остаются ларьки на 2-3 пользователя, которые не хотят к банкам. SQLite их не закрывает. |
|||
58
mistеr
11.08.22
✎
10:55
|
(49) О чем речь?
|
|||
59
Said_We
11.08.22
✎
10:56
|
(53) "а целый зоопарк из технологий" - микросервисы сейчас это называется. Как во всём есть и плюсы и минусы.
|
|||
60
Said_We
11.08.22
✎
10:57
|
(57) 1С++ 77 работает с SQLite. Хорошо работает даже.
|
|||
61
Kassern
11.08.22
✎
10:58
|
(55) "В 1С можно нарисовать с пустой конфигурации простейшую с простейшим функционалом и всё это будет тормозить" - у вас, видимо какой-то отрицательный опыт работы. Ничего не тормозит)
|
|||
62
Kassern
11.08.22
✎
11:01
|
(60) Удобно вам формы рисовать в клюшках? В клиент серверном варианте прям красота в этом деле. Накидал, все автоматом привязывается. Можешь хоть программно рисовать форму. А отчеты в клюшках как делаете, чтобы они хоть как-то приблизились к возможности которую дает СКД юзверам и разработчику?
|
|||
63
Said_We
11.08.22
✎
11:07
|
(62) В 1С++ практически полноценный SQL. Что хочешь можешь нарисовать на выходе.
1С++ было 10-20 лет назад, и не развивается. Чего вы хотите от неё? |
|||
64
Kassern
11.08.22
✎
11:09
|
(63) тогда смысл ее сейчас тут приводить, ну не будет новый мелкий бизнес подобным пользоваться. Ему проще коробочное решение купить и платить прогу на аутсоре 2 раза в неделю, чтобы он их носом тыкал и хотелки реализовывал.
|
|||
65
Said_We
11.08.22
✎
11:10
|
(64) А при чем тут мелкий бизнес?
Мелкому проще в налоговой нарисовать циферки и отчетностью не заниматься вообще. |
|||
66
АгентБезопасной Нацио
11.08.22
✎
11:11
|
(64) стоп-стоп-стоп! какие такие хотелки прогу на оутсорсе??? "Сейчас конфы перегружены функционалом и их настройками приводят к хотелкам бизнеса в рамках коробочного решения."©
|
|||
67
Kassern
11.08.22
✎
11:15
|
(66) ну так все верно. Мол хотим код товара вместо артикула выводить, а прог такой щелк по настройками и вуаля. Далее, хотим логотип наш воткнуть и т.д.
|
|||
68
Said_We
11.08.22
✎
11:23
|
(58) Да в чем в чем?
Несколько лет назад (много) в какой-то большой базе было принято решение добавить реквизит булевский или число размером 1 в регистр, не помню уже точно. И было принято решение за чем-то именно ИСТИНА заполнить по умолчанию или 1 если было числовым. Регистр большой и заполнение его средствами 1С занимал около 3 часов. Баз около 50 такого размера и надо было сделать в каждой. Средствами SQL обычный апдейт работал 3 секунды примерно. На тот момент выяснили, что 1С всё равно физически пишет не набор данных, а по одной записи набора. И делает она так, так как файловая по другому не умеет. |
|||
69
Kassern
11.08.22
✎
11:28
|
(68) А сейчас пробовали на современной платформе подобное сделать? Не припоминаю подобных проблем.
|
|||
70
mistеr
11.08.22
✎
11:30
|
(68) И что с того?
P.S. Транзакции надо было использовать. |
|||
71
СеменовСемен
11.08.22
✎
11:35
|
(68) таки 1с пишет набор. вот только набор, например, для регистра с регистратором для каждого документа свой. нет общего набора для всех документов
|
|||
72
Said_We
11.08.22
✎
11:36
|
(69) Сейчас не пробовал - задачи такой более не попадалось.
Но и ускорения работы баз в 1С при том же проведении я тоже не наблюдаю. Да проведение не аргумент - перед проведением какие-то данные как-то собираются и как-то анализируются. Тут как-то пришлось проводить документы 1 к 1 в ЗиУП 2.5 и ЗиУП 3.1. Платформа и сервер одинаковые. ЗиУП 3.1 на много медленнее проводит. Про рисование форм и отображение информации я молчу и так понятно что УФ далеко сзади. (70) Использовали. 3 часа самой быстрое чего удалось достичь. И 3 секунды простой прямой запрос средствами SQL. |
|||
73
Said_We
11.08.22
✎
11:39
|
(71) Это понятно. Но на тот момент, даже если в наборе по одному регистратору много записей писалось физически по одной.
|
|||
74
Kassern
11.08.22
✎
11:44
|
(72) " ЗиУП 3.1 на много медленнее проводит" - ну так может там всякие подписки добавились и доп проверки, по сравнению с ЗиУП 2.5?
Если взять и создать новый документ, привязать к нему 1 регистр без всяких проверок, то он будет моментально проводиться и распроводиться. Только дело в том, что в новых конфах добавляют 100500 различного функционала, которые тем, или иным образом влияют на скорость проведения документов. |
|||
75
СеменовСемен
11.08.22
✎
11:46
|
(73) никогда такого не было
|
|||
76
СеменовСемен
11.08.22
✎
11:52
|
(75) хотя нет, там же делет и инсерт
|
|||
77
mistеr
11.08.22
✎
12:05
|
(76) Как и в SQL :)
Это большая проблема 1С. И дело тут не в файловой, а в своем менеджере блокировок. |
|||
78
СеменовСемен
11.08.22
✎
12:12
|
(77) ну так раньше не было своего менеджера. полагались на скл.
и было не очень хорошо |
|||
79
Жан Пердежон
11.08.22
✎
18:33
|
(37) вместо того, чтобы ныть на форуме, можешь просто пойти и сделать, изменить жизнь к лучшему:
https://hh.ru/employer/882 |
|||
80
Said_We
11.08.22
✎
22:48
|
(79) Работали у меня знакомые в 1С. Бывшие коллеги. На сейчас работает наверное один - хотя не факт. Давно с ним не общался. А так все ушли. И дело даже не в размере оплаты труда.
Поэтому не айс. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |