Заполнение табличной формы документа "Премии сотрудников организаций"
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Ничего сложного, регистрируем обработку в "Дополнительные внешние обработки по заполнению табличных частей", в документе выбираем стандартное начисление "Месячная премия", выбираем период начислений из которых необходимо начислить премию, заполняем сотрудников и нажимаем заполнить, у нас 90% премия, - убрал в модуль так как сами понимаете нужно было сделать быстро... универсальность отсутствует.
Затем построчно заполняется премия обращаясь к функции в виде запроса в котором внесены стандартные типы расчётов:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(Док.ДатаНачалаБП));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(Док.ДатаОкончанияБП));
Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| СУММА(Начисления.Результат) КАК Результат
|ИЗ
| РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК Начисления
|ГДЕ
| Начисления.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания
| И Начисления.Сотрудник = &Сотрудник
| И (Начисления.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОкладПоДням)
| ИЛИ Начисления.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ДоплатаЗаНочныеЧасы)
| ИЛИ Начисления.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ДоплатаЗаПраздничныеИВыходные)
| ИЛИ Начисления.ВидРасчета = ЗНАЧЕНИЕ(ПланВидовРасчета.ОсновныеНачисленияОрганизаций.ОплатаПраздничныхИВыходных))" ;
Рез = Запрос.Выполнить();
Если Рез.Пустой() Тогда Возврат Неопределено; КонецЕсли;
РезТЗ = Рез.Выгрузить();
Возврат РезТЗ[0][0];
Вступайте в нашу телеграмм-группу Инфостарт