Имя: Пароль:
1C
1C 7.7
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тыс отчетов" - они более тщательно относятся к проектированию архитектур.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший