Вход | Регистрация
    1  2  3  4  5  6  7  8   
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: 1С 7.7 ТИС ДБФ УРИБ 40 юзеров. Надо победить блокировки транзакций

v7: 1С 7.7 ТИС ДБФ УРИБ 40 юзеров. Надо победить блокировки транзакций
Я
   tgu82
 
28.10.20 - 13:18
1С 7.7 ТИС ДБФ УРИБ 40 юзеров.

В понедельник вообще с утра работать не могли. И так почти полтора часа.
Только когда я стал по очередности выгонять всех ввидимо отцепилась блокировка и
и все наконец заработали.

Заметил что 3 варианта блокировок:
1. при обмене урбд, попытка захвата доступа к 1SUPDTS
2. При попытке создать новый документ - попытка захвата 1SJOURN
3. При поытке создать элемент справочника - попытка заквата SC214 или 1SDNLOCK
3.1 Блокировка 1SDNLOCK возникает и при создании нового документа (видимо из-за нумерации что ли)

Ну с обменами не так часто и понятно потому что обмен я вижу.
С остальным все на так ясно.

Базы не малые, регистр RA328 подходит к 1.7 ГБ
Я так понимаю что многие проблемы из-за проведения документов задним числом ну и перепроведения если надо
Время ожидания захвата БД сброшено в ноль у всех вроде бы, но уточню. Может кого прозевал.
Заметил что в понедельник много потому что делают много приходов и в пятницу тоже.
Причем всем надо с утра.

На ПБ как-то особенно с этим всем проблем и нет а вот на ЦБ бывают, и неприятные
Мне бы хотя бы четко понимать из-за кого в любой конкретный момент времени возникает блокировка (за исключением обмена)
Тогда бы можно было его притормозить а другие бы работали дальше.
В ЦБ банк касса розница енвд перемещения поступления оптовые реализации комплектации и т.д.
Магазины для себя в ЦБ делают большие перемещения с Центрального склада.

Мне бы хотя бы четко понимать из-за кого в любой конкретный момент времени возникает блокировка (за исключением обмена)
Тогда бы можно было его притормозить а другие бы работали дальше !!!
   Злопчинский
 
201 - 31.10.20 - 15:59
(197) так я и не понял - не влазя вглубь отчего там у него клинит на Док.Новый()
   tgu82
 
202 - 31.10.20 - 15:59
(200) еще vfpoledb ?
   tgu82
 
203 - 31.10.20 - 16:01
(201) ДА сам не пойму. При записи например реализации если товар мерный для всех таких товаров из документа создается как бы подчиненный документ - разбухтовка. Ну по-сути типа резервирования, то есть он еще и проводится потом до записи основного документа и основательно к нему привязан.
   Злопчинский
 
204 - 31.10.20 - 16:02
(202) скулайтом можно
   tgu82
 
205 - 31.10.20 - 16:02
(203)+ В каждом документе есть поле СБухт. Вот в нем номер документа разбухтовки ну а дата у них одинаковая
   Злопчинский
 
206 - 31.10.20 - 16:03
(203) подбираешь нужную нарезку что ли?
   tgu82
 
207 - 31.10.20 - 16:03
(205)+ Просто заметил что процентов 30 ошибок транзакции - из-за этой операции
   tgu82
 
208 - 31.10.20 - 16:04
(206) Ну да, подбираю и в приходе разбухтовываю и в перемещении и в списании и т.д.
   Злопчинский
 
209 - 31.10.20 - 16:04
(205) да похорен как сделано (пока).
что делает эта разбухтовка?
из имеющейся инфы по длинам отрезков мерного товара подбирает нужную длину? или что?
   tgu82
 
210 - 31.10.20 - 16:08
(209) Выбирает метражи (в приход их создает, в расходе их списывает по метражам с возможностью отреза и создания тут же новых метражей
   tgu82
 
211 - 31.10.20 - 16:10
(210)+ Ассортимента кабельного много поэтому почти в каждом документе по складам где не установлен ффлаг "не вести учет бухт" идут эти операции, включая чеки ккм, только дял них свой вид разбухтовки - докбухтчек
   tgu82
 
212 - 31.10.20 - 16:12
(211)+ .ну просто много ошибок транзакций именно на такой строчке ДокБухт.Новый() и еще после разбухтовки порой не получается записать родительский документ (из-за ошибок транзакции) и тогда надо опять резать по новой
   Mikeware
 
213 - 31.10.20 - 16:28
(200) в файловой я такое не делал и не стал бы, наверное...
хотя может я просто неопытный, Ёп или Джеф или ССерж наверняка бы сделали.
   tgu82
 
214 - 31.10.20 - 16:39
(200) НачДата понятно, а КонДата ставить какую? три года назад?
А если это регистр продажи те же - он же оборотный, с ним такое конечно не прокатит
   Злопчинский
 
215 - 31.10.20 - 19:04
(214) оставляй три года предшествующих текущему.
   Злопчинский
 
216 - 31.10.20 - 19:05
(213) ну я так в ПБ тупо чистил от остатков чужих ПБ. нормально все.
   Злопчинский
 
217 - 31.10.20 - 19:07
(210) Метражи - в партиях написаны/хранятся?
в реализации - как набираешь? идейно как? - набираешь максимально длинными кусками или как?
(может там просто тупо медленно получается и если ускорить, то и проблема уйдет?)
   tgu82
 
218 - 31.10.20 - 19:13
(217) Нет. Там вполне шустро, если есть такой или почти такой кусок сразу на него курсор и можно подобрать мгновенно.
К партиям не привязывал, изначально решили что все по номенкалутре и метражу.

Спасибо. Подвинули меня. Я тут накидал быстренько автоподбор бухт при поступлении (в товаре сидит реквизит автобухтметраж и документ бухт по таким товарам (где задан) формирую. А по каким нет - в разбухтовываю как обычно. Операторы склада давно просили а я все никак. Теперь вроде как )
   Злопчинский
 
219 - 31.10.20 - 19:15
(218) "если есть такой или почти такой кусок сразу на него курсор и можно подобрать мгновенно."
у тебя что, подбор метража делается интерактивно пользователем?
   Злопчинский
 
220 - 31.10.20 - 19:16
(218) "К партиям не привязывал, изначально решили что все по номенкалутре и метражу."
вообще непонятно.
ты можешь связно изложить как у тебя реализован аработа - приход, учет остатков и расход по мерному товару? ;-)
   tgu82
 
221 - 31.10.20 - 19:21
(220) Регистр "ДвижениеБухт" Номенклатура Метраж КоличествоБухт
При расходе беру из остатков регистра по фильтру номеклатура затем становлюсь в обработке ДействияСБухтами на нужную строчку и нажимаю ОК - выбираю сколько метров - получается количество бухт или если указываю которого нет - получается отрез
   tgu82
 
222 - 31.10.20 - 19:22
(221)+ Эта обработка действует что при приходе что при расходе, только при приходе выбирается метраж или если нет -вводится новый и количество бухт
   tgu82
 
223 - 31.10.20 - 19:32
(220) А вот в твоей процедуре обрезания - не могут случайно туда попасть регистры оборотные?
Ведь это только для остаточных надо
   Злопчинский
 
224 - 31.10.20 - 19:35
(223) это не моя. валялась обработка для обрезки базы.
оборотные в принципе то же самое.
если исключить оборотные - то по методанным тип регистра проверь и все.
   tgu82
 
225 - 31.10.20 - 19:37
(224) Не постесняюсь спросить - а оборотные же RG... кажется не имеют ?
А что тогда в них резать?
   tgu82
 
226 - 31.10.20 - 19:44
(224)+ Кажется допер. Главное чтобы не поднимались потом движения по этим документам по этим регистрам.
Хотя если я обрежу регистр "продажи" и потмо захочу полную статистику я ее в любом случае не получу ибо регистра итогов же нет.

А кстати после обрезания как с индексами?
   tgu82
 
227 - 31.10.20 - 19:50
(226)+ RG есть и у оборотных. То есть если не брать по документам можно цеплять из RG а если надо уже по документам то тогда только RA и поэтому его обрезать нельзя
   tgu82
 
228 - 31.10.20 - 20:10
(224) А регистры книга продаж и покупок вообще надо на фиг закрыть хотя сначала тоже обрезать движения
   Злопчинский
 
229 - 31.10.20 - 20:58
(228) если ты не ведешь книг в базе ТИС - можно тупо их удалить 4 файла для регистров книг
   tgu82
 
230 - 31.10.20 - 21:53
(229) Только сначала убрать из конфы все ссылки на них
А еще: открываю постпуление через "лупу". Не блокируется, открываю просто при этом Форма.ТолькоПросмотр в ПриОткрытии стоит остальное закомментировал. Результат - блокировка, то есть другой юзер не может открыть документ этот.
Так много текстовых формул, но почему через "лупу" когда открываешь - просто закрывается форма документа, а когда просто открываешь вроде в режиме ТолькоПросмотр(1) при закрытии спрашивает - сохранять изменения - хотя я ничего не менял.

Я читал твою ветку про ТолькоПросмотр, но вот видишь что выходит. Может надо все реквизиты формы - доступность(0), хотя шапка серая и т.ч. серая - в чем хоть отличие?
 
 Рекламное место пустует
   tgu82
 
231 - 31.10.20 - 22:12
(229) ТЕперь на спрашивает про сохранение но один хрен не дает другому открыть этот документ хотя вроде только просмотр(1)
   tgu82
 
232 - 31.10.20 - 22:30
(229) Мне надо - если поступление проведенное по определенному складу - то без полномочий - режим лупа должен получаться без блокировки, чтоб тот укого право есть мог спокойно зайти в документ
   Злопчинский
 
233 - 31.10.20 - 23:19
(231) "только просмотр(1)"
не, когда через лупу - то не блокируется.
а когта обычным образом но только просмотр - блокируется.
именно так.
   Злопчинский
 
234 - 31.10.20 - 23:20
(230) "при закрытии спрашивает - сохранять изменения - хотя я ничего не менял."
не, что-то поменялось на форме.
   Злопчинский
 
235 - 31.10.20 - 23:22
(230) "Только сначала убрать из конфы все ссылки на них"
можно ничего не убирать. просто регулярно удалять файлы книг. или поставить везде где к нм обращение идет в модулях проведения - сделать "возврат, там не так много мест. минут на 30 работы "выключить" таким способом
   tgu82
 
236 - 31.10.20 - 23:26
(233) То есть с эмуляцией "лупы" ничего нельзя сделать? Даже с помощью формекса?
   Sserj
 
237 - 01.11.20 - 05:01
(236) Это можно сделать штатными средствами, без формекса.
В журнале документов есть предопределенная ПриВыбореСтроки(). В ней анализируешь как нужно открыть документ и при необходимости:
СтатусВозврата(0);
ОткрытьФорму(ТекущийДокумент,,1);
   tgu82
 
238 - 01.11.20 - 09:03
(237) Да, интересно, только не понял куда вставить процедуру ОбработкаВыбораСтроки(1) или так: Форма.ОбработкаВыбораСтроки(1)
В модуле формы журнала документов поступлениетмц
   tgu82
 
239 - 01.11.20 - 09:12
(237) Нашел куда, хотя как-то все это крайне запутанно. Для того чтоб сработала одна процедура надо указывать другую.
Тем не менее работает вот такая хитрая конструкция
   tgu82
 
240 - 01.11.20 - 09:35
(237) Процедура ПриВыбореСтроки() 
 СтатусВозврата(0);
 Если (ТекущийДокумент.Вид()="ПоступлениеТМЦ") И (ТекущийДокумент.Склад=Константа.СкладДляПрихода) И (глЗначениеПоУмолчанию("РазрешитьСкладДляПрихода")=0) Тогда
  ОткрытьФорму(ТекущийДокумент,,1);    
Иначе
  ОткрытьФорму(ТекущийДокумент);
КонецЕсли;    

Так работает если в ПриОткрытии журнала установить обработкавыборастроки(1)

И все в штатном режиме. Только вот в документации все так завуалировано что хрен поймешь
Это типа ПередОткрытием документа получается то есть еще на уровне модуля формы журнала а не документа
ОГРОМНЫЙ СЕНКС !
   tgu82
 
