Итак, в нашем алгоритме работы с данными расчета осталось одно "узкое" место – контроль актуальности данных, содержащихся в регистре расчета. До сих пор мы с вами использовали служебный отчет "Перерасчет" для того, чтобы определить, являются ли данные в регистре расчета актуальными или же они требуют перерасчета.
Теперь мы с вами создадим специальную процедуру, которая будет определять, требуется ли перерасчет данных регистра расчета и, если такая необходимость есть – выполнять перерасчет.
Поскольку единственным способом получения итоговой информации о начислениях сотрудникам в нашей конфигурации является отчет "НачисленияСотрудникам", для вызова этой процедуры мы добавим кнопку "Перерасчитать" в командную панель "ДействияФормы":
В обработчик события нажатия кнопки вставим текст вызова процедуры перерасчета:
Процедура ДействияФормыПерерасчитать(Кнопка)
ПерерасчитатьНачисления(ПланыВидовРасчета.ОсновныеНачисления.Оклад);
ПерерасчитатьНачисления(ПланыВидовРасчета.ОсновныеНачисления.Премия);
КонецПроцедуры
Саму процедуру перерасчета разместим в общем модуле "ПроведениеРасчетов":
Процедура ПерерасчитатьНачисления(ТребуемыйВидРасчета) Экспорт
//здесь следует выбрать из набора записей перерасчета, записи
//в следующей последовательности:
//записи документа1 для сотрудников из списка, [359]
//записи документа2 для сотрудников из списка,
//и т.д.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| НачисленияПерерасчет.ОбъектПерерасчета КАК ОбъектПерерасчета,
| НачисленияПерерасчет.Сотрудник
|ИЗ
| РегистрРасчета.Начисления.Перерасчет КАК НачисленияПерерасчет