Проверка на открытую форму документа/справочника

1. Aleck1281 20.05.22 11:10 Сейчас в теме
Здравствуйте! Требуется при выполнении задачи "Согласовать" при нажатии кнопки "Согласовано с замечаниями" комментарий задачи записать в комментарий внутреннего документа. Проблема в том, что пользователь при перед выполнением задачи может открыть документ, а затем, не закрывая его, нажать кнопку согласования.
Возникла проблема: сам документ я могу получить только в серверной процедуре, а чтобы проверить, открыт ли этот документ, мне нужно запустить клиентскую процедуру. Как это можно сделать?
По теме из базы знаний
Найденные решения
2. soft_wind 20.05.22 11:39 Сейчас в теме
вот на клиенте работает

лкФорма = ПолучитьФорму("...",лкПараметры);
Если лкФорма.Открыта() Тогда
лкФорма.Закрыть();
КонецЕсли;
9. soft_wind 20.05.22 12:47 Сейчас в теме
(4)
Вопрос в другом: как запустить эту проверку из серверной процедуры?

так любой вызов серверной процедуры начинается на клиенте (где-то, когда-то) и в нем заканчивается (кроме регламентов, но речь не о них)
возвращайте в клиентскую процедуру признак что коммент изменился и уже на клиенте закрывайте форму
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. lmnlmn 69 20.05.22 12:34 Сейчас в теме
(1)Допустим, вы как-то узнали открыт или нет. Что с этой информацией дальше делать в контексте сервера?
2. soft_wind 20.05.22 11:39 Сейчас в теме
вот на клиенте работает

лкФорма = ПолучитьФорму("...",лкПараметры);
Если лкФорма.Открыта() Тогда
лкФорма.Закрыть();
КонецЕсли;
4. Aleck1281 20.05.22 12:27 Сейчас в теме
(2)На клиенте работает, я согласен. Вопрос в другом: как запустить эту проверку из серверной процедуры?
3. soft_wind 20.05.22 11:41 Сейчас в теме
а если документ открыт на другом компе? в другом сеансе?

возможно вам поможет попытка установки блокировки
если прошла, меняете коммент, иначе сообщаете что документ открыт другим пользователем
5. Aleck1281 20.05.22 12:28 Сейчас в теме
(3)В моём случае достаточно проверки только в этом сеансе.
7. user686924_shipikVV 20.05.22 12:37 Сейчас в теме
Конечно скажется на производительности обработки, но можно попробовать так:

Попытка 
        ДокументОбъект..Заблокировать();
    Исключение
       //Эта форма заблокирована, обрабатывать не нужно
       //Не согласовывать
    КонецПопытки;
8. Aleck1281 20.05.22 12:45 Сейчас в теме
(7)Да, это скажется. Хотелось бы просто закрыть открытый документ
9. soft_wind 20.05.22 12:47 Сейчас в теме
(4)
Вопрос в другом: как запустить эту проверку из серверной процедуры?

так любой вызов серверной процедуры начинается на клиенте (где-то, когда-то) и в нем заканчивается (кроме регламентов, но речь не о них)
возвращайте в клиентскую процедуру признак что коммент изменился и уже на клиенте закрывайте форму
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот