| 
    
            
         
         | 
    
    
  | 
Блокировка документа после его объединения с другим | ☑ | ||
|---|---|---|---|---|
| 
    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%     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |