Имя: Пароль:
1C
 
Конфликт блокировок при выполнении транзакций
0 lamme
 
07.06.21
21:35
1С УТ10
документ ЗК.
в процедуре ПередЗаписью()
есть код
Если РежимПроведения = проведениедокумента - то монопольно открывается форма с выбором каких-то параметров.
после закрытия - выбранные параметры уходят в документ.
Эти параметры -необходимо вводить только до проведения документа. тк в зависимости от выбранных параметров - по разному документ проводиться.

Собственно ситуация - форма открылась - никто не может (например) создать карточку товара (ошибка блокировок при выполнении транзакции и далее по тексту)

На конфиг стоит - управление блокировками -автоматическое.
--

Как развести - чтобы и не блокировалось
и форма выбора все-таки открывлаась перед записю документа .

что - в управляемые блокировки смотреть ?
1 lamme
 
07.06.21
21:36
Если поставить на конфиг режим блокировок - ручной (ну или какой-то там  - но не автоматический) - то как поведет себя база  в режиме провеляни документов. записи данных?
2 lamme
 
07.06.21
21:37
Никогда не работал с управляемыми блокировками - поэтому такие глупые вопросы.
3 lamme
 
07.06.21
21:40
или логику пересмотреть и как то иначе сделать выбор параметров для дальнейшего проведения документов ?
4 Вафель
 
07.06.21
21:44
Если остатки не проверяются то ничего дописывать не нужно
5 lamme
 
07.06.21
21:45
не проверяются

на форме - варианты оплаты  -нал/безнал
для последующего записи в реквизит документа и проведения с этим параметром.

но в момоент открытия формы - никаких проверок остатков.
6 VladZ
 
07.06.21
21:46
Менять логику работы.
7 lamme
 
07.06.21
21:48
хочу просто понять ...

начинается передзаписью()
и что - много таблиц блокируется в базе?
8 lamme
 
07.06.21
21:49
даже константы не могу открыть - через операции- константы ..
блокируется ..

чтоб ее ..
9 H A D G E H O G s
 
07.06.21
21:50
(7) Все, что читается - блокируется на запись до конца транзакции. Все, что пишется - блокируется полностью.
10 H A D G E H O G s
 
07.06.21
21:51
(8) Раньше это была одна таблица.
11 lamme
 
07.06.21
21:51
тогда все правильно ...
пока висит окно с выбором - все стоит.
12 H A D G E H O G s
 
07.06.21
21:51
(11) Уберите окно.
13 lamme
 
07.06.21
21:52
не знаю куда его засунуть.
параметры от пользователя нужны.
14 lamme
 
07.06.21
21:54
перед записью в модуле формы документа  - тоже блокирует все что можно заблокировать ?
15 lamme
 
07.06.21
21:58
пойду напьюсь
16 hhhh
 
07.06.21
22:21
(15) может база файловая? тогда переходите на клиент-сервер.
17 lamme
 
07.06.21
22:50
нет
серверная
18 acht
 
07.06.21
23:07
(14) Нет. Перед записью а форме происходит вне транзакции. Там можно спрашивать.
А в "перед записью" в объекте транзакция уже начата.
19 TormozIT
 
гуру
07.06.21
23:38
(18) Ты про управляемые формы, а все остальные про обычные.
20 acht
 
08.06.21
00:06
(19) В обычных формах в этой части все работает точно также, дядь Сереж.

Не веришь - поставь там у себя какое-нибудь "Сообщить(ТранзакцияАктивна())" и попроводи.
21 Dark_Warrior
 
08.06.21
09:21
(0) Оставить пользователю возможность выбрать вид оплаты до проведения на форме? Или вызывать отдельную форму оплат?
22 Сисой
 
08.06.21
09:33
(0) А почему такая дурацкая логика? Почему выбор не хранится в реквизитах и не заполняется в форме?
23 assasu
 
08.06.21
10:34
(9)это о каких блокировках речь?
24 assasu
 
08.06.21
10:35
(0) разраба этого чудного процесса надо вздернуть. Это первое. Потом позвать специалиста.
25 Bigbro
 
08.06.21
10:37
поддержу предложение оторвать руки тому кто в проведении вешает какие то диалоги.
26 VladZ
 
08.06.21
10:39
(24) Ну зачем так сразу. Достаточно просто палкой отхр*начить.
27 acht
 
08.06.21
10:39
(24) > надо вздернуть.

    — Не поможет, — грустно ответил дядя Фёдор. Промышленная некромантия не для
    воскрешения техники, а для того, чтобы у померших рационализаторов выяснять,
    что же они такого при жизни наулучшали, и как теперь это починить.
28 Strogg
 
08.06.21
11:10
(0) правильно тебе говорят. Во избежание блокирования всех причастных таблиц более луТьше сделать все заполнения требуемых параметров перед записью. А при проведении лишь проверять их на заполненность.
31 Hmster
 
08.06.21
12:06
(0) поменять логику. в момент записи/проведения уже должно всё стоять.
Как вариант делаешь галку "Все заполнено", разрешаешь проводить только когда она стоит. Галку менять только через "Кнопку", кнопка открывает твою форму. Когда на форме все заполнено - устанавливаешь галку в документе.
32 Dmitry77
 
08.06.21
13:24
(0) есть еще групповое проведение. Вот весело будет...

Все данные, что нужны для проведения храните в документе.
33 TormozIT
 
гуру
16.06.21
07:11
(20) Ты прав. В обычных формах транзакция начинается тоже после выполнения обработчика ПередЗаписью формы.
34 ДенисЧ
 
16.06.21
07:15
(32) "Все данные, что нужны для проведения храните в документе."
Особенно остатки по регистрам )))