241 - 01.11.20 - 09:40
(233) Странно что в ветке про открытие в режиме только просмотр, которую ты поднимал - не было про такой вариант ничего сказано,
а ведь он абсолютно однозначно решает проблему
   Злопчинский
 
242 - 01.11.20 - 10:55
(241) решается все проще. Поставь в настройках базы что документ ШТАТНО ОТКРЫВАЕТСЯ на просмотр (лупой). по энтеру. а по шифт-ентеру будут открывать на редактирование ;-)
   Злопчинский
 
243 - 01.11.20 - 10:57
(240) ну и хоть не принципиально, но я обычно делаю часто используемые константы кеширую
глСкладДляПрихода = Константа.СкладДляПрихода;
   tgu82
 
244 - 01.11.20 - 11:09
(242) Да, это я знаю, но пока обойдусь тем что написал.
Насчет констант - согласен, сделаю список значений, вот только как при этом быть с преиодическими константами?
   tgu82
 
245 - 01.11.20 - 11:12
(244)+ Много обращений к константе хотя в цикле как-то не увидел. Ты где-ниубдь видел чтоб в цикле к константе обращались?
   Aleksey
 
246 - 01.11.20 - 11:28
(245) а что за фобия с циклами?
   tgu82
 
247 - 01.11.20 - 11:42
(246) Да нет фобии никакой. Просто речь идет о том что если обращаться к константам в цикле это грузит систему.
Кешировать это хорошо, правда вот не понял что значит двухуровневый кэш в таком контексте. Ну мы же используем ГлПользователь и все его реквизиты - вот и кэш собственно говоря
   Mikeware
 
248 - 01.11.20 - 13:50
(246) да это я его напугал.
просто где-то попадалось, что при обработке проведения в цикле каждой строке документа что-то сравнивалось с константой, или заполнялось ли по умолчанию из константы. И так работа с константами не самая быстрая, а тут еще в цикле. может, исправили уже, а может, франчи тогда до меня написали (они и Вопрос() в обработку проведения вставляли, и их код копипастный в одном доке сократил по длине в 30 раз... дело давнее)
(247) двухуровневый кэш цен - это текущие цены ты кэшируешь в одной таблице (можешь сразу при запуске, можешь в порядке обращения, можешь группами по обращению, можешь во время простоя), а при обращении к заднему числу - кэшируешь изменившиеся во второй. Собственно, это от специфики зависит - у меня могли изменять документы последних 2-3 рабочих дней. Для розницы - это неактуально. Но с периодическими константами можешь поступать примерно так же (дата раньше, скажем, месяца от текущей - запрашиваешь из базы, до месяца - кэшируешь. Текущая должна быть уже в оперативом кэше)
   tgu82
 
249 - 01.11.20 - 15:20
(248) Да, можно так. Но вот я изменил значение константы а она закеширована. Получается где-то должна быть передача того что константа изменена и кэш должен обновиться. Но фокус в том что кэш же для каждого сеанса отдельно. То есть надо передавать некий флажок. И где-то в обработке ожидания его мониторить. И опять же вопрос и когда флаг этот удалять?
   Злопчинский
 
250 - 01.11.20 - 15:23
(249) "Но вот я изменил значение константы а она закеширована"
а нехер менять значение константы при работе.
ты же колеса на авто не меняешь на ходу...
   tgu82
 
251 - 01.11.20 - 15:32
(250) Это крайне редко бывает, почти никогда не меняется
   tgu82
 
252 - 01.11.20 - 15:34
(250) Ну а все-таки?
   Mikeware
 
253 - 01.11.20 - 16:14
(252) у меня этим занимался планировщик заданий. давал через него команду запустить обработку сброса кэша цен (из пяти строк). можно, конечно, и автоматизировать было, но лень... надо было-то всего пару раз за пять лет.
   tgu82
 
254 - 01.11.20 - 16:20
(252) Можно и так конечно. Реально правда единственное что меняется иногда это дата запрета редактирования и то редко. Остальное меняется только в нерабочее время. Еще иногда константа время окончания работы для автозакрытия 1С-ок. Но тут как-то извращусь
   Mikeware
 
