d9e5a92d

Глава 8 Системные предопределенные процедуры

Системные предопределенные процедуры предназначены для того, чтобы дать возможность программно обрабатывать системные события, возникающие при интерактивных действиях пользователя, таких как ввод нового, изменение, удаление. Исключение составляют только предопределенные процедуры Моду­ля документа: ОбработкаПроведения, ОбработкаУдаленияПроведения, АрхивироватьДокумент, которые вызываются как при интерактивном, так и при программном возникновении события.

ВНИМАНИЕ! Системные предопределенные процедуры не являются встроен­ными процедурами языка. Для них зарезервированы только название и синтаксис. Тело процедур должно быть написано самим разработчиком конфигурации в соответствующих программных модулях.

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

С помощью системной функции СтатусВозврата в теле предопределен­ной процедуры можно устанавливать значение статуса возврата процедуры. Статус возврата используется системой, чтобы определить — выполнить или нет действие того системного события, которое вызвало данную предопреде­ленную процедуру.

Предопределенные процедуры Глобального модуля

Описанные в данном разделе системные предопределенные процедуры должны располагаться только в глобальном программном модуле. Данные про­цедуры, например, могут использоваться для расширения возможности про­граммного управления правами доступа пользователя к системе.

ПриНачалеРаботыСистемы

Предопределенная процедура при начале работы задачи.

Синтаксис:

ПриНачалеРаботыСистемы()

Англоязычный синоним:

OnStartSystem

Описание:

Вызов предопределенной процедуры ПриНачалеРаботыСистемы произво­дится системой 1С:Предприятие неявно при начале работы с программой. Если в данной предопределенной процедуре установить статус возврата — 0 (напри­мер, если время доступа данного пользователя к системе истекло), то пользова­тель не сможет войти в программу.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриНачалеРаботыСистемы()

   Курс = Константа.ОсновнаяВалюта.Текущ_Курс.Получить(ТекущаяДата();

   Предупреждение(Добро пожаловать! Сегодня + + ТекущаяДата() +

         РазделительСтрок + Сейчас установлен курс доллара= + Курс), 7);

КонецПроцедуры

См. также: СтатусВозврата

ПриЗавершенииРаботыСистемы

Предопределенная процедура при завершении работы задачи.

Синтаксис:

ПриЗавершенииРаботыСистемы()

Англоязычный синоним:

OnFinishSystem

Описание:

Вызов предопределенной процедуры ПриЗавершенииРаботыСистемы про­изводится системой 1С:Предприятие неявно при завершении работы пользова­теля с системой. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если пользователь не выполнил какие-либо штатные операции), то работа системы не будет завершена, т. е. пользователь не сможет выйти из программы.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриЗавершенииРаботыСистемы()

   Предупреждение(До свидания !, 2);

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииДокумента

Предопределенная процедура при удалении документа и при отмене пометки на удаление.

Синтаксис:

ПриУдаленииДокумента(УдалДокум, Режим)

Англоязычный синоним:

OnDeleteDoc

Параметры:

УдалДокум Значение удаляемого документа.
Режим Значение флага непосредственного удаления: 1 — непосредственное уда­ление; 0 — пометка на удаление.
Описание:

Вызов предопределенной процедуры ПриУдаленииДокумента производит­ся системой 1С:Предприятие неявно при интерактивном удалении документа и в случае отмены пометки на удаление. В этом случае, условия вызова можно узнать методом ПометкаУдаления документа. Если в данной предопределен­ной процедуре установить статус возврата — 0 (например, если не истек срок хранения документа), то удаление документа не будет выполнено.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриУдаленииДокумента(Док, Реж)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (Док.Вид() = РасходнаяНакл) И (Реж = 1) Тогда

         Предупреждение(У вас нет права удалять накладную!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииЭлемента

Предопределенная процедура при удалении элемента справочника и при отмене пометки на удаление.

Синтаксис:

ПриУдаленииЭлемента(УдалЭлем, Режим)

Англоязычный синоним:

OnDeleteItem

Параметры:

УдалЭлем Значение удаляемого элемента справочни­ка.
Режим Значение флага непосредственного удале­ния: 1 — непосредственное удаление; 0 — пометка на удаление.
Описание:

Вызов предопределенной процедуры ПриУдаленииЭлемента производится системой 1С:Предприятие неявно при интерактивном удалении элемента спра­вочника и в случае отмены пометки на удаление. В этом случае, условия вызо­ва можно узнать методом ПометкаУдаления элемента справочника. Если в данной предопределенной процедуре установить статус возврата — 0 (напри­мер, если нарушается ссылочная целостность системы), то удаление элемента справочника не будет выполнено.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриУдаленииЭлемента(Элем, Реж)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (Элем.Вид() = Товар) И (Реж = 1) Тогда

         Предупреждение(У вас нет права удалять Товар!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриОткрытииИстории

Предопределенная процедура при открытии окна «История» значе­ния периодического реквизита элемента справочника или константы.

Синтаксис:

ПриОткрытииИстории(ТипОбъекта, Объект, ТолькоПросмотр)

Англоязычный синоним:

OnOpenHistory

Параметры:

ТипОбъекта Название периодического объекта конфигурации, как оно задано в конфигураторе (например, Справочник.Валюты.ТекущийКурс или Константа. ИмяДиректора). Строковое назва­ние агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага ос­новного языка системы (см. ОсновнойЯзык).
Объект Элемент справочника, для которого выполняется открытие окна истории периодического реквизита. Имеет смысл только для периодических реквизитов справочников, а не для констант.
ТолькоПросмотр Флаг установки режима только просмотр для окна истории значения. Если значение этого пара­метра установить в 1 (в предопределенной проце­дуре), то окно истории будет открыто только для чтения. Установка значения в 0 — введет режим по умолчанию (определенный правами). Уже открытое окно истории соответствующим образом изменит режим (если это случай, когда процедура обрабаты­вает не открытие окна, а смену отображаемого объ­екта). Значение по умолчанию — 0.
Описание:

Вызов предопределенной процедуры ПриОткрытииИстории производится системой 1С:Предприятие неявно при при открытии окна «История» значения периодического реквизита элемента справочника или константы. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю запрещено изменение периодических реквизитов), то запись нового периодического значения не будет выполнена.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриОткрытииИстории(ТипОб, Об, ФлагРежима)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (ТипОб = Справочник.Валюты.ТекКурс) И

           (Об = Константа.ОсновнаяВалюта)) Тогда

         Предупреждение(У вас нет права просматривать историю курса!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, ОсновнойЯзык

ПриЗаписиИстории

Предопределенная процедура при записи в окне «История» значения периодического реквизита элемента справочника или константы.

Синтаксис:

ПриЗаписиИстории(ТипОбъекта, Объект, 3начение, ДатаИстории)

Англоязычный синоним:

OnWriteHistory

Параметры:

ТипОбъекта Название периодического объекта конфигурации, как оно задано в конфигураторе (например, Справочник.Валюты.ТекущийКурс или Константа. ИмяДиректора). Строковое назва­ние агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага ос­новного языка системы (см. ОсновнойЯзык).
Объект Элемент справочника, для которого выполняется изменение периодического реквизита. Имеет смысл только для периодических реквизитов справочни­ков, а не для констант.
3начение Значение периодической записи.
ДатаИстории Дата периодической записи.
Описание:

Вызов предопределенной процедуры ПриЗаписиИстории производится системой 1С:Предприятие неявно при интерактивной записи нового периоди­ческого значения в окне «История». Если в данной предопределенной процеду­ре установить статус возврата — 0 (например, если данному пользователю за­прещено изменение периодических реквизитов), то запись нового периодиче­ского значения не будет выполнена.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриЗаписиИстории(ТипОб, Об, Значен, ДатаИстор)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (ТипОб = Справочник.Валюты.ТекКурс) И

           (Об = Константа.ОсновнаяВалюта) И (ДатаИстор РабочаяДата()) Тогда

         // Записывается курс для валюты, которая записана в Константе

         Предупреждение(У вас нет права устанавливать курс на будущую дату!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

Ом. также: СтатусВозврата, ОсновнойЯзык

ПриУдаленииИстории

Предопределенная процедура при удалении в окне «История» значе­ния периодического реквизита элемента справочника или константы.

Синтаксис:

ПриУдаленииИстории(ТипОбъекта, Объект, 3начение, ДатаИстории)

Англоязычный синоним:

OnDeleteHistory

Параметры:

ТипОбъекта Название периодического объекта конфигурации, как оно задано в конфигураторе (например, Справочник.Валюты.ТекущийКурс или Константа. ИмяДиректора). Строковое назва­ние агрегатного типа данных может передаваться системой в русском или англоязычном написании (Справочник или Reference, Константа или Const) — в зависимости от установки флага ос­новного языка системы (см. ОсновнойЯзык).
Объект Элемент справочника, для которого выполняется изменение периодического реквизита. Имеет смысл только для периодических реквизитов справочни­ков, а не для констант.
3начение Значение периодической записи.
ДатаИстории Дата периодической записи.
Описание:

Вызов предопределенной процедуры ПриУдаленииИстории производится системой 1С:Предприятие неявно при интерактивном удалении периодической записи в окне «История». Если в данной предопределенной процедуре устано­вить статус возврата — 0 (например, если данному пользователю запрещено изменение периодических реквизитов), то удаления периодического значения не будет выполнено.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриУдаленииИстории(ТипОб, Об, Значен, ДатаИстор)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (ТипОб = Справочник.Валюты.ТекКурс) И

           (Об=Константа.ОсновнаяВалюта) И (ДатаИстор РабочаяДата() - 7) Тогда

         // Удаляется курс для валюты, которая записана в Константе

         Предупреждение(У вас нет права удалять прошлый курс!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, ОсновнойЯзык

ПриЗаписиКонстанты

Предопределенная процедура при записи значения константы.

Синтаксис:

ПриЗаписиКонстанты(ИмяКонстанты, 3начение)

Англоязычный синоним:

OnWriteConst

Параметры:

ИмяКонстанты Название константы, как оно задано в конфигура­торе (например, СкладПоУмолчанию).
3начение Новое значение константы.
Описание:

Вызов предопределенной процедуры ПриЗаписиКонстанты производится системой 1С:Предприятие неявно при интерактивной записи значения кон­станты. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данное значение константы запрещено), то запись кон­станты не будет выполнена.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриЗаписиКонстанты(ИмяКонстанты, Значение)

   Если ИмяКонстанты = ТекущийПрефикс Тогда

      Если НазваниеНабораПрав() = Продавец Тогда

         Предупреждение(У вас нет права менять префикс!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриОтменеПроведенияДокумента

Предопределенная процедура при отмене проведения документа.

Синтаксис:

ПриОтменеПроведенияДокумента(Докум)

Англоязычный синоним:

OnUnPosting

Параметры:

Докум Значение обрабатываемого документа.
Описание:

Вызов предопределенной процедуры ПриОтменеПроведенияДокумента производится системой 1С:Предприятие неявно при интерактивной попытке выполнить операцию «Сделать непроведенным». Если в данной предопреде­ленной процедуре установить статус возврата — 0 (например, если дата доку­мента меньше некоторой константы), то отмена проведения документа не будет выполнена.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриОтменеПроведенияДокумента(Док)

   Если Док.ДатаДок = Константа.ДатаЗащитыДокументов Тогда

      Предупреждение(Нельзя снимать с проведения архив!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата, СделатьНеПроведенным

ПриИзмененииВремениДокумента

Предопределенная процедура при изменении времени документа.

Синтаксис:

ПриИзмененииВремениДокумента(Докум)

Англоязычный синоним:

OnChangeTimeDoc

Параметры:

Докум Значение обрабатываемого документа.
Описание:

Вызов предопределенной процедуры ПриИзмененииВремениДокумента производится самой системой 1С:Предприятие неявно при интерактивной по­пытке изменить время документа. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если время данного документа нель­зя менять), изменение времени документа не будет выполнено.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриИзмененииВремениДокумента(Док)

   Если НазваниеНабораПрав() = Продавец Тогда

      Предупреждение(У вас нет права менять время документа!, 2);

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУстановкеОтбора

Предопределенная процедура при установке отбора.

Синтаксис:

ПриУстановкеОтбора(ИмяРеквизОтбора, 3начение)

Англоязычный синоним:

OnSetSelectInJournal

Параметры:

ИмяРеквизОтбора Строковое значение — название общего рекви­зита документа (как оно задано в конфигура­торе), по которому производится отбор (на­пример, Автор).
3начение Значение реквизита отбора. Допустим, у документов существует общий реквизит Автор, по которому решено про­вести отбор, значит в этом параметре будет передано конкретное значение этого реквизи­та, по которому решено провести отбор (на­пример, Сидоров И.А.).
Описание:

Вызов предопределенной процедуры ПриУстановкеОтбора производится самой системой 1С:Предприятие неявно при интерактивной попытке устано­вить отбор документов в журнале. Если в данной предопределенной процедуре установить статус возврата — 0 (например, если данному пользователю нельзя устанавливать данное значение отбора документов), установка не будет выпол­нена.

Данная предопределенная процедура может располагаться в глобальном программном модуле и модуле формы журнала. Если данная процедура при­сутствует в модуле формы соответствующего журнала, то будет вызвана она, если нет, то будет вызвана процедура из глобального модуля.

Пример:

Процедура ПриУстановкеОтбора(ИмяОтбора, ЗначОтбора)

   Если НазваниеНабораПрав() = Продавец Тогда

      Если (Имя0тбора = Автор) И (ЗначОтбора ТекущПользователь) Тогда

         Предупреждение(У вас нет права просматривать чужие документы!, 2);

         СтатусВозврата(0);

      КонецЕсли;

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриСменеРасчетногоПериода

Предопределенная процедура, вызываемая при смене текущего рас­четного периода журнала расчетов.

Синтаксис:

ПриСменеРасчетногоПериода(ЖурналРасчетов, Период)

Англоязычный синоним:

OnРег1odChange

Параметры:

ЖурналРасчетов Журнал расчетов, период которого изменяет­ся (агрегатный объект типа «ЖурналРасче-тов»).
Период Устанавливаемый расчетный период (значе­ние типа «ПериодРасчета»).
Описание:

Вызов предопределенной процедуры ПриСменеРасчетногоПериода на исполнение производится системой 1C:Предприятие неявно при попытке сме­ны текущего расчетного периода любого журнала расчетов. Если в данной пре­допределенной процедуре установить статус возврата — 0, то текущий расчет­ный период не будет изменен.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриСменеРасчетногоПериода(ЖР, Период)

   Если ЖР.Вид() = Зарплата Тогда

      Предупреждение(Это смена текущего расчетного периода для журнала

                          | Зарплата);

   КонецЕсли;

   Если Период.ДатаНачала = ЖР.НачалоТекущегоПериода Тогда

      //не позволяем откатывать период назад

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриУдаленииСчета

Предопределенная процедура, выполняемая при удалении бухгалтер­ского счета.

Синтаксис:

ПриУдаленииСчета(УдалСчет, Режим)

Англоязычный синоним:

OnDeleteAccount

Параметры:

УдалСчет Значение типа «Счет» — удаляемый бух­галтерский счет.
Режим Режим удаления. Может принимать значе­ния:

1 — счет будет удален;

0 — счет будет помечен на удаление.
Описание:

Вызов предопределенной процедуры ПриУдаленииСчета производится системой 1С:Предприятие неявно при интерактивном удалении счета из плана счетов. В качестве параметров в процедуру передаются значение удаляемого счета и режим удаления: непосредственное удаление или пометка на удаление.

Если в данной процедуре установить статус возврата 0 (например, если на­рушается ссылочная целостность системы), то счет не будет удален (или поме­чен на удаление).

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриУдаленииСчета(УдСчет)

   Если УдСчет.Валютный() = 1 Тогда

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата

ПриВыклВклПроводокОперации

Предопределенная процедура, выполняемая при выключении или включении проводок.

Синтаксис:

ПриВыклВклПроводокОперации(Документ)

Англоязычный синоним:

OnOperEntryOffOn

Параметры:

Документ Значение типа «Документ» — документ, которому принадлежит операция.
Описание:

Вызов предопределенной процедуры ПриВыклВклПроводокОперации про­изводится системой 1С:Предприятие неявно при интерактивном выключении или включении проводок. В качестве параметра в процедуру передается значе­ние документа, которому принадлежит операция.

Если в данной процедуре установить статус возврата 0, то действие не будет выполнено.

Данная предопределенная процедура может располагаться только в гло­бальном программном модуле.

Пример:

Процедура ПриВыклЗклПроводокОперации(Док)

   Если Док.Вид() Операция Тогда

      СтатусВозврата(0);

   КонецЕсли;

КонецПроцедуры

См. также: СтатусВозврата


Содержание раздела