Использование менеджера расчета для расчета зарплаты в ЗУП 3.1

24.08.21

Учетные задачи - Зарплата

Пример использования менеджера расчета начислений и НДФЛ по сотруднику или организации. Будет полезен разработчикам, которые в ЗУП 3.1. залезли немного поглубже, чем при разработке печатных формы или отчетов.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
(только для физ. лиц)
Использование менеджера расчета для расчета зарплаты в ЗУП 3.1:
.epf 22,12Kb
143 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Введение

Уже достаточно много появилось статей, посвященным механизмам конфигурации ЗУП 3.1, но при этом менеджер расчета обделен вниманием. В этой статье я приведу примеры работы с менеджером расчета и некоторым механизмам, связанным с ним.

По сути в конфигурации у нас три расчетных обработки

  • РасчетБазыНачисленийУдержаний - формирует базы начислений и удержаний, используемых для расчета
  • МенеджерДанныхУчетаВремениСотрудников - формирует данные по времени сотрудников
  • МенеджерРасчетаЗарплаты - основной менеджер расчета, который рассчитывает начисления, взносы, ндфл и прочее. Фактически при расчете зарплаты мы видим результат работы этого менеджера.

Инициализировать менеджер можно двумя способами:

При расчете зарплаты за месяц можно использовать типовой метод инициализации

МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(МесяцНачисления, Организация);

При нестандартных расчетах нам может понадобится инициализировать его по-своему, вызвав конструктор

МенеджерРасчета = Обработки.МенеджерРасчетаЗарплаты.Создать();
ПериодРасчета = Новый СтандартныйПериод;
ПериодРасчета.ДатаНачала = ДатаНачала ;
ПериодРасчета.ДатаОкончания = ДатаОкончания ;
МенеджерРасчета.Инициализировать(ПериодРасчета, Организация);

Разница в том, что во втором случае мы можем указать произвольный период, например год.

С релиза ЗУП 3.1.10 старый менеджер расчета был переименован в МенеджерРасчетаЗарплатыАрхивный и за его использование отвечает константа "Выполнять расчет зарплаты без оптимизации". Но на дворе 21 год, думаю в ближайших релизах от старых алгоритмов окончательно откажутся.

Основная логика работы с менеджером это

  1. Заполнить коллекцию начислений

  2. Рассчитать зарплату

  3. Перенести результат в форму/документ.

Разберем несколько примеров работы с менеджером расчета. Уточню что для примера я буду рассчитывать только начисления и НДФЛ с вычетами.

Расчет начисления по сотруднику.

Например, у нас на входе для расчета есть сотрудник, начисление и период, за который мы хотим посчитать это начисление.

//Инициализация менеджера расчета
МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(МесяцНачисления, Организация);
МенеджерРасчета.НастройкиРасчета.Сотрудники = Сотрудник;
МенеджерРасчета.НастройкиРасчета.РассчитыватьНачисления = Истина;
МенеджерРасчета.НастройкиРасчета.ОкончательныйРасчет = Истина;
МенеджерРасчета.НастройкиРасчета.РассчитыватьНДФЛ = Истина;

МенеджерРасчета.НастройкиНДФЛ.Сотрудники = Сотрудник;
МенеджерРасчета.НастройкиНДФЛ.ОкончательныйРасчет = Истина;

//Инициализация пустой таблицы для начислений
ТаблицаНачислений = МенеджерРасчета.ТаблицаИсходныеДанныеНачисленияЗарплатыПоНачислениям();

//Добавляем в таблицу сотрудника, интервал начисления и период
НовыйИнтервал = ТаблицаНачислений.Добавить();
НовыйИнтервал.Сотрудник = Сотрудник;
НовыйИнтервал.Начисление = Начисление;
НовыйИнтервал.ДатаНачала = МесяцНачисления;
НовыйИнтервал.ДатаОкончания = КонецМесяца(МесяцНачисления);	

//Заполняем коллекцию Зарплата.Начисления
МенеджерРасчета.ЗаполнитьНачисленияСотрудникаЗаПериод(Сотрудник, ТаблицаНачислений);

//Расчет
МенеджерРасчета.РассчитатьЗарплату();

//Перенос расчитанных данных в данные формы
ДанныеДляЗаполненияВДанныеФормы(МенеджерРасчета.Зарплата);

В результате в табличной части менеджера расчета Зарплата.Начисления у нас будут результаты расчета по сотруднику, а также все вспомогательные данные, которые использовались при расчете (показатели и их значения, нормы и фактическое время, график работы, подразделение).

В процедуре ДанныеДляЗаполненияВДанныеФормы у меня алгоритмы, для переноса данных менеджера расчета в данные формы. Т.к. этот алгоритм универсальный, я немного о нем расскажу после всех примеров по расчетам.

Расчет начисления по сотруднику, где один из показателей мы указываем самостоятельно.

Код для примера тот же, но для интервала мы указываем известное значение показателя, которое вы можете указать вручную с формы или рассчитать отдельно.

...
НовыйИнтервал.ДатаОкончания = КонецМесяца(МесяцНачисления);	
МенеджерРасчета.ДобавитьИзвестноеЗначениеПоказателя(НовыйИнтервал, Показатель, ЗначениеПоказателя);
...

Если в первом примере все показатели рассчитывались в процессе, то в текущем мы заранее подставляем в расчет известное значение показателя.

Расчет всех начислений по сотруднику за месяц

МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(МесяцНачисления, Организация);
МенеджерРасчета.НастройкиРасчета.Сотрудники = Сотрудник;
МенеджерРасчета.НастройкиРасчета.РассчитыватьНачисления = Истина;
МенеджерРасчета.НастройкиРасчета.ОкончательныйРасчет = Истина;
МенеджерРасчета.НастройкиРасчета.РассчитыватьНДФЛ = Истина;

МенеджерРасчета.НастройкиНДФЛ.Сотрудники = Сотрудник;
МенеджерРасчета.НастройкиНДФЛ.ОкончательныйРасчет = Истина;
	
Сотрудники = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник);
	
МенеджерРасчета.НачисленияЗарплатыЗаПериод(Сотрудники, МесяцНачисления, КонецМесяца(МесяцНачисления));

ПериодРасчетаЗарплаты = Новый СтандартныйПериод;
ПериодРасчетаЗарплаты.ДатаНачала = МесяцНачисления;
ПериодРасчетаЗарплаты.ДатаОкончания = КонецМесяца(МесяцНачисления);

СотрудникиДляНачислений = МенеджерРасчета.ТаблицаСотрудников();
	
МенеджерРасчета.ЗаполнитьНачисленияСотрудникаЗаПериод(Сотрудник, СотрудникиДляНачислений, ПериодРасчетаЗарплаты);
	
МенеджерРасчета.РассчитатьЗарплату();       

ДанныеДляЗаполненияВДанныеФормы(МенеджерРасчета.Зарплата);

Тут мы видим разницу в вызове процедуры ЗаполнитьНачисленияСотрудникаЗаПериод.

Т.е. заранее мы не указываем какие начисления считать, а параметр ПериодРасчетаЗарплаты указывает процедуре, что необходимо выявить начисления сотрудника за месяц.

Расчет всех сотрудников по организации (подразделению)

ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
ПараметрыПолученияСотрудников.Организация  		= Организация;
ПараметрыПолученияСотрудников.Подразделение 	= Подразделение;
ПараметрыПолученияСотрудников.НачалоПериода		= МесяцНачисления;
ПараметрыПолученияСотрудников.ОкончаниеПериода  = КонецМесяца(МесяцНачисления);
КадровыйУчетРасширенный.ПрименитьОтборПоФункциональнойОпцииВыполнятьРасчетЗарплатыПоПодразделениям(ПараметрыПолученияСотрудников);

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц, Истина, ПараметрыПолученияСотрудников);
	
Запрос.Текст = 
"ВЫБРАТЬ
|	Сотрудники.Сотрудник КАК Сотрудник,
|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
|ИЗ
|	ВТСотрудникиОрганизации КАК Сотрудники";

Сотрудники = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Сотрудник");

МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(МесяцНачисления, Организация);
МенеджерРасчета.НастройкиРасчета.Сотрудники = Сотрудники;
МенеджерРасчета.НастройкиРасчета.РассчитыватьНачисления = Истина;
МенеджерРасчета.НастройкиРасчета.ОкончательныйРасчет = Истина;
МенеджерРасчета.НастройкиРасчета.РассчитыватьНДФЛ = Истина;

МенеджерРасчета.НастройкиНДФЛ.Сотрудники = Сотрудники;
МенеджерРасчета.НастройкиНДФЛ.ОкончательныйРасчет = Истина;
	
СотрудникиДляНачислений = МенеджерРасчета.ТаблицаСотрудников();
Для Каждого Сотрудник Из Сотрудники Цикл
	НоваяСтрока = СотрудникиДляНачислений.Добавить();
	НоваяСтрока.Сотрудник = Сотрудник;
	НоваяСтрока.ДатаНачала = МесяцНачисления;
	НоваяСтрока.ДатаОкончания = КонецМесяца(МесяцНачисления);
КонецЦикла;

ОтборМенеджераРасчета = МенеджерРасчета.СоздатьОтборы();
ОтборМенеджераРасчета.Подразделение = Подразделение;
МенеджерРасчета.ЗаполнитьНачислениеЗарплаты(СотрудникиДляНачислений, ОтборМенеджераРасчета);
  	
МенеджерРасчета.РассчитатьЗарплату();
 
ДанныеДляЗаполненияВДанныеФормы(МенеджерРасчета.Зарплата);

Если вы уже работали с ЗУП 3.1 или читали описание по программным методам ЗУП, то думаю приведенный пример не вызовет вопросов. Вначале мы получили всех текущих сотрудников организации (а если указали подразделение, то по подразделению), затем передали список менеджеру расчета и инициализировали расчет.

Это базовые примеры работы с менеджером расчета. В зависимости от реализуемых задач, можно задействовать разный функционал менеджера расчета. Рекомендую просто пройтись отладчиком по менеджеру расчета, от метода "РассчитатьЗарплату". Посмотреть по какому принципу разбиваются строки начислений, каким образом рассчитываются показатели, в т.ч. базы для расчета начислений и удержаний.

Перенос результата расчета данные формы

Тут немного стоит рассказать в каком виде хранятся данные в документах и формах.

В менеджере расчета и в табличных частях документов начисления с данными формы практически совпадают. Разница в хранении показателей. В менеджере расчета и в документах показатели хранятся в отдельной ТЧ "Показатели", связанной с начислениями по реквизиту "ИдентификаторСтроки". А вот в формах к таблице начислений программно или вручную добавляются колонки "Показатель1", "Показатель2”… и "ЗначениеПоказателя1", "ЗначениеПоказателя2"…

Соответственно при чтении/открытии документа, а также после расчета данные показателей переносятся в созданные новые колонки. А при записи документа происходит обратный процесс переноса в ТЧ "Показатели".

Исходные требования для реализации примера:

В форме мы хотим видеть результаты начислений с расшифровкой по показателям, указанием отработанного времени. Т.е. все то, что мы привыкли видеть в любом типовом расчетом документе.

Приведу пример кода процедуры ДанныеДляЗаполненияВДанныеФормы, параметром в которую мы передаем результаты расчета для дальнейшего вывода в форму документа/обработки.

ТаблицыНачислений = РасчетЗарплатыРасширенныйФормы.ТаблицыНачисленийФормы();
ТаблицыНачислений.Начисления = Объект.Начисления;
РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыНачисленияВДанныеФормы(ТаблицыНачислений, ДанныеЗаполнения.Начисления, Объект.Организация, Объект.МесяцНачисления);
РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыНДФЛВДанныеФормы(Объект.НДФЛ, Объект.ПримененныеВычетыНаДетейИИмущественные, ДанныеЗаполнения.НДФЛ);
УчетНДФЛФормы.ЗаполнитьВторичныеДанныеТабличныхЧастей(ЭтаФорма);

МассивОписанийТаблицФормы = МассивОписанийТаблицФормы(ЭтаФорма);
ЗарплатаКадрыРасширенный.ВводНачисленийЗаполнитьВторичныеДанныеПоказателей(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыРасширенный.ПериодНачисленияЗаполнитьИспользованиеПериода(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыРасширенный.ЗаполнитьДоступностьМестаПолученияДохода(ЭтаФорма, МассивОписанийТаблицФормы);

Т.е. по факту мы используем типовые методы. Но тут своя магия. Чтобы этот код работал, мы должны правильно подготовить данные формы.

Например, в обработчике "ПриСозданииНаСервере" вызвать метод программного создания показателей и их значений в ТЧ Начисления

РасчетЗарплатыРасширенныйФормы.ДокументыВыполненияНачисленийДополнитьФорму(ЭтаФорма, ОписаниеТаблицыНачислений(ЭтаФорма), "Начисления");

А так же у нас должны быть созданы всевозможные служебные процедуры и функции, описывающие наш документ (ОписаниеТаблицыНачислений(), ОписаниеДокумента(), ОписаниеТаблицыНДФЛ(), ОписаниеПанелиВычетыНаСервере(), ОписаниеПанелиВычеты(), КонтролируемыеПоля()).

Думаю, просто нет смысла полностью приводить данный код. К статье прикладываю обработку, в которой реализовано все вышеописанное. С учетом того, что используются только типовые методы, вы можете самостоятельно посмотреть примеры использования на типовых документах.

При некоторой смекалке, можно адаптировать методы модулей РасчетЗарплатыРасширенныйФормы, УчетНДФЛФормы и аналогичные для того, чтобы полностью програмно формировать расчетные документы.

Текущий пример тестировался в ЗУП 3.1.18 и ERP 2.5.7.150

МенеджерРасчета ЗУП расчет зарплаты расчетные механизмы менеджер расчета

См. также

Зарплата Роли и права Системный администратор Бухгалтер 1С v8.3 Бухгалтерский учет Управление правами 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Молдова Россия Казахстан Бухгалтерский учет Платные (руб)

Расширение позволяет максимально полно ограничить доступ пользователей к данным по заработной плате, а именно закрывает доступ к документам начисления и выплаты заработной платы, не позволяет просматривать бухгалтерские отчеты по счету учета зарплаты а также убирает зарплатные проводки из журнала проводок. Расширение запрещает просматривать платежные документы на выплату зарплаты, так же не доступны регламентные отчеты в ПФР и ИФНС. Расширение предлагает готовые настроенные профили "Бухгалтер без зарплаты", "Только просмотр без зарплаты".

5940 руб.

27.05.2021    43173    320    106    

254

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта 1С v8.3 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Торговля и склад 7.7 Бытовые услуги, сервис Оптовая торговля, дистрибуция, логистика Электротехника и микроэлектроника Управленческий учет Платные (руб)

Модуль или расширение «Сервисный центр для 1С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

16800 руб.

01.11.2012    98129    117    1    

127

Корректировка данных Зарплата Бухгалтер 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

60000 руб.

06.10.2023    6858    39    21    

46

Зарплата Оперативный учет 8.3.14 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Расширение предназначено для конфигурации 1С:Управление торговлей 11х и позволяет выполнить расчет сумм к выплате по результатам работы сотрудников. Благодаря этому решению можно легко получать готовые суммы бонусов и выплат менеджерам по продажам на основании данных о продажах. Возможность доработки расширения позволяет реализовать любые, самые уникальные варианты расчета сумм к выплате – с минимальными затратами.

24000 руб.

04.06.2025    343    2    0    

3

Перенос данных 1C Зарплата Бюджетный учет Программист Бухгалтер 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет зарплаты для бюджетных учреждений 3.5» и «КАМИН:Зарплата для бюджетных учреждений 5.5» на конфигурацию «Зарплата и кадры государственного учреждения».

12000 руб.

28.07.2016    62947    168    145    

139

Зарплата Учет рабочего времени Программист Бизнес-аналитик Бухгалтер Пользователь 1С v8.3 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Платные (руб)

Обработка предназначена для заполнения нецикличных графиков работы для вахтового метода работы и для работы в полевых условиях труда. Вводятся все виды времени вахтового цикла. Календарь вахтовика позволяет не заполнять индивидуальные графики работы на каждого сотрудника, что сильно снижает трудозатраты на ввод данных. Решение предназначено для ЗУП 3.х; ЕРП 2.х; КА 2.х; ЗКГУ 3.х. Благодаря использованию обычных графиков работы, норму времени можно указать по графику пятидневки.

6600 руб.

18.12.2019    28509    36    6    

33

Загрузка и выгрузка в Excel Зарплата Учет рабочего времени Бухгалтер 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Внешняя обработка, позволяет пакетно создать шаблоны по подразделениям для заполнения табеля в Excel, после чего загрузить заполненные шаблоны в документы ЗУП "Табель учета рабочего времени", «Данные для расчета зарплаты». Поддерживается заполнение до 6 видов рабочего времени. Тестировалась на ЗУП 3.1.25.40. Подключается как дополнительная внешняя обработка. Необходима версия платформы с 8.3.18.

7800 руб.

23.03.2017    61484    83    99    

98
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. leosoft 167 24.09.21 22:28 Сейчас в теме
Интересная информация! А где на практике это может потребоваться? Или это чисто академический интерес?
2. maraty 479 25.09.21 08:46 Сейчас в теме
(1) например свой расчетный документ, или разработка подсистемы планирования и прогнозирования ФОТ, где Фот считается на год вперёд. Да и в принципе любое программное формирование расчетных документов. Например у нас на входе (шина данных) есть сумма, а нам нужно получить рассчитанные страховые взносы, НДФЛ с вычетами или другие расчетные данные.
nightowl5; Student1C; +2 Ответить
3. biimmap 2048 05.01.22 13:27 Сейчас в теме
Стоит наверно в статье дописать, что нужные таблицы и реквизиты, в т.ч. реквизиты формы, необходимо создать на форме обработки. Это собственно нужно, чтоб была форма, которую везде передают как параметр в программном интерфейсе. Слава богу в коде не проверяется принадлежность формы, поэтому зарплату можем и в справочнике посчитать)
4. maraty 479 09.01.22 12:41 Сейчас в теме
(3) Вот это как раз не обязательно. Можно обойтись вообще без формы. Тут https://infostart.ru/public/1576926/ я реализовал именно так. Но это конечно обход типового алгоритма, который рассчитан только на формы.
5. biimmap 2048 09.01.22 12:51 Сейчас в теме
(4) поэтому и написал столь категорично, что это обход. У меня есть такой принцип: делаю максимально похоже на типовой запуск программного интерфейса. Т.е. нужна форма - держи форму обработки со всеми нужными реквизитами) Нужны таблицы - получаю их тем же способом что и типовая. Тогда программный интерфейс правильно работает. И нет нужды искать и исправлять ошибки. В общем лень заставляет делать правильно)))
6. maraty 479 09.01.22 12:58 Сейчас в теме
(5) Ну когда писал отдельные расчетные документы, делал тоже так. Но вот когда стоят задачи, вроде полностью автоматизированного расчета множества документов, то тут приходится заниматься таким творчеством :)
7. user1711730 04.03.22 14:03 Сейчас в теме
Пересчитать НДФЛ таким образом можно? В коде вместо МенеджерРасчета.РассчитатьЗарплату(); ставлю МенеджерРасчета.ПересчитатьНДФЛ(); результат неоднозначный. Задача пересчитать НДФЛ только по тем сотрудникам которые есть табличной части документа Начисление зарплаты.
8. maraty 479 04.03.22 14:25 Сейчас в теме
(7) В МенеджерРасчета.Зарплата.Начисления перед вызовом ПересчитатьНДФЛ() перенесли начисления документа?
Правила использования процедупы расчета выполнили?
//Требует обязательного заполнения НастройкиРасчета.Сотрудники или НастройкиРасчета.ФизическиеЛица

Я перечитывал НДФЛ по схеме: Заполняем Зарплата.Начисления, устанавливаем РассчитыватьНДФЛ = Истина, вызываем
РассчитатьЗарплату().
9. user1711730 04.03.22 14:43 Сейчас в теме
Все, кроме перенесения начислений документа сделала. Как начисления документа перенести?
10. user1711730 04.03.22 15:32 Сейчас в теме
Я так понимаю, что заполнение Зарплата.Начисления в этой части кода?

ОтборМенеджераРасчета = МенеджерРасчета.СоздатьОтборы();
ОтборМенеджераРасчета.Подразделение = Подразделение;
МенеджерРасчета.ЗаполнитьНачислениеЗарплаты(СотрудникиДляНачислений, ОтборМенеджераРасчета);

Мне нужно рассчитать НДФЛ по всем начислениям сотрудника, так что я использовала последний пример из статьи. Проблема в том, что я правлю суммы начислений в документе "Начисление зарплаты" и нужно рассчитать с учетом исправлений. Для этого устанавливаю параметр МенеджерРасчета.НастройкиРасчета.СохранятьИсправления = Истина; Однако суммы НДФЛ отличаются от сумм встроенного расчета НДФЛ по кнопке "Пересчитать НДФЛ".
11. maraty 479 04.03.22 16:21 Сейчас в теме
(10) Необходимо вручную перенести данные из табличной части документа Начисления в МенеджерРасчета.Зарплата.Начисления, только не 1:1, а дополнительно заполнив реквизит ТЧ ИдентификаторСтроки = ИдентификаторСтрокиВидаРасчета и возможно заполнить реквизит Сумма из Результат (сходу не помню).
Для Каждой строки установить ФиксСтрока = Истина (есть еще ФиксЗаполнение,ФиксРасчетВремени,ФиксРасчет, но фиксированной строки должно хватить).
Т.е. у нас менеджер расчета получит таблицу начислений с правильными суммами и не будет их пересчитывать, а рассчитает на основании текущих данных НДФЛ.
12. user1711730 15.03.22 09:57 Сейчас в теме
При выборе расчета по одному сотруднику по начислению, если сотрудник период отработал не полностью, выдает ошибку:
При расчете начисления «Ученический договор (прием)» за Февраль 2022 для сотрудника Бадьин Андрей Александрович возникла ошибка: Деление на 0
Формула, используемая при расчете: СуммаПоДоговору * ВремяВЧасах / НормаЧасов

{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(10923)}: ВызватьИсключение ТекстСообщения;
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(10755)}: Строка.Результат = РезультатПоФормуле(ИсходныеДанные, ФормулаДляВыполнения, ФормулаДляПредставления, Строка);
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(10179)}: РассчитатьРезультатНачисленияПоФормуле(
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(10126)}: РассчитатьНачисленияПоФормуле(ОчередностьРасчета.СтрокиОчередности);
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(10070)}: РассчитатьНачисленияОчередности();
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(9965)}: РассчитатьНачисления();
{Обработка.МенеджерРасчетаЗарплаты.МодульОбъекта(652)}: РассчитатьЗарплатуСлужебный();
{ВнешняяОбработка.ПримерИспользованияМенеджераРасчета.Форма.Форма.Форма(173)}: МенеджерРасчета.РассчитатьЗарплату();
{ВнешняяОбработка.ПримерИспользованияМенеджераРасчета.Форма.Форма.Форма(109)}: РасчитатьНачислениеПоСотрудникуНаСервере(Объект.МесяцНачисления, Объект.Организация, Сотрудник, Начисление);
13. maraty 479 15.03.22 13:52 Сейчас в теме
(12) НормаЧасов = 0.
Значит в расчетах есть какой то период, для которого не рассчитан график сотрудника. Если он уволен, попробуйте в таблице менеджера ограничить дату окончания датой увольнения.
15. VID1234 148 09.08.22 13:13 Сейчас в теме
(13)Здравствуйте. Я так понимаю, если скачаю эту обработку, то не смогу понять как без форм создать документ? мне нужно создать документы по подразделениям разовое начисление, с добавлением своего показателя! Или как можно реализовать, чтобы с регистра сведений подтянуть процент в документ разовое начисление. Допустим добавляю строку с сотрудником и у меня кроме подразделения, оклада и премии заполняется и мой показатель, с регистра сведений. а то приходится вручную его заполнять.
14. Matveev_VS 167 05.07.22 16:40 Сейчас в теме
16. Student1C 61 07.12.22 14:44 Сейчас в теме
А как-то можно рассчитать Размер по определенному Начислению? Для записи в РС Плановые начисления.
17. Eeeehhhh 06.03.23 20:49 Сейчас в теме
А как с помощью этой обработки рассчитать к примеру отдельный документ? Ту же премию?
Заранее спасибо за ответ.
Оставьте свое сообщение