![]() |
|
v7: Передача данных в "ОбработкаПроведения()" | ☑ | ||
---|---|---|---|---|
0
never_sleep
16.04.14
✎
09:38
|
Прошу помощи у опытных коллег.
Зайду издалека. Ситуация следующая. Есть документ. В нем в "ОбработкаПроведения()" есть расчет БИ и некоторые другие действия, которых по дефолту там не было. Так вот, мне необходимо сократить время, которые тратится на отработку "ОбработкаПроведения()". Я могу эти БИ рассчитать и вне этой процедуры. Но вопрос в том, как передать эти данные в "ОбработкуПроведения". Передавать эти данные мне нужно в 2х случаях. 1. Когда я провожу документ из модуля формы. Т.е. у этого дока есть 2 кнопки "Провести" и "ОК", обе отрабатываются процедурой "ОК()". И мне после нажатия любой из этих кнопок нужно рассчитать БИ и передать их в модуль документа в "ОбработкаПроведения()". 2. Есть еще один док, который массово проводит первые доки. через "Док.Провести()" Здесь я тоже перед вызовом пересчитаю БИ, но как их передать в "ОбработкаПроведения()" я хз. Очень рассчитываю на вашу помощь. |
|||
1
Рэйв
16.04.14
✎
09:41
|
Что мешает рассчитать итоги в процедуре проведения?
|
|||
2
ДенисЧ
16.04.14
✎
09:43
|
ПРодам СП. Поскольку раритет - за безумные деньги.
|
|||
3
VladZ
16.04.14
✎
09:44
|
Провести(<?>,);
Синтаксис: Провести(<Режим>,<Знач>) Назначение: Выполнить проведение документа. Возвращает: 1 - если проведение документа выполнено, 0 - иначе. Параметры: <Режим> - необязательный параметр. Число: 0 - проводить документ без сдвига ТА; 1 - проводить непроведенный документ реальным временем (со сдвигом ТА); 2 - перепроводить проведенный документ реальным временем (со сдвигом ТА); 3 - проводить любой (непроведенный, проведенный) документ реальным временем (со сдвигом ТА). Значение по умолчанию - 0. <Знач> - выражение произвольного типа, которое передается при запуске предопределенной процедуры ОбработкаПроведения (необязателен, по умолчанию - пусто). |
|||
4
never_sleep
16.04.14
✎
09:49
|
(1) Половинки мое филейной части медленно расходятся в разные стороны из-за давления коллег и в частности директора. Работа базы стоит из-за ошибки транзакции при обращении к 1sjourn. 1sjourn блокируется, когда отрабатывается "ОбработкаПроведения". Куча людей бьют эти доки, а БИ отрабатывает достаточно долго. Поэтому хочу как можно больше сократить время обработки этой транзакции.
ЗЫ. База ДБФ - блокируется вся таблица. |
|||
5
never_sleep
16.04.14
✎
09:50
|
(3) Господи, я ведь читал её пятнадцать минут назад ((( куда смотрел((((.
|
|||
6
VladZ
16.04.14
✎
09:51
|
(4) "БИ отрабатывает достаточно долго" - Причины?
|
|||
7
VladZ
16.04.14
✎
09:51
|
+6 Может имеет смысл их устранить?
|
|||
8
never_sleep
16.04.14
✎
10:01
|
(6) Если честно, то я не могу со стопроцентной точностью ответить.
В марте забили кучу доков. с 15го по 31. На каждый день по 140 МестХранения и в среднем по 10 доков в день на каждое МестоХранения. По ряду причин их не проводили. Теперь массово проводим. Причем операторов человек 15, бьют каждые свои учреждения, но не так, что все сегодня 17 число, а потом все 18. А берут одно МестоХранения и проводят все доки с 15го по 31. Потом другое МестоХранения. База Общепит 6. Проф. Там все в проводках хранится. От проводок не могу уйти. Да и смысла нет ИМХО. Я уже актуальность БИ пересчитал на первый квартал. Все равно все долго работает. Да и времени нет сеть и спокойно разобраться. Ор стоит. ( |
|||
9
never_sleep
16.04.14
✎
10:03
|
(6) VladZ, я понял как сделать когда я вызываю "док.Провести()"
Но я не до конца понимаю, где передается выполенение в процедуру "ОбработкаПроведения()"когда нажимаю на кнопки "ОК" и "провести". Как уже сказал их отрабатывает одна процедура "ОК()". И в ней нет вызова "ОбработкаПроведения()". Как тут поступить? |
|||
10
never_sleep
16.04.14
✎
10:13
|
(2) Денис, спрошу для общего развития, я правильно понял, ты имел ввиду желтую книжонку? )
|
|||
11
Godofsin
16.04.14
✎
10:15
|
(10) Синтаксис помощник
|
|||
12
never_sleep
16.04.14
✎
10:17
|
(11) ааа. :)
|
|||
13
Boroda
16.04.14
✎
10:18
|
По кнопке ОК разве не вызывается процедура Провести()?
|
|||
14
Bigbro
16.04.14
✎
10:18
|
поскольку конфа нетиповая что мешает добавить в документ все необходимые реквизиты, заполнять их чем угодно и как угодно с любыми расчетами а при проведении использовать сохраненные в реквизитах значения?
|
|||
15
ДенисЧ
16.04.14
✎
10:19
|
(10) нет
|
|||
16
never_sleep
16.04.14
✎
10:21
|
(14) Я правильно понял, вы предлагаете для передачи параметра в "ОбработкаПроведения()" использовать специально созданный для это реквизит документа?
|
|||
17
never_sleep
16.04.14
✎
10:24
|
(13) Вызывается следующая процедура
"Процедура ОК(Закрыть = 0)" И вопрос сразу. Там есть строка "Если Провести() = 1 Тогда". Может это и есть вызов "ОбработкиПроведения()"? |
|||
18
never_sleep
16.04.14
✎
10:25
|
я что-то просто не заметил её сразу.
|
|||
19
Bigbro
16.04.14
✎
10:26
|
16 да, если вам необходимо разделить во времени расчеты и проведение использующее результаты расчетов - это вариант.
|
|||
20
Boroda
16.04.14
✎
10:27
|
Провести(,КакойТоПараметр)
ОбработкаПроведения(ПереданныйПараметрИЗПровести) >>> КакойТоПараметр = ПереданныйПараметрИЗПровести так понятно? |
|||
21
never_sleep
16.04.14
✎
10:32
|
(20) да понял спасибо. Я просто не заметил той строчки которую указал. И не мог понять как выполнение из кода модуля формы передается в модуль дока в "ОбработкаПроведения()".
|
|||
22
never_sleep
16.04.14
✎
10:32
|
(20) только в наешм случае это будет наверное как
ОбработкаПроведения(,ПереданныйПараметрИЗПровести) а не ОбработкаПроведения(ПереданныйПараметрИЗПровести) Я прав? |
|||
23
never_sleep
16.04.14
✎
10:35
|
Хотя неправ.
|
|||
24
never_sleep
16.04.14
✎
23:58
|
Все сделал. Провел небольшой стресс-тест, и вроде как есть положительный результат. Буду тестить сегодня в полевых условиях. Для выяснения того, как ускорить мои проводки, создам, пожалуй, отдельный топик.
Всем огромное спасибо за помощь!!! |
|||
25
VladZ
17.04.14
✎
09:59
|
(8) "Да и времени нет сеть и спокойно разобраться."
Угу.. Есть такой способ работы. Называется "думать некогда, нужно работать". Ни к чему хорошему не приводит. |
|||
26
Torquader
17.04.14
✎
10:23
|
Вообще-то, можно на ночь робота запустить - и пусть он всё проводит - тогда тормозов не будет.
Потом, самое главное, чтобы все документы проводил только один процесс. |
|||
27
never_sleep
21.04.14
✎
07:41
|
(25) Так и живем.
(26) Не вариант. Ибо, чтобы составить общее меню на день, им приходится по несколько раз то проводить, то распроводить доки. И тормозит сам этот процесс. Короче, провел я тест в полевых условиях. Программа стала работать гораздо стабильнее. Вылеты с ошибками транзакций почти прекратились. Калькуляторы сказали, что за день набили больше, чем за последние пять. Так что считаю, что вопрос по усовершенствованию проведения закрыт в этой ветке закрыт. Всем еще раз огромное человеческое спасибо!!! |
|||
28
ДенисЧ
21.04.14
✎
07:48
|
"чтобы составить общее меню на день, им приходится по несколько раз то проводить, то распроводить доки"
Руко*опие детектед. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |