Имя: Пароль:
1C
1С v8
Не выпускать из документа для проверок
0 lirt82
 
16.09.22
08:15
Бухня на управляемых. Поставили задачку, "не выпускать" пользователя из документа Реализации пока он не создаст счет-фактуру. Не выпускать из документа означает пока форма открыта. Беру расширение затягиваю в него процедуру ПередЗакрытием() директива &НаКлиенте, тип вызова "Вызывать вместо".
НаКлиенте
Процедура Расш1_ПередЗакрытиемВместо(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ПровераНаСчетФактуру(ЭтаФорма); //моя процедура
    
        
    Если ЗапретНаЗакрытиеФормы Тогда //типовой блок
        Отказ = Истина;
    Иначе
        ПринудительноЗакрытьФорму = Истина;
    КонецЕсли;
    
    
КонецПроцедуры

копия базы файловая, ставлю в расширении на своем коде в этой процедуре точку, отладчик не доходит, при нажатии на крестик закрытия документа.....закрывается приложение)
что не так делаю? как отладить? возможно что выбрано неправильное событие для расширения?
1 lirt82
 
16.09.22
08:19
(0) в продолжении моя процедура
Процедура ПроверкаНаСчетФактуру(ТекущийОбъект)
    
    Если НЕ ТекущийОбъект.ЭтоНовый() И НЕ ТекущийОбъект.ПометкаУдаления Тогда    
        СчетФактура = СчетаФактурыПоОснованию(ТекущийОбъект.Ссылка);
        Пока СчетФактура = Неопределено Цикл
            Сообщить("Счет-фактура не создана, реализацию закрыть нельзя!");
            Форма = ПолучитьФорму("Документ.СчетФактураВыданный.ФормаОбъекта", , ЭтаФорма);
            ОбъектФормы = Форма.ТекущийОбъект;
            Форма.ОткрытьМодально();
                        и т.д..........
2 Фантазер
 
16.09.22
08:20
(0) Поздравляю, ты сделал/автоматизировал самый распространенный совет в интернете - "нажать Alt-F4"
3 Злопчинский
 
16.09.22
08:21
(1) когда-то давно в далекой-далекой галактике у мен люди не парились созданием счф. счф по реализации создавалась автоматом.
4 lirt82
 
16.09.22
08:24
(3) даже если так....как организовать автоматическое создание, точнее к какому событию "прицепится"?
5 lirt82
 
16.09.22
08:25
(3) еще точнее нужно найти триггер:-) для запуска автосоздания счетов-фактур
6 Lasarus
 
16.09.22
08:27
(5) Окончание проведения документа реализации было бы вполне логичным триггером.
7 Ryzeman
 
16.09.22
08:28
(5) У него это ещё на клюшках было сделано, по-любому) Подписка на событие - проведение.
8 Ryzeman
 
16.09.22
08:29
(7) Хотя в подписке есть свой нюанс. Лучше наверное в обработчике проведения делать
9 Фантазер
 
16.09.22
08:30
А это прям всегда должна быть счет фактура?
Может сделать обработку и в конце дня/месяца/квартала запускать и создавать счет фактуры?
10 lirt82
 
16.09.22
08:30
(8) аааааа)))
11 lirt82
 
16.09.22
08:32
(9) исключено, хотя вариант отличный! нужно именно "принуждать" пользака а не полагаться на обработку по расписанию.
12 Lasarus
 
16.09.22
08:32
(9) По классике - регистр очереди документов к созданию, регламентное задание для создания, запись ошибок в лог, оповещение об ошибках создания ответственных лиц.
13 Lasarus
 
16.09.22
08:33
(11) Если при создании счетфактуры возникнет ошибка, что будет делать пользователь?
14 Fish
 
16.09.22
08:34
(12) Судя по (11), цель не в создании документов, а том, чтобы  ""принуждать" пользака".
15 Lasarus
 
16.09.22
08:36
(14) Надеюсь только, что это тестовое задание на проверку адекватности кандидата.
16 Ryzeman
 
16.09.22
08:36
(14) Цель - унизить? Тогда в винде надо отключить Alt+F4, запускать приложение в режиме витрины (или как оно там) и убирать все стандартные обработчики закрытия)
17 Fish
 
16.09.22
08:37
(16) А кнопку питания и ресет заклеить скотчем и опломбировать :)
18 Lasarus
 
16.09.22
08:38
(16) Если цель унизить - то поставить Линукс с минимально возможными разрешениями :)
19 Chai Nic
 
16.09.22
08:39
(16) А пользователя приковать к стулу, пока он не создаст счет-фактуру.
20 Ryzeman
 
16.09.22
08:39
(17) Нет. Скотчем надо силовой кабель. Кнопку питания можно просто от панельки отсоеденить внутри корпуса, а запуск по сети сделать. Современные EUFI вроде позволяют даже програмно отключать)
21 Lasarus
 
16.09.22
08:39
(17) Если пользователь работает в терминале, то ресет не поможет :)
22 Ryzeman
 
16.09.22
08:40
23 lirt82
 
16.09.22
08:45
все отбой в расширение затянул обработку проведения
24 Lasarus
 
16.09.22
08:46
(23) Ну удачи твоему работодателю :))