|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Создание процедуры расчета записей регистра НачисленияОткройте в конфигураторе текст обработчика проведения документа НачисленияСотрудникам и добавьте в него следующий текст на встроенном языке (добавляйте в соответствующие строки только те команды, которые выделены жирным шрифтом): Процедура ОбработкаПроведения(Отказ, Режим) … // Записываем движения регистров Движения.Начисления.Записать(); // Получим список всех сотрудников, содержащихся в документе Запрос = Новый Запрос( "ВЫБРАТЬ РАЗЛИЧНЫЕ | НачисленияСотрудникамНачисления.Сотрудник |ИЗ | Документ.НачисленияСотрудникам.Начисления КАК НачисленияСотрудникамНачисления |ГДЕ | НачисленияСотрудникамНачисления.Ссылка = &ТекущийДокумент"); Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка); // Сформируем список сотрудников ТаблЗнач = Запрос.Выполнить().Выгрузить(); МассивСотрудников = ТаблЗнач.ВыгрузитьКолонку("Сотрудник"); СписокСотрудников = Новый СписокЗначений; СписокСотрудников.ЗагрузитьЗначения(МассивСотрудников); РасчитатьНачисления(Движения.Начисления, ПланыВидовРасчета. ОсновныеНачисления. Оклад, СписокСотрудников); Движения.Начисления.Записать(, Истина); РасчитатьНачисления(Движения.Начисления, ПланыВидовРасчета. ОсновныеНачисления.Премия, СписокСотрудников); Движения.Начисления.Записать(, Истина);
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры Обратите внимание: при проведении документа сначала записываются движения, сформированные документом, в регистр, а затем этот набор записей регистра передаются в процедуру расчета. Сначала для расчета первичных записей (Оклад), а затем для расчета вторичных (Премия). Процедура расчета на основе описанных в ней алгоритмов и данных, содержащихся в записях регистра, должна сформировать значения ресурсов регистра. После того, как ресурсы будут рассчитаны, перезаписывается набор записей регистра без формирования записей перерасчета (второй параметр в методе Записать() – Истина). Перед вызовом процедуры из общего модуля формируется список сотрудников, содержащихся в документе, чтобы передать его в вызываемую процедуру. Теперь создайте в ветке Общие новый общий модуль ПроведениеРасчетов. Укажите, что он будет глобальный, установите соответствующий флажок. Добавьте в него заготовку процедуры РасчитатьНачисления: Процедура РасчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |