В режиме «1С:Предприятие»
600 1С: Предприятие 8. 3. Практическое пособие разработчика
Запрос. УстановитьПараметр(" ТребуемыйВидРасчета", ТребуемыйВидРасчета); СписокСотрудников = Новый СписокЗначений; // Перебрать группировку по регистратору. ВыборкаПоРегистратору = Запрос. Выполнить(). Выбрать(ОбходРезультатаЗапроса. ПоГруппировкам); Пока ВыборкаПоРегистратору. Следующий() Цикл Регистратор = ВыборкаПоРегистратору. ОбъектПерерасчета; // Перебрать группировку по сотрудникам для выбранного регистратора // и создать список сотрудников. ВыборкаПоСотрудникам = ВыборкаПоРегистратору. Выбрать(); СписокСотрудников. Очистить(); Пока ВыборкаПоСотрудникам. Следующий() Цикл СписокСотрудников. Добавить(ВыборкаПоСотрудникам. Сотрудник); КонецЦикла; // Получить набор записей регистра расчета для выбранного регистратора. НаборЗаписей = РегистрыРасчета. Начисления. СоздатьНаборЗаписей(); НаборЗаписей. Отбор. Регистратор. Значение = Регистратор; НаборЗаписей. Прочитать(); РассчитатьНачисления(НаборЗаписей, ТребуемыйВидРасчета, СписокСотрудников); НаборЗаписей. Записать(, Истина); // Очистить перерассчитанные записи в перерасчете. НаборЗаписейПерерасчета = РегистрыРасчета. Начисления. Перерасчеты. Перерасчет. СоздатьНаборЗаписей(); НаборЗаписейПерерасчета. Отбор. ОбъектПерерасчета. Значение = Регистратор; НаборЗаписейПерерасчета. Записать(); КонецЦикла; КонецПроцедуры В самом начале процедуры мы запросом выбираем данные о записях перерасчетов, содержащие переданный вид расчета и сгруппиро- ванные по объекту перерасчета. Далее при обходе результата запроса мы формируем для каждого объекта перерасчета список сотрудников, читаем соответствующие записи регистра расчета и вызываем процедуру РассчитатьНачис- ления(), которая использовалась нами при расчете записей документа НачисленияСотрудникам.
После того как расчет записей выполнен, мы записываем набор записей без формирования записей перерасчета и очищаем записи перерасчета по тому объекту перерасчета, который только что обра- ботали. Вернемся в форму отчета НачислениеСотрудникам. Итак, мы указали для команды Перерассчитать действие, то есть процедуру для ее выполнения. Но чтобы можно было воспользо- ваться этой командой, нужно создать в форме кнопку и связать ее с этой командой (в строке ИмяКоманды). Проще всего это сделать перетаскиванием команды из окна Команды формы в окно элементов формы. Перетащим мышью команду Перерассчитать в группу элементов формы ОсновнаяКоманднаяПанель. При этом в форме появится кнопка Перерассчитать, а связь кнопки с командой будет установлена автоматически (рис. 18. 26).
В режиме «1С: Предприятие» Запустим «1С: Предприятие» и проверим, как выполняется пере- расчет записей регистра расчета. Отменим проведение всех документов Начисления сотрудникам и проведем документ Начисления сотрудникам № 1 и затем № 2. Сформируем отчет Начисления сотрудникам (рис. 18. 27). Теперь откроем документ Начисления сотрудникам № 1, изменим оклад Гусакова на 10 000 и проведем документ. В отчете Начисления сотрудникам нажмем кнопку Перерассчитать.
Рис. 18. 27. Отчет «Начисления сотрудникам»
Будет выполнен перерасчет начисления премии Гусакову и Деловому (рис. 18. 28).
Чтобы увидеть в отчете актуальные данные, нажмем кнопку Сформи- ровать. Результат работы отчета будет содержать новые значения премии Гусакова (рис. 18. 29). И, наконец, проведем документ Начисления сотрудникам № 3 и нажмем Перерассчитать в отчете Начисления сотрудникам.
Снова будет произведен перерасчет оклада и премии Гусакова (рис. 18. 30).
Затем нажмем кнопку Сформировать. Данные отчета будут содержать актуальные значения начисления оклада и премии (рис. 18. 31).
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|