|
Блокировка документа после его объединения с другим | ☑ | ||
---|---|---|---|---|
0
AnBlast
28.12.23
✎
18:15
|
Есть два документа... с моем случае счета.
В какой-то момент оператор решает, что их надо объединить в один. Выбирает первый - в который, потом второй - из которого перелить ТЧ, нажимает кнопку объединить. Все объединяется, но полученный документ ставится на блокировку - зайти в него нельзя до перезапуска программы у этого оператора (т.е. блокировка вызвана именно объединением). Документ нигде не светится открытым При попытке программно открыть документ сразу после объедиения и записи - та же ошибка блокировки. Пробовал играться с РазблокироватьДанныеДляРедактирования - не получается. Просто программно открыть - тоже, естественно, не получается. Не то, что б это была очень большая проблема, но задалбывает операторов. Подскажите какой-нить путь обхода этого дела... УФ. РМК. |
|||
1
Мимохожий Однако
28.12.23
✎
19:23
|
Без кода обсуждать бессмысленно
|
|||
2
AnBlast
29.12.23
✎
10:52
|
(1) та там 350 строк кода в объединении...
но суть простая - объединение табличных частей (их там несколько и они связаны)... потом один док снимается с проведения, а второй проводится/сохраняется. И вот как раз второй блокируется. Все в одной транзакции. код собственно сохранения документа нового вот: Док1.СуммаДокумента = Док1.Товары.Итог("Сумма"); Док1.Комментарий = Док1.Комментарий+" /Объединение/ "+СокрЛП(Ком); Док1.Записать(?(Док1.Проведен ИЛИ Док2.Проведен,РежимЗаписиДокумента.Проведение,РежимЗаписиДокумента.Запись)); |
|||
3
MaximSh
29.12.23
✎
12:37
|
(2)
Если Док1.Заблокирован() Тогда Док.1.Разблокировать(); КонецЕсли; |
|||
4
AnBlast
29.12.23
✎
15:37
|
(3) а нифига ))
я так тоже пробовал... Док1.Заблокирован() у меня после объединения = Ложь Но форму открыть не дает. Ни программно, ни интерактивно до перезапуска сеанса |
|||
5
vicof
29.12.23
✎
15:50
|
(2) Суть-то может и простая, а код кривой)
|
|||
6
AnBlast
29.12.23
✎
16:47
|
(5) ну я б не стал читать 350 строк кода ))
но побороть получилось добавил РазблокироватьДанныеДляРедактирования Док1.СуммаДокумента = Док1.Товары.Итог("Сумма"); Док1.Комментарий = Док1.Комментарий+" /Объединение/ "+СокрЛП(Ком); Док1.Записать(?(Док1.Проведен ИЛИ Док2.Проведен,РежимЗаписиДокумента.Проведение,РежимЗаписиДокумента.Запись)); РазблокироватьДанныеДляРедактирования(, ЭтаФорма.УникальныйИдентификатор) Но теперь вопрос - я не указываю первый параметр и значит что будут разблокированы все объекты связанные с этой формой? есть шанс накосячить? Это форма выбора чека в РМК общепит с тучей официантов которые не видят чеки друг друга, но администраторы видят... т.е. теоритически может быть открыт из этой формы другой чек и я его тоже разблокирую (собственно все, что связанно с формой разблокирую) и админ что-то направит параллельно с автором чека... или нет? |
|||
7
Bigbro
30.12.23
✎
08:44
|
"ну я б не стал читать 350 строк кода"
лентяй. |
|||
8
Мимохожий Однако
30.12.23
✎
08:50
|
Я бы вообще не заморачивался с объединением документов. Логичнее сделать единую печать с нескольких чеков. При этом и подробная информация не потеряется и не надо заниматься танцами с бубнами.
Как говорится:"Другой взгляд на задачу". |
|||
9
AnBlast
03.01.24
✎
17:11
|
(7) есть такое ))
(8) не... оно как бы вариант, но все уже привыкли так. Н вопрос все равно актуален: я не указываю первый параметр и значит что будут разблокированы все объекты связанные с этой формой? Так? есть шанс накосячить? Уже день гоняю тесты этого дела... но уверенности на 100% нет, что кто-то добавит что-то в чек, я его разблокирую, а потом кто-то опять что-то другой еще что-то добавит. И будет беда |
|||
10
Мимохожий Однако
03.01.24
✎
22:19
|
(9) Если дань привычкам, то накосячишь 100%
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |