Як повідомити користувачеві, хто саме заблокував необхідний для нього документ

Ідея про те, що простого повідомлення, що відкривається документ вже заблокований кимсь іншим, недостатньо, народилася з простого усвідомлення того, що організація велика, і люди, які можуть працювати над одним і тим же документом, будуть сидіти не те, що в НЕ одному кабінеті, а взагалі в різних будівлях і можуть навіть не підозрювати один про одного.

Цілком можливо, що я винаходив велосипед, і рішення даного завдання вже було придумано кимсь до мене і простіше, але. я такого не знайшов, хоча зізнаюся: далі першої сторінки Google не заглядав. Отже. Є, звичайно, ще варіант створювати реєстр відомостей, де буде зберігатися інформація про блокування, але я вирішив не створювати подібного, а піти через журнал реєстрації 1С.

В обробник форми відкриття () помістимо наступний код

Якщо ЕтоНовий () тоді

// обробник для нового елементи


Якщо Відповідь = КодВозвратаДіалога.Да тоді


ІначеЕслі Відповідь = КодВозвратаДіалога.Нет тоді


ІначеЕслі Відповідь = КодВозвратаДіалога.Отмена тоді

Також в модулі форми поміщаємо таку функцію

Тепер, власне про роботу даного коду.

При відкритті не нового документа, користувач відразу намагається заблокувати об'єкт. Якщо у нього це не виходить, то починається пошук заблокував об'єкт. Якщо ж виходить, то документ тут же записується. Важливо це робити до будь-яких змін в об'єкті, щоб користувачеві не вискакувало ніяких повідомлень, типу "Ви впевнені, що хочете зберегти зміни" і не ставили його цим в глухий кут. Записується об'єкт для того, щоб залишився запис в журналі реєстрації, тому що сам факт відкриття форми в ньому не відображається.

Питання має на увазі три відповіді: "Ні" - закриття форми, "Так" - відкриття в режимі читання, "Скасування" - з тим щоб пройти процедуру в надії, що блокування знята. Або зателефонувати вже використовує об'єкт і попросити його закрити і по кнопці "Скасування" відкрити його вже в режимі для зміни. На жаль, стандартні діалоги в 1С не мають на увазі варіанти "ДаНетПовторіть".