Untitled
plain_text
a month ago
3.2 kB
1
Indexable
Never
Процедура ОбработкаПроведения(Отказ, РежимПроведения) Движения.Бюджет.Записывать = Истина; ДоляБюджетаПоМесяцам = Новый Соответствие; НачалоТекущегоПериода = НачалоПериода; ДнейЗаВесьПериод = (КонецПериода - НачалоПериода) / 86400 + 1; Пока НачалоТекущегоПериода < КонецПериода Цикл ОкончаниеТекущегоПериода = Мин(КонецМесяца(НачалоТекущегоПериода), КонецДня(КонецПериода)); ДнейВТекущемМесяце = (ОкончаниеТекущегоПериода + 1 - НачалоТекущегоПериода) / 86400; ДоляБюджетаПоМесяцам.Вставить(НачалоМесяца(НачалоТекущегоПериода), Окр(ДнейВТекущемМесяце / ДнейЗаВесьПериод, 2)); НачалоТекущегоПериода = ОкончаниеТекущегоПериода + 1; КонецЦикла;; Для Каждого СтрокаТаблицы Из СписокСтатей Цикл СуммаВРегистре = 0; ПревышениеВРегистре = 0; Для Каждого ДоляБюджетаМесяца Из ДоляБюджетаПоМесяцам Цикл Движение = Движения.Бюджет.Добавить(); Движение.Период = ДоляБюджетаМесяца.Ключ; Движение.Подразделение = Подразделение; Движение.СтатьяЗатрат = СтрокаТаблицы.СтатьяЗатрат; Движение.План = ДоляБюджетаМесяца.Значение * СтрокаТаблицы.Сумма; Движение.ДопустимоеПревышение = ДоляБюджетаМесяца.Значение * СтрокаТаблицы.Превышение; СуммаВРегистре = СуммаВРегистре + Движение.План; ПревышениеВРегистре = ПревышениеВРегистре + Движение.ДопустимоеПревышение; КонецЦикла; РасхождениеСумма = СтрокаТаблицы.Сумма - СуммаВРегистре; Если РасхождениеСумма <> 0 Тогда Движение.План = Движение.План + РасхождениеСумма; КонецЕсли; РасхождениеПревышение = СтрокаТаблицы.Превышение - ПревышениеВРегистре; Если РасхождениеПревышение <> 0 Тогда Движение.ДопустимоеПревышение = Движение.ДопустимоеПревышение + РасхождениеПревышение; КонецЕсли; КонецЦикла; КонецПроцедуры