Здравствуйте! Подскажите пожалуйста, как выполнять проверку запрета периода редактирования при открытии любого документа? Сам код проверки запрета уже написан. Вопрос другими словами, как выполнить определенную функцию из общего модуля, открывая любой документ. Вариант дописывания кода во все документы в обработчик события "при открытии" - не предлагать :)

Думал можно сделать как-то через "подписки на события", но события "При открытии" для подписок - нет.

Заранее спасибо!

8.3.10
Формы обычные.
---
Тогда как вариант - выгрузите конфу в хмл, обработкой пробегите файлы с текстами форм документов и строчку

```1c
    Процедура ПриСозданииНаСервере()
```

замените на

```1c
    Процедура ПриСозданииНаСервере()
    ВашМодуль.ВашаПроцедура(Форма);
```

И загрузите обратно. Профит.
---
В типовых конфах проверка даты запрета и блокирование элементов формы осуществляется при открытии формы. Так что от того, чтобы вписать код в каждую форму не уйти.

Разработчики 1С пока не реализовали подписку на открытие форм.
---
проверяй перед записью
---
, (3) Нет, смотрите. Перед записью у меня и так работает проверка на доступность. Если период закрыт, то документы не записываются и не проводятся.

Мне необходимо реализовать скрытие кнопок ОК и Записать при открытии любого документа, если период закрыт. В конфе > 100 документов, поэтому каждый раз вставлять один и тот же код в каждый док не вариант.

А то получается человек не знает, что период закрыт, заполняет поля пол часа, потом нажимает провести, а у него ничего не проводится из-за периода.
---
а зачем подписываться при открытии подписывайтесь перед записью
---
Если типовая - то во всех типовых формах в процедуре ПриСоздании есть вызовы общих модулей, в один из таких моделей и можно воткнуть ваше творение.

Иначе же остается вариант с подпиской на событие ПередЗаписью
---
Описал проблему тут (5). Конфа на 20% типовая :)
---
Тогда как вариант - выгрузите конфу в хмл, обработкой пробегите файлы с текстами форм документов и строчку

```1c
    Процедура ПриСозданииНаСервере()
```

замените на

```1c
    Процедура ПриСозданииНаСервере()
    ВашМодуль.ВашаПроцедура(Форма);
```

И загрузите обратно. Профит.
---
Подскажите, а в каком месте прописана процедура ПриСозданииНаСервере()?
Я начинающий :)
---
может тогда не стоит?))) ну уж если очень надо - предлагаю тогда найти ее самостоятельно)
---
ладно :)
---
В типовых конфах проверка даты запрета и блокирование элементов формы осуществляется при открытии формы. Так что от того, чтобы вписать код в каждую форму не уйти.

Разработчики 1С пока не реализовали подписку на открытие форм.
---
Разработчики 1С пока не реализовали подписку на открытие форм.
"пока"? где-то написано, что реализуют?

В УФ в типовых конфах есть
 СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
где вызывается
 МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка);
Вот в МодификацияКонфигурацииПереопределяемый можно вставить свой кусок кода.

В ОФ не знаю. Может что-то подобное есть...
---
К сожалению, не во всех (далеко) конфигурациях это есть.

Возможно когда-то сделают, все к этому идет. Сделали же подписку на получение формы менеджером.
---
Подключаемые команды при открытии форм и расширение творят чудеса БСП