Для контроля оплаты нам нужны всего две суммы — сумма договора и сумма платежей по данному договору. Получить эти суммы не составит никакого труда. Создадим общий модуль, в который поместим функции расчета вышеуказанных сумм. Почему общий модуль? Соображения просты — при обновлении конфигурации c ним ничего не случится. Если мы поместим эти функции в модуль объекта «Заявка на кассовый расход» (ЗКР), то при обновлении нужно будет предпринимать дополнительные действия, чтобы не потерять их.
Итак, создаем общий модуль, в нашем примере он называется EventProc. Вставляем в него следующие функции:
для получения суммы договора:
добавляем функцию для суммы платежей по договору:
И наконец, вставляем процедуру(обработчик события), которая будет выдавать предупреждающее сообщение, если сумма оплаты превысит сумму договора:
Теперь привяжем эту процедуру из модуля EventProc к какому либо событию в документе «Заявка на кассовый расход». В нашем случае это будет событие «ПриЗаписи». Для выполнения привязки создадим новый объект в ветке конфигуратора «Подписки на события» и назовем его — «ПриЗаписиЗКР». При помощи этого объекта («ПриЗаписиЗКР») cвяжем событие «ПриЗаписи» документа «Заявка на кассовый расход» с процедурой CheckOplDog из модуля EventProc как показано ниже:
В итоге, путем несложных манипуляций мы связали событие «ПриЗаписи» документа «Заявка на кассовый расход» с нашей процедурой CheckOplDog в общем модуле EventProc, т.е. назначили нашу процедуру обработчиком события «ПриЗаписи» документа ЗКР. Теперь при нажатии кнопки «Записать» или «ОК» (ввод/редактирование документа ЗКР), пользователь получит предупреждающее сообщение, если сумма платежей по договору, указанному в качестве документа-основания платежа, превысит сумму этого договора.
В примере использовалась платформа — 1С:Предприятие 8.2 (8.2.14.537) , конфигурация — Бухгалтерия государственного учреждения, редакция 1.0 (1.0.6.3) .




Идея полезная, но требует доработок, т.к. сумма платежа может вводиться и изменяться разными видами документов. Спасибо 😉
Спасибо автору за пример практического применения ПодпискиНаСобытия.
сделал все по инструкции, не видит значение переменных. (
Может автор за скромное вознаграждение поможет?
(4) Nordkas, если вы еще не разобрались, во вложении модуль EventProc.