|
v7: Можно ли исхитриться в 7.7 в запросе? | ☑ | ||
---|---|---|---|---|
0
Volodja
31.03.21
✎
08:22
|
Можно ли как-то исхитриться в 7.7 ?
Мне нужно, чтобы запрос отработал для заданного списка документов, т.к. в случае задания конструкции Период с НачДата по КонДата; время формирования запроса становится долгим. ТекстЗапроса = " |ОбрабатыватьДокументы ИзСпискаЗначений; .........." Запрос=СоздатьОбъект("Запрос"); Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда Предупреждение("Запрос не выполнился!"); Возврат; КонецЕсли; |
|||
1
Mikeware
31.03.21
✎
08:23
|
пользуйтесь прямыми запросами.
|
|||
2
Bigbro
31.03.21
✎
08:23
|
|Условие(мойДок в сзДок);
|
|||
3
Volodja
31.03.21
✎
08:30
|
(1) Переписывать тогда весь отчет нужно. Это я на потом оставляю пока...
|
|||
4
Volodja
31.03.21
✎
08:31
|
(2) Но тогда он все-равно лопатит за весь период с начала времен
|
|||
5
tgu82
31.03.21
✎
08:36
|
(0)ТекстЗапроса = "
|ОбрабатыватьДокументы ИзСпискаЗначений; - есть такая конструкция языка запросов? Никогда про такое не слышал |
|||
6
Volodja
31.03.21
✎
08:37
|
(5) Нет такой конструкции
|
|||
7
Volodja
31.03.21
✎
08:39
|
(5) Вот чем бы ее заменить?
Условие(мойДок в сзДок); Не совсем то? т.к. сканируется вся таблица документов, а это долго |
|||
8
Kigo_Kigo
31.03.21
✎
08:44
|
(7) Ну вы либо трусы оденьте, либо крестик снимите(с)
|
|||
9
Mikeware
31.03.21
✎
08:57
|
(5) (6) это из платформы 7.7.29, там где добавлены методы СделатьВсё(), СлелатьВсёБыстро() и СделатьВсёПравильно()
|
|||
10
tgu82
31.03.21
✎
08:58
|
(9) СоздатьОбъект("Хочу") и методы хочушные ему приделать
|
|||
11
Volodja
31.03.21
✎
09:00
|
(8) - (10) спасибо за Юмор.
Буду тогда пилить Прямой запрос |
|||
12
tgu82
31.03.21
✎
09:03
|
(11) Дв вроде выбратьдокумент и потом получитьдокумент срабатывает порой быстрее чем через запрос.
|
|||
13
Андрей_Андреич
naïve
31.03.21
✎
09:04
|
(11) Я конечно не в тему, но в большинстве своем обрабатывать надо не документы, а регистры. Запрос по документам в 95% случаев неправильно поставлена задача. Или неправильно решена.
|
|||
14
Bigbro
31.03.21
✎
09:06
|
если это произвольный список документов, не отягощенный общими признаками/реквизитами, по которым можно было бы сделать отбор фильтр условие из общего массива за тысячу лет и миллиардов документов - то дело плохо конечно.
|
|||
15
JeHer
31.03.21
✎
09:20
|
(13) допустим, документ не делает движений ни в регистрах ни в бух. итогах. Откуда брать данные?
|
|||
16
Андрей_Андреич
naïve
31.03.21
✎
09:22
|
(15) То есть спроектирована не учетная система а не пойми что. В консилиуме как лучше вырезать гланды через анус не участвую
|
|||
17
Bigbro
31.03.21
✎
09:23
|
(15) а зачем он тогда?
документ отражает хоз операцию, меняет состояние базы данных, чтобы результаты ввода документа отражались затем в различных отчетах. а иначе это просто болванка для формирования печатной формы? |
|||
18
Volodja
31.03.21
✎
09:32
|
(12) Также придется переписывать отчет.
Так лучше уже сразу прямым методом. (13) Задача стоит в формировании реестра документов с определенным статусом, с заданными отборами. И с выводами реквизитов документов, которых нет в регистре. |
|||
19
Андрей_Андреич
naïve
31.03.21
✎
09:34
|
(18) Так у тебя список доков был - получай по списку и выводи. Теперь пошло про отборы - путаешься в показаниях :)
|
|||
20
Volodja
31.03.21
✎
09:37
|
(19) список есть. А все остальное получаю с помощью запроса. Запрос вот и нужно переписать. И группировки еще нужны
|
|||
21
Андрей_Андреич
naïve
31.03.21
✎
09:39
|
(20) Можешь перебором индексированную таблицу заполнить и снруппировать
|
|||
22
Volodja
31.03.21
✎
09:41
|
(19)В мой запрос по сути нужно только добавить это:
Условие(мойДок в сзДок); но вот он отрабатывает за весь период. (21) да можно, конечно. Но я же говорю, что придется отчет переписывать. Он формировался обходом объекта Запрос. |
|||
23
Builder
31.03.21
✎
09:45
|
(22) У тебя уже есть список документов, что еще нужно то?
|
|||
24
Volodja
31.03.21
✎
09:48
|
(23) Мне также нужен объект Запрос, чтобы отчет не переписывать.
|
|||
25
Андрей_Андреич
naïve
31.03.21
✎
09:50
|
(24) То есть у тебя все есть менять не хочется. Хочется быстрее. Меняй железо :)
|
|||
26
Builder
31.03.21
✎
09:52
|
(24) Ну что-то переписать придется все равно :)
|
|||
27
Volodja
31.03.21
✎
09:52
|
(25) Железо не буду менять.
Отчет начал переписывать |
|||
28
Mikeware
31.03.21
✎
10:30
|
(22) переделать обход запроса на обход ИТ - дело 10 минут. особенно если нет "сбросов выборки"
|
|||
29
Volodja
31.03.21
✎
10:56
|
(28) Есть.Поэтому не хотелось переделывать
|
|||
30
Mikeware
31.03.21
✎
11:13
|
(29) запрос по документам, которых есть список, со сбросом выборки - не, вам явно нужно что-то в консерватории поправить....
|
|||
31
Bigbro
31.03.21
✎
11:58
|
(29) звучит жутковато. я сейчас многое в 7.7 вижу, от некоторого глаза кровью наливаются, но у вас похоже все еще круче.
если есть список документов (и он очевидно небольшой) - возьмите из него даты этих документов и ограничьте запрос хотя бы этими датами (Мин Макс). |
|||
32
Злопчинский
31.03.21
✎
12:25
|
(31) руки прочь от клюшек!
|
|||
33
Bigbro
31.03.21
✎
12:39
|
(32) не могу, основная учетная система на них и в обозримом будущем это не изменится)
приходится жить с этим) но уж лучше так чем адъ и израиль(с) от нетиповых ЗУП, БП и т.д. |
|||
34
Злопчинский
31.03.21
✎
12:41
|
(33) ;-)
|
|||
35
Злопчинский
31.03.21
✎
12:46
|
(22) как сказали выше - если есть список доков. нефиг запросом тянуть.
иди тупо по списку СЗ по документам и вытягивай нужные реквизиты. |
|||
36
acanta
31.03.21
✎
12:49
|
А 7ка дбф или sql? Для sql была официальная рекомендация -переписать все на запросы.
|
|||
37
DGorgoN
31.03.21
✎
13:34
|
(36) Фигня это всё. Всё равно получает все данные и обрабатывает.
|
|||
38
Mikeware
31.03.21
✎
13:41
|
(37) добавлю: первичным отбором (все поля в разрезе условий обрабатыватьпроведенные-непроведенные, и в заданном периоде) формирует dbf, которую тянет на клиента, и уже там накладывает дополнительные отборы/функции и прочее.
в общем, на уровне середины 1990-х это, может, смотрелось нормально... но сейчас ужас-ужас-ужас... с другой стороны, если работаешь на клюшках - ну работай нормально, нормальными запросами. Нафига себе ковать геморрой своими же руками? |
|||
39
Volodja
31.03.21
✎
14:28
|
(28) Я, наверное, не совсем правильно понял, что вы имеете ввиду под "сбросами выборки"?
|
|||
40
Builder
31.03.21
✎
14:38
|
(39) Запрос.ВНачалоВыборки()
|
|||
41
Volodja
31.03.21
✎
14:41
|
(31) Нет. Не жутковато у меня. Просто не хочется отчет переделывать. Сказал заказчику что 3-5 часов уйдет на переделку, переделаю на SQLite.
Он бабки зажал. Скорее всего, вообще тогда переделывать не буду. Список документов, это еще не окончательный. К нему еще хотел условия применить в запросе. Всего в таблице документов уже за миллион. У меня есть список из 15000-16000 документов. И из них нужно уже отобрать. (40) ну такого у меня нигде нет. |
|||
42
Mikeware
31.03.21
✎
14:41
|
(31) " я сейчас многое в 7.7 вижу, от некоторого глаза кровью наливаются" - типового кода/своего кода/ или функционала платформы?
|
|||
43
Mikeware
31.03.21
✎
14:48
|
(41) так тогда - взять запрос, выгрузить в ИТЗ, сгруппировать там, где в черном запросе группировки были, и в циклах поменять Группировка() на ВыбратьСтроки() и ПолучитьСтроку()
|
|||
44
Volodja
31.03.21
✎
14:51
|
(43) я в отчете вывожу группировки. Это не потеряется?
|
|||
45
Mikeware
31.03.21
✎
14:52
|
(44) ну и выводи. в чем проблема-то?
|
|||
46
Volodja
31.03.21
✎
15:01
|
(45) Ок. Попробую. Давно хотел ИТЗ поюзать.
|
|||
47
Arbuz
31.03.21
✎
16:10
|
(13) Я конечно в курсе этой парадигмы. И в курсе почему. Но. В ОУ. Используя пряМые запросы на среднего размера дбф базах получается пряМо неплохо строить всю логику на обработке доков напряМую. Скорость разработки и гибкость гораздо выше чем чорные-ужасные запросы и наспех продуманная архитектура регистров. Я никого не ни к чему не призываю, просто хвастаюсь, какой я разгильдяй. )))
|
|||
48
Злопчинский
31.03.21
✎
16:13
|
(47) хреняк, хреняк - и в продакшен! 90% выполняемых работ бОльшего и не требуют.
|
|||
49
Mikeware
31.03.21
✎
17:18
|
(48) Не "хреняк, хреняк - и в продакшен", а "современная прогрессивная методика разработки ХХП"!
|
|||
50
Ёпрст
31.03.21
✎
20:57
|
(47) а если бы был правильно спроектированный регистр и правильно написанный прямой запрос с использованием индексов, то скорость выполнения возросла бы в разы.
|
|||
51
Cthulhu
01.04.21
✎
03:05
|
семерка ацтой! ану брысь обратно в восемерку!
|
|||
52
Arbuz
01.04.21
✎
17:11
|
(50) Во-первых: история не терпит сослагательного наклонения (с)))
Во-вторых: "правильно спроектированный регистр и правильно написанный прямой запрос с использованием индексов" - требует куда больших затрат усилий и соответственно стоимости. О чём я собственно и начал... В-третьих: "то скорость выполнения возросла бы в разы" - формирование отчёта с 800мс до 180мс? Что-то там про овчинку... |
|||
53
Злопчинский
02.04.21
✎
01:54
|
(52) нет в тебе тяги к прекрасному!
|
|||
54
Bigbro
02.04.21
✎
05:21
|
(52) если вы генерируете ~20 тысяч таких отчетов, почему бы и нет?
|
|||
55
Андрей_Андреич
naïve
02.04.21
✎
05:26
|
(52) А бардак копится и копится...
|
|||
56
Mikeware
02.04.21
✎
08:11
|
(55) не "бардак копится", а "энтропия возрастает"
(54) как правило, те кто генерирует "20тыс отчетов" - они более тщательно относятся к проектированию архитектур. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |