gifts2017

Контроль оплаты по договору

Опубликовал slimper (slimper) в раздел Программирование - Практика программирования

Как не заплатить лишние деньги по договору, особенно в конце года, когда идет вал платежей? Ниже представлен один из возможных вариантов, позволяющий избежать столь печальной ошибки.

Для контроля оплаты нам нужны всего две суммы - сумма договора и сумма платежей по данному договору. Получить эти суммы не составит никакого труда. Создадим общий модуль, в который поместим функции расчета вышеуказанных сумм. Почему общий модуль? Соображения просты - при обновлении конфигурации c ним ничего не случится. Если мы поместим эти функции в модуль объекта "Заявка на кассовый расход" (ЗКР), то при обновлении нужно будет предпринимать дополнительные действия, чтобы не потерять их.

Итак, создаем общий модуль, в нашем примере он называется EventProc. Вставляем в него следующие функции:

для получения суммы договора:

Сумма договора

добавляем функцию для суммы платежей по договору:

Сумма оплаты

И наконец, вставляем процедуру(обработчик события), которая будет выдавать предупреждающее сообщение, если сумма оплаты превысит сумму договора:

 Проверка суммы оплаты

Теперь привяжем эту процедуру из модуля EventProc к  какому либо событию в документе "Заявка на кассовый расход". В нашем случае это будет событие "ПриЗаписи". Для выполнения привязки создадим новый объект в ветке конфигуратора "Подписки на события" и назовем его - "ПриЗаписиЗКР". При помощи этого объекта ("ПриЗаписиЗКР") cвяжем событие "ПриЗаписи" документа "Заявка на кассовый расход" с процедурой CheckOplDog из модуля EventProc как показано ниже:

 Привязка

В итоге, путем несложных манипуляций мы связали событие "ПриЗаписи" документа "Заявка на кассовый расход"  с нашей процедурой CheckOplDog в общем модуле EventProc, т.е. назначили нашу процедуру обработчиком события "ПриЗаписи"  документа ЗКР. Теперь при нажатии кнопки "Записать" или "ОК" (ввод/редактирование документа ЗКР), пользователь получит предупреждающее сообщение, если сумма платежей по договору, указанному в качестве документа-основания платежа, превысит сумму этого договора.

В примере использовалась платформа - 1С:Предприятие 8.2 (8.2.14.537) , конфигурация - Бухгалтерия государственного учреждения, редакция 1.0 (1.0.6.3) .

 

 

 

 

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Zotin Alexandr (AlexZOne) 07.11.11 12:56
Идея полезная, но требует доработок, т.к. сумма платежа может вводиться и изменяться разными видами документов. Спасибо ;)
2. Марина Снопкова (marina64) 17.12.11 19:25
Спасибо автору за пример практического применения ПодпискиНаСобытия.
3. Андрей Х (Nordkas) 29.01.15 14:50
сделал все по инструкции, не видит значение переменных. (
4. Андрей Х (Nordkas) 29.01.15 21:59
Может автор за скромное вознаграждение поможет?
5. slimper (slimper) 30.01.15 18:34
(4) Nordkas, если вы еще не разобрались, во вложении модуль EventProc.
Прикрепленные файлы:
ОбщийМодуль.EventProc.Модуль.txt