255 - 01.11.20 - 16:25
(254) у меня закрытие сессий этим же планировщиком и делалось. собственно, он и всобачен был первоначально именно для закрытия. Впрочем, с этим были известные траблы - модальные окна. Этого я не победил. но как-то оно и не мешало последние годы
   Mikeware
 
256 - 01.11.20 - 16:27
+(255) не, наврал - первоначально он был для сообщения о поступлении заявок с КПК. дикие времена...
   tgu82
 
257 - 01.11.20 - 16:31
(256) У меня тоже с КПК ). А теперь просят чтоб сделал со смартфона тоже самое, только на кпк вводился только код а тут надо искать по наименованию еще
   tgu82
 
258 - 01.11.20 - 16:32
(256) Вы имеете в виу виндовый планировщик или в 1С глобальом модуле обработкаожидания ?
   Mikeware
 
259 - 01.11.20 - 17:18
(258) не, локальный 1совский, через обработку ожидания. честно скопипизжен из конфиги а+ емнип 2004 года. у меня все через него было сделано -завершения работы, сообщения пользователям,  запуск обработок - пересчета себестоимости, автообрезки базы, контроль/пересчет итогов регистров, всякие рассылки отчетов поставщикам, формирование кубиков ОЛАП, обмены со снеговиком. я даже уже и не упомню всего.  там удобно сделано, почти как в снеговике.
   tgu82
 
260 - 01.11.20 - 17:20
(259) Может поделитесь. Интересно было бы глянуть на такое чудо
 
 Рекламное место пустует
   Mikeware
 
261 - 01.11.20 - 17:22
(260) поищи конфигурацию ТИС для А+ 1.5, у меня если и осталась - то моя доработка под сиквел, на дбфной не заведется сходу.
   tgu82
 
262 - 01.11.20 - 17:24
(261) А+ 1.5 ? Агент плюс какой-то?
   tgu82
 
263 - 01.11.20 - 17:27
(261) В скате когда-то много интересного было. Но не использовал. Вроде и так работает. А зря кстати
   tgu82
 
264 - 01.11.20 - 18:18
(250) ГлСистема = СоздатьОбъект("Система");

Для сч=1 по 100 Цикл
Попытка
  ДокБухт.Новый();
  Прервать;
Исключение
  глСистема.Sleep(500);//0.5 сек 

КонецПопытки
КонцеЦикла;

Если я буду делать через попытку исключение конецпоппытки создание документов (что докбухт что сф) в цикле от 1 до 100 через паузу 0.5 сек (пауза используя 1с++), цикл мне процессор не загрузит напрочь?
   tgu82
 
265 - 01.11.20 - 18:26
(264)+ И аналогично только без Попытка Конецпопытки а просто
в цикле с паузой
ГлСистема = СоздатьОбъект("Система");

Для сч=1 по 100 Цикл
Если ОткрытьФорму("Документ."+ВидСФ,ФормаНакладной,Конт.ТекущийДокумент())<>1 Тогда
  глСистема.Sleep(500)//0.5 сек 

Иначе
  Прервать;
КонцеЦикла;
   Aleksey
 
266 - 01.11.20 - 18:29
(249) Пусть все перезайдут в базу и тогда кэш обновиться. Ибо константа это не то что меняешь 24/7
   Aleksey
 
267 - 01.11.20 - 18:31
Ну или сделай кнопку "обновить кэш" которая обнуляет кэш. Кому надо нажмут не перезаходя
   tgu82
 
268 - 01.11.20 - 18:32
(266) Абсолютно согласен. Переделаю на кэш. И кнопка тоже неплохая идея. Кому надо - я сообщу
А что скажете насчет (264,265).
   tgu82
 
269 - 02.11.20 - 09:08
Везде блокируется 1sjourn
Именно его блокировка - причина львиной доли ошибок связанных с транзакциями.
Попробовать везде через попытку и паузы в цикле скажем из 20-50 итераций?

Причем в основном это связано с авторазбухтовкой
ДокБухт.новый()
Докбухт.Записать()
Вот здесь блокировка журнала документов.
То есть там где программные автооперации с документом, там где интерактивные - ошибок меньше
   tgu82
 
270 - 02.11.20 - 09:10
(269)+ А вот при проведении как-то и нет ошибок.
Просто опасаюсь что понаставлю циклов с паузами и процессор окажется перенагруженным хотя на сервере их вообще-то два
   JeHer
 
271 - 02.11.20 - 09:17
(269) ускорить проведение документа нельзя?
   tgu82
 
272 - 02.11.20 - 09:20
(271) То есть?
Проведение и так шустрое ну если только не задним числом.
А вот с циклами и паузами в "узких" местах как сделать?
   tgu82
 
273 - 02.11.20 - 09:30
(271) то есть попробовал операцию - блокировка, пауза, еще раз операцию, а в паузах другие же смогут что-то делать как раа глядишь и разрулится проблема
   tgu82
 
274 - 02.11.20 - 09:57
(273)+ И потом: ну поставлю я попытка конечпопытки на узких местах, но по исключению куда ветвиться? Когда ошибка транзакции - она просто всю процедуру откатывает и все.
   Злопчинский
 
275 - 02.11.20 - 10:25
ну у тя проблемы когда продаваны начинают массово лепить доки. блокировка журнала - на проведениях. уменьшай общее время проведения документов. засеки сколько времени у тебя делается разбухтовка. счф загони в цикл - счф проводится практически мгновенно, там проблем быть не должно.
.
если не удастся забороть - тогда ставь все проведения в очередь или с использованием исключительной блокировки через флажок или тупо организуй очередь  и проводи все в одном сеансе роботом. както так
   Sserj
 
276 - 02.11.20 - 10:36
(270) А откуда при проведении ошибкам то взяться.
Может ты не совсем правильно представляешь тему блокировок.
Вот как это работает:
При проведении 1С полностью блокирует 1sjourn. В этот момент в него нельзя ничего записать.
И разблокирует его после завершения проведения.
В это время нельзя создавать новые документы потому как новый номер для документа берется как Макс.номер из журнала + 1. И чтобы одновременно не взялся один и тот-же макс.номер на время создания документа так же полностью блокируется 1sjourn.
Тобишь если у тебя проведение длится 1 секунду, то у тебя может в системе быть создано не больше 60 документов в минуту, ну а так как у тебя еще во время проведения делается какая-то разбухтовка которая там на 3000+ строк, то почти уверен что проведение у тебя больше 1 секунды.
Задача максимально сократить период блокировки журнала.
Я бы лично для начала смотрел можно ли эту разбухтовку делать не в транзакции, тобишь на форме по кнопке Записать сразу делать разбухтовку, привязывать к документу а при проведении ее как то корректоировать если нужно.
   Sserj
 
277 - 02.11.20 - 10:39
+(276) Кстати кажется в DBF и прочитать ничего нельзя в период блокировки 1sjourn. Это только в SQL 1С для отчетов грязно читает. В ДБФ и отчеты по документам/регистрам зависают пока идет проведение.
   Злопчинский
 
278 - 02.11.20 - 10:41
проведение не блокирует на чтение.
   Злопчинский
 
279 - 02.11.20 - 10:42
вроде так.
   Sserj
 
280 - 02.11.20 - 10:42
(278) А вот и блокирует :)
Даже 1SQlite не может прочитать ничего из журнала при проведении в другом сеансе.
   ДенисЧ
 
281 - 02.11.20 - 10:43
(278) Ещё как блокирует
   ДенисЧ
 
282 - 02.11.20 - 10:43
В дбф точно.
   Злопчинский
 
283 - 02.11.20 - 10:43
и счф нахрена открывать для автосоздания. проще руками код создания счф написать. и быстрее будет.
   Sserj
 
284 - 02.11.20 - 10:44
+(280) Тобишь если какой-то отчет строится по регистру и ему нужно связать этот регистр с журналом, то отчет однозначно будет ожидать завершения транзакции.
   tgu82
 
285 - 02.11.20 - 10:44
(276) Но сама процедура проведения разбухтовки милисекундная по-сути.
И в модуле проведения родительского документа я ничего не провожу и не записываю по разбухтовке.
Я это делаю только через процедуру ПриЗаписи(). Потому что она если что все откатит назад и грязи за собой не оставит
   Злопчинский
 
286 - 02.11.20 - 10:47
(276) а про номера документов - 1SDNLOCK там еще задействован
   Sserj
 
287 - 02.11.20 - 10:53
(286) А он все равно вторым идет. Сначала берется максимум из журнала, потом уже он уже смотрится есть такой в 1SDNLOCK или нет.
   tgu82
 
288 - 02.11.20 - 10:54
(283) Насчет счф согласен,но вот сегодня понедельник и до 9.00
много ошибок ДоуБухт.Новый() и ДокБухт.Записать()
С блокировкой журнала документов.
Цикл с паузой имеет смысл пробовать?
   tgu82
 
289 - 02.11.20 - 10:56
(276) Бальзам на мою душу ) ибо у меня так и сделано - по кнопке записать проводится разбухтовка а в проведении дальнейшем она уже не трогается
   Sserj
 
290 - 02.11.20 - 10:56
(288) Конечно имеет, как минимум меньше непонятных для пользователя ошибок будет вываливаться. Но только не в транзакции, то это просто убьет базу наповал :)
   tgu82
 
291 - 02.11.20 - 10:59
(290) да не в транзакции а через попвтка исключение конец попытки.
А как правильно сделать ццикл с паузой чтоб процессор не нагружать?
А то у летит в 100% и вообще труба )
   tgu82
 
292 - 02.11.20 - 11:03
(275) Расшифруй понятнее:
сли не удастся забороть - тогда ставь все проведения в очередь или с использованием исключительной блокировки через флажок или тупо организуй очередь  и проводи все в одном сеансе роботом. както так

1. куда писать время проведения документа чтоб понять что долго проводится ессно только там где речь о документах с ТЧ. А то елси в текстовый файл - то проведение начинает замедлятсья когда этот файл вырастет прилично.
2. Что значит исключительная блокировка через флажок.
3. НЕТ У МЕНЯ НИКАКИХ РАЗБУХТОВОК В МОДУЛЕ ПРОВЕДЕНИЯ. Только при записи
   Злопчинский
 
293 - 02.11.20 - 11:06
(280) ну вот вкооррячил я в процдуру проведения предупреждение-стоп в одном сеансе. Если бы это блокировало журнал на чтение - то хрен бы журнал любой в базе открылся бы на просмотр - а так совершенно спокойно открывается.
и реестр документов по Док.ВыбратьДокументы(ДатаН, ДатаК) - спокойно читает. я еще для верности влупил Док.ИспользоватьЖурнал(). нормально реестр доков строится.
.
я что-то не так понимаю?
.
созлдать новый документ - да, напарывается на транзакцию.
   ДенисЧ
 
294 - 02.11.20 - 11:06
(291) "как правильно сделать ццикл с паузой"
Shell.Sleep
Командасистемы("ping 127.0.0.1 -w 1000")
и ещё много разных способов.
   Злопчинский
 
295 - 02.11.20 - 11:06
(291) система.слип - нормально паузу делает
   tgu82
 
296 - 02.11.20 - 11:07
(295) ТАк это пауза а сам цикл скажем из 20 итераций - обычный? Для сч =1 по 20 ?
   Злопчинский
 
297 - 02.11.20 - 11:09
(292) п.2
там где критичные узкие места - проверяешь типо:

Цикл 1=1
 если ФлажокВзведен = 0 Тогда
  ФлажокВзведен = 1;
  делаю что надо
  ФлажокВзведен = 0;
  прервать;
иначе
  жду пока флажок сброситься
конецЕсли;
   tgu82
 
298 - 02.11.20 - 11:17
(297) Да вот только флажок же для только моего сеанса он же между сеансами не передается.
Каким образом сработает проверка Если ФлажокВзведен когда он был взведен на другом сеансе? Через файл?
Через константу?
   Злопчинский
 
299 - 02.11.20 - 11:17
(296) ну это уже икспериментально надо подобрать.
сначала тупо залогировать насколько долго тупит при создании документов. или где у тебя там узкое место.
и почему именно в ПНД с утра.. чем это понедельник так от других дней отличается.
может у тебя по понедельникам там востановление ГП в фоне идет...
   Злопчинский
 
300 - 02.11.20 - 11:18
(298) блокировка служебного элемент служебного справочника
  1  2  3  4  5  6  7  8   

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