Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Программное создание документа и время ожидания

v7: Программное создание документа и время ожидания
Я
   zenon46
 
28.01.19 - 16:17
Доброго дня! Имеется база SQL, столкнулись со следующей ситуацией, в некоторых документах, программно создаются к ним документы, например к документу Товарный чек создается сразу документ ПКО, заметил что иногда документы не создаются, у пользователя выходит сообщение Время ожидания истекло, и все. Хотя в теле используется конструкция
НачатьТранзакцию() - ЗафиксироватьТранзакцию(). Как можно решить эту проблему?
 
 
   zenon46
 
1 - 28.01.19 - 16:20
Оказывается не время ожидания истекло --- пользователь не смог вспомнить, пока подожду что конкретно выдается.
   Mikeware
 
2 - 28.01.19 - 16:22
ну просто обзий журнал занят, и "Новый()" не проходит.
создавай в попытке в цикле.
   zenon46
 
3 - 28.01.19 - 16:24
(2) да сейчас просто вот так             НовыйДокРеализ.Новый();
   zenon46
 
4 - 28.01.19 - 16:33
(2) немного не понял, а как Новый() в цикле создавать, в СП не нашел информации.
   Ёпрст
 
5 - 28.01.19 - 17:05
(4)

КоличествоПопыток=10;
Пока КоличествоПопыток>0 Цикл
  Попытка 
      Док.Новый();
      Прервать;
  Исключение
  КонецПопытки 
  КоличествоПопыток  = КоличествоПопыток-1;
КонецЦикла
   Ёпрст
 
6 - 28.01.19 - 17:06
аналогично на запись/проведение дока.
Можно еще и ОписаниеОшибки парсить
   zenon46
 
7 - 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
Тогда проведение будет всегда.
   zenon46
 
12 - 28.01.19 - 17:08
(10) можно, поподробней, пожалуйста.
   Mikeware
 
13 - 28.01.19 - 17:13
(12) "время ожидания захвата таблиц базы"
   zenon46
 
14 - 28.01.19 - 18:24
(13) где этот параметр задается?
   vova1122
 
15 - 28.01.19 - 18:34
(14) Сервис/Параметры/общие
   ikea
 
16 - 28.01.19 - 20:43
(0) В цикле создания документов делай паузу в 1-2 секунды, тогда точно будет работать.
   zenon46
 
17 - 29.01.19 - 09:25
(13) (15) да, спасибо. Вот только про установку в 0 нигде не написано, софтпоинт вообще пишет про 180 секунд.
   uno-group
 
18 - 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  - моветон.
   Mikeware
 
22 - 29.01.19 - 10:27
(17) софтпойнт работает с серверными базами. Ну и методики у них свои...
   zenon46
 
23 - 29.01.19 - 10:43
(21) как резюме, пройтись по юзерам проставить везде 0, и написать как в (18) - ?
   Ёпрст
 
24 - 29.01.19 - 10:59
(23) проходится не надо, надо либо штатно в ПриНачалеРаботы системы проверить содержимое файла cfg у пользователя и принудительно ему туда прописать параметры, либо через вк установить всем.
   Mikeware
 
25 - 29.01.19 - 11:01
(23) можно через компоненту, только не помню какой.
   Ёпрст
 
26 - 29.01.19 - 11:04


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует