|
v7: Программное создание документа и время ожидания | ☑ | ||
---|---|---|---|---|
0
zenon46
28.01.19
✎
16:17
|
Доброго дня! Имеется база SQL, столкнулись со следующей ситуацией, в некоторых документах, программно создаются к ним документы, например к документу Товарный чек создается сразу документ ПКО, заметил что иногда документы не создаются, у пользователя выходит сообщение Время ожидания истекло, и все. Хотя в теле используется конструкция
НачатьТранзакцию() - ЗафиксироватьТранзакцию(). Как можно решить эту проблему? |
|||
1
zenon46
28.01.19
✎
16:20
|
Оказывается не время ожидания истекло --- пользователь не смог вспомнить, пока подожду что конкретно выдается.
|
|||
2
Mikeware
28.01.19
✎
16:22
|
ну просто обзий журнал занят, и "Новый()" не проходит.
создавай в попытке в цикле. |
|||
3
zenon46
28.01.19
✎
16:24
|
(2) да сейчас просто вот так НовыйДокРеализ.Новый();
|
|||
4
zenon46
28.01.19
✎
16:33
|
(2) немного не понял, а как Новый() в цикле создавать, в СП не нашел информации.
|
|||
5
Ёпрст
28.01.19
✎
17:05
|
(4)
КоличествоПопыток=10; Пока КоличествоПопыток>0 Цикл Попытка Док.Новый(); Прервать; Исключение КонецПопытки КоличествоПопыток = КоличествоПопыток-1; КонецЦикла |
|||
6
Ёпрст
28.01.19
✎
17:06
|
аналогично на запись/проведение дока.
Можно еще и ОписаниеОшибки парсить |
|||
7
zenon46
28.01.19
✎
17:06
|
(5) потому и не понимал, как определить количество итераций цикла, ведь 10 тоже может не помочь, получается опытным путем только?
|
|||
8
Ёпрст
28.01.19
✎
17:06
|
Ну и Транзакция.. это зло :)
|
|||
9
Ёпрст
28.01.19
✎
17:07
|
(7) ну ставь 100
|
|||
10
Ёпрст
28.01.19
✎
17:07
|
Только не поможет.
Нужно время блокировки всем в 0 а параметрах выставлять, принудительно |
|||
11
Ёпрст
28.01.19
✎
17:07
|
Тогда проведение будет всегда.
|
|||
12
zenon46
28.01.19
✎
17:08
|
(10) можно, поподробней, пожалуйста.
|
|||
13
Mikeware
28.01.19
✎
17:13
|
(12) "время ожидания захвата таблиц базы"
|
|||
14
zenon46
28.01.19
✎
18:24
|
(13) где этот параметр задается?
|
|||
15
vova1122
28.01.19
✎
18:34
|
(14) Сервис/Параметры/общие
|
|||
16
ikea
28.01.19
✎
20:43
|
(0) В цикле создания документов делай паузу в 1-2 секунды, тогда точно будет работать.
|
|||
17
zenon46
29.01.19
✎
09:25
|
(13) (15) да, спасибо. Вот только про установку в 0 нигде не написано, софтпоинт вообще пишет про 180 секунд.
|
|||
18
uno-group
29.01.19
✎
10:13
|
Док=СоздатьОбъект("...")
Пока Док.Выбран()=0 Цикла Попытка Док.Новый(); Исключение конецПопытки КонецЦикла Зачем по кругу гонять непонятное число раз |
|||
19
Ёпрст
29.01.19
✎
10:21
|
(18) затем, что если журнал кто -то держит, то при блокировке в 0 сразу выдается сообщение и в цикле удастся создать/записать/провести документ.
И по этой методе пофик на групповые проведения доков - они не мешают остальным нормально работать. |
|||
20
Ёпрст
29.01.19
✎
10:21
|
ибо никто не держит журнал
|
|||
21
Ёпрст
29.01.19
✎
10:22
|
Ну и писать Док.Выбран()= 0 - моветон.
|
|||
22
Mikeware
29.01.19
✎
10:27
|
(17) софтпойнт работает с серверными базами. Ну и методики у них свои...
|
|||
23
zenon46
29.01.19
✎
10:43
|
(21) как резюме, пройтись по юзерам проставить везде 0, и написать как в (18) - ?
|
|||
24
Ёпрст
29.01.19
✎
10:59
|
(23) проходится не надо, надо либо штатно в ПриНачалеРаботы системы проверить содержимое файла cfg у пользователя и принудительно ему туда прописать параметры, либо через вк установить всем.
|
|||
25
Mikeware
29.01.19
✎
11:01
|
(23) можно через компоненту, только не помню какой.
|
|||
26
Ёпрст
29.01.19
✎
11:04
|
V7AppProfile
http://www.1cpp.ru/forum/YaBB.pl?num=1174896192 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |