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