Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям)

Публикация № 1576926 27.12.21

Бухгалтерский учет - Зарплата

Программное создание документов расчеты зарплаты менеджер расчета механизмы ЗУП 3.1 разработка расчетных

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

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

Сначала кратко приведу как работает типовой механизм, потом опишу как я это реализовал в обработке. 

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

Как работает типовая логика.

При создании формы документа  для табличных частей, использующих показатели, создаются дополнительные колонки Показатель1...ПоказательN и Значение1...ЗначениеN, в которые переносятся данные из табличной части Показали, связанные по реквизиту ИдентификаторСтрокиВидаРасчета.

По команде "Заполнить" запускается расчет в фоновом задании, используется метод "ПодготовитьДанныеДляЗаполнения" из модуля менеджера. Думаю тут не нужно напоминать про существование параметра запуска "РежимОтладки", который позволяет не запускать выполнение в фоне, для удобства отладки.

Результат = ДлительныеОперации.ЗапуститьВыполнениеВФоне(
	УникальныйИдентификатор,
	"Документы.НачислениеЗарплаты.ПодготовитьДанныеДляЗаполнения",
	СтруктураПараметров,
	НаименованиеЗадания);

Но в модуле менеджера основной логики нет, тут вызывается функция из общего модуля "Расчет зарплаты расширенный".

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

И уже в функции "ДанныеДляЗаполненияТаблицДокумента" происходит логика заполнения менеджера расчета, для расчета зарплаты. Ранее я уже описывал данный механизм в статье 

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

Если кратко по этой функции, то мы получаем сотрудников для расчета

Сотрудники = СотрудникиДляНачисленияЗарплаты(Организация, Подразделение, МесяцНачисления, ПараметрыСотрудников);

Инициализируем менеджер расчета

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

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

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

ДанныеЗаполнения.Начисления = МенеджерРасчета.Зарплата.Начисления;

После выполнения фонового задания происходит заполнение документа из рассчитанных данных

Если Результат.ЗаданиеВыполнено Тогда
	ЗаполнениеПослеВыполненияДлительнойОперации();
КонецЕсли;

Таблицы из формата менеджера расчета преобразуются в формат формы документа

ДанныеДляЗаполненияВДанныеФормы(ДанныеДляЗаполнения, Объект);

Все обработчики переноса находятся общем модуле РасчетЗарплатыРасширенныйФормы

РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыНачисленияВДанныеФормы(ТаблицыНачислений, ДанныеЗаполнения.Начисления, Объект.Организация, Объект.МесяцНачисления, ПозицииВставки, Объект.РежимДоначисления);

В событии "ПередЗаписьюНаСервере" происходит перенос показателей из табличных частей в табличную часть "Показатели"

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

Вроде бы все просто, бери, копируй код в обработку, пиши свое решение. Сложность в том, что все механизмы переноса данных менеджера расчета в данные формы рассчитаны на форму. Все методы находятся в общем модуле РасчетЗарплатыРасширенныйФормы. В коде есть такие методы как Строка.Свойство(), что мы можем применить только к ДанныеФормыКоллекция.  

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

Собственно интерфейс обработки

 

Я максимально упростил условия. Т.е. в шапке у нас только месяц расчета организация и ответственный.

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

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

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

Расчет реализован через длительные операции, т.е. через фоновые задания. Естественно, т.к. это внешняя обработка, она должна быть подключена в дополнительные отчеты и обработки. При открытии напрямую, будет работать без фонового задания.

Выполнение команды через длительные операции отображением прогресса работы.

Возврат ДлительныеОперации.ВыполнитьПроцедуру(
	ПараметрыВыполнения, 
	"ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки", 
	ПараметрыЗадания,
	АдресХранилища);

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

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

Процедура РасчитатьЗарплату(Параметры, АдресРезультата) Экспорт

	Подразделения = Параметры.Подразделения;
	
	ПорядковыйНомер = 1;	                            
	КоличествоПодразделений = Подразделения.Количество();
	
	Для Каждого ПараметрыРасчета Из Подразделения Цикл
		
		Процент = Окр(ПорядковыйНомер / КоличествоПодразделений * 100, 0);
		
		ДлительныеОперации.СообщитьПрогресс(Процент, 
			СтрШаблон(
				НСтр("ru = 'Расчет подразделения %1 (%2 из %3)'"),
				ПараметрыРасчета.Подразделение,
				ПорядковыйНомер,
				КоличествоПодразделений));
			
		РасчитатьДокумент(Параметры, ПараметрыРасчета);

		ПорядковыйНомер = ПорядковыйНомер + 1;

	КонецЦикла;	

КонецПроцедуры

В процедуре РасчитатьДокумент создаем или получаем объект документа

Если ЗначениеЗаполнено(ПараметрыРасчета.Документ) Тогда
	ДокументОбъект = ПараметрыРасчета.Документ.ПолучитьОбъект();
Иначе
    ДокументОбъект = Документы.НачислениеЗарплаты.СоздатьДокумент();
КонецЕсли;

Как уже писал, использую максимально типовые механизмы, поэтому расчет проходит так же через типовой метод

Документы.НачислениеЗарплаты.ПодготовитьДанныеДляЗаполнения(ПараметрыВыполнения, АдресХранилища);	

СтруктураДанных = ПолучитьИзВременногоХранилища(АдресХранилища);

Ну и заполнение документа

	Если СтруктураДанных.Свойство("ДанныеДляЗаполненияТаблицДокумента", ДанныеДляЗаполнения) Тогда

		// Заполнение табличных частей и вторичных данных коллекций, которые с ней связаны.
		ОчиститьТаблицыДокументаНаСервере(ДокументОбъект);
		
		//Эмуляция формы для удобства работы с типовыми механизмами 
		//Для использования максимально типового функциола смоделируем в объекте данные формы документа
		ЭтаФорма = ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру(ПараметрыВыполнения);
		ЭтаФорма.Вставить("ВременныйОбъект", ДанныеДокументаВОбъект(ДокументОбъект));
		
		//Данные процедура полностью идентичная аналогичной процедуре формы документа НачислениеЗарплаты
		ДанныеДляЗаполненияВДанныеОбъекта(ДанныеДляЗаполнения, ЭтаФорма.ВременныйОбъект);
		
		//Окончательно перенесем данные объекта в данные документа
		ДанныеОбъектаВДанныеДокумента(ЭтаФорма, ДокументОбъект, ПараметрыВыполнения);

С учетом того, что мы в том числе перезаполняем документ, то чистим все таблицы документа

Для Каждого ТабличнаяЧасть Из Метаданные.Документы.НачислениеЗарплаты.ТабличныеЧасти Цикл 
	ДокументОбъект[ТабличнаяЧасть.Имя].Очистить();
КонецЦикла;

Будем считать что в ТЧ ДополнительныеРеквизиты у нас пусто :)

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

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

Т.к. использую типовые механизмы переноса, но при этом не используя форму, то например в общем модуле ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанныеТаблицыРасчета пришлось обходить вот такое условие  

Если СтрокаКоллекции.Свойство("ДокументОснование") Тогда
	СтруктураДокументОснование.ДокументОснование = СтрокаКоллекции.ДокументОснование;
	ЗаполнитьЗначенияСвойств(НоваяСтрокаПоказателя, СтруктураДокументОснование);
КонецЕсли;

Для этого вместо таблиц значений использовал массивы структур

Форма.Объект.Вставить(Элемент.Ключ, ОбщегоНазначения.ТаблицаЗначенийВМассив(Элемент.Значение));

Тут форма - это структура. Сделано для удобства и "эмуляции" формы.

Показатели в таблицы добавляю програмно

	МаксимальноеКоличествоПоказателей = ЗарплатаКадрыРасширенныйПовтИсп.МаксимальноеКоличествоОтображаемыхПоказателей();
	Для Каждого ТабличнаяЧасть Из Метаданные.Документы.НачислениеЗарплаты.ТабличныеЧасти Цикл
		Объект.Вставить(ТабличнаяЧасть.Имя, ДокументОбъект[ТабличнаяЧасть.Имя].Выгрузить());
		Для НомерПоказателя = 1 По МаксимальноеКоличествоПоказателей Цикл
			Объект[ТабличнаяЧасть.Имя].Колонки.Добавить("Показатель" + НомерПоказателя, Новый ОписаниеТипов("СправочникСсылка.ПоказателиРасчетаЗарплаты"));
			Объект[ТабличнаяЧасть.Имя].Колонки.Добавить("Значение" + НомерПоказателя, Метаданные.ОпределяемыеТипы.ЗначениеПоказателяРасчетаЗарплаты.Тип);
		КонецЦикла;
	КонецЦикла;                          

 

Записываем документ с чисткой перерасчетов.

		ДокументОбъект.ДополнительныеСвойства.Вставить("УдалитьПерерасчетыТекущегоПериода", Истина);
		Попытка
			ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение); 
		Исключение
			ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
			ОбщегоНазначения.СообщитьПользователю(СтрШаблон(НСтр("ru = 'Не удалось провести расчетный документ %1 по причине:
				|%2'"), ДокументОбъект.Ссылка, КраткоеПредставлениеОшибки(ОписаниеОшибки())));
		КонецПопытки;


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

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

 

Разработано в конфигурации 1С:Предприятие 8.3 (8.3.20.1613)

Код актуален для конфигурации Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.20.71). Дополнительно протестировал  работу в 1С:ERP Управление предприятием 2 (2.5.7.201) (В демо версии подразделения для теста есть в организации "Деловой союз").

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

К чему это я. Результаты работы данный обработки я сравнивал через выгрузку документа через обработку "Выгрузка загрузка данных в XML" и затем сравнивая результаты расчета через обработку и вручную.

Весь код показать не могу, слишком много для статьи. Мог упустить что-нибудь важное в статье, отвечу в комментариях. Если что-то конкретное, то приведу пример кода. Обработка писалась с нуля исключительно для данной статьи. 

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

 

Скачать файлы

Наименование Файл Версия Размер
Программное создание и расчет документов начисления зарплаты в конфигурации ЗУП 3.1 и ERP (по подразделениям):

.epf 19,71Kb
7
.epf 1.0 19,71Kb 7 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Komanda1C 3 27.12.21 09:56 Сейчас в теме
А зачем так нужно делать? Расчет обычно выполняется в рамках организации, а не подразделений.
2. the1 1101 27.12.21 10:03 Сейчас в теме
(1) Шутить изволите? Если в организации сотни подразделений, физически невозможно все рассчитать в одном документе.
ixijixi; ubnkfl; +2 Ответить
3. maraty 305 27.12.21 10:17 Сейчас в теме
(1) Да банально возьмем ограничение в 99тыс строк в табличных частях документов.
Предположим в организации 10тыс сотрудников. Ведется учет по РК, СН. Еще несколько дополнительных начислений, надбавок. Добавим несколько удержаний. В общем в среднем на каждого сотрудника 4 начисления (Оклад, РК, СН, надбавка). Итого по 40тыс строк в ТЧ Начисления. А теперь на каждое начисление у нас по несколько показателей. Время, ставка, оклад, северный коэффициент, районный. В общем в крупной организации этого добра хватает. В табличной части "Показатели" у нас внезапно больше 99тыс строк и перестают сохраняться документы. Да и открывать документы где в табличных частях больше 10к строк то еще удовольствие для пользователя.
А если добавим сюда блокировки скуля по таблицам в РС ЗначенияПоказателейНачислений, то будет еще веселее.
4. Komanda1C 3 27.12.21 10:48 Сейчас в теме
(3)Коллега, а назовите хотя-бы одну организацию, где 10000 человек?
У нас в организации, например, 700 подразделений.
5. maraty 305 27.12.21 11:15 Сейчас в теме
(4) в яндексе запрос "top организаций по численности". Просто участвовал в некоторых организациях из этого топа в проектах, поэтому не хотелось бы их называть, а в особенности разглашать их численность.
10. biimmap 598 05.01.22 13:10 Сейчас в теме
6. Komanda1C 3 27.12.21 11:21 Сейчас в теме
Топ численности персонала как и выручка компаний не является конфиденциальной информацией.
Например, Газпром, 500 000 тысяч сотрудников, но при этом 380 организаций. При этом самые крупные организации Газпрома имеют ОП.
По факту 10000 нет ни у кого.
7. maraty 305 27.12.21 11:35 Сейчас в теме
(6) Вот тут точно не скажу точных цифр. Да, согласен что в крупных компаниях идет дробление на организации. Пусть там 5 тыс. сотрудников, но проблемы указанные мной в (3) не выдуманы. Мы упирались в проекте в озвученные мной ограничения. Совокупное количество сотрудников, начислений и показателей фактически не давало сохранить документ в системе по одной организации.
8. Komanda1C 3 27.12.21 12:00 Сейчас в теме
(7)Обработка, в целом, полезная, но только для очень-очень крупных компаний...
9. maraty 305 27.12.21 12:57 Сейчас в теме
(8) да, так и есть. Организациям, у которых все рассчитывается в одном документе, это не нужно.
Разве что будет интересен сам принцип расчета без форм. Я по этому же принципу писал обработки по автоматическому расчету отпусков.
36. Alex65rus 01.04.22 18:14 Сейчас в теме
(7) Спасибо за статью. Запросов на ЗУП все больше, и 10к+ сотрудников сейчас - объективная реальность.
11. biimmap 598 05.01.22 13:12 Сейчас в теме
(6) это заблуждение. И главное, что данная обработка актуальна при численности свыше 3х тысяч.
Alex65rus; +1 Ответить
15. maraty 305 09.01.22 12:35 Сейчас в теме
(11) Вообще целью было показать программное создание и расчет документа Начисления зарплаты. Пожалуй неудачно выбрал такой относительно узкий пример, как расчет по подразделениям, который используют только крупные организации. Можно сделать пример, как рассчитать зарплату автоматически, через регламентное задание по расписанию. Но это так себе будет решение, с точки зрения практического применения. Можно рассчитывать автоматически кадровые документы, например отпуск. Но тут тоже для каждой компании своя практика и опять же оправданно только при большом количестве сотрудников.
12. biimmap 598 05.01.22 13:34 Сейчас в теме
Здесь аналогично про форму недостаточно написано. Без формы превратить результаты расчета в документ не представляется возможным типовым программным интерфейсом. Собственно это и не обязательно. Результат из Менеджера расчета зарплаты можно напрямую в ТЧ положить. Хотя придётся циклом пройтись по его строкам)

Вообще плохо сейчас сделано, что без формы не работают многие алгоритмы заполнения и расчета. Такая же проблема в кадровом учете в таблицах начислений и показателей.
the1; RealSurfer; +2 Ответить
13. the1 1101 07.01.22 22:48 Сейчас в теме
Какова бы ни была численность, один расчетчик просто не в состоянии рассчитать более 400-500, ну пусть и 1000 сотрудников. Поэтому при достижении этой численности нанимается второй расчетчик, и о расчете всей организации в одном документе приходится забыть.
14. maraty 305 09.01.22 11:22 Сейчас в теме
(12) В моей обработке расчет и заполнение документа проходят в модуле обработки, соответственно на сервере и без форм. Да, типовые методы в РасчетЗарплатыРасширенныйФормы подразумевают работу исключительно с формой. Но это можно обойти, передав в общий модуль структуру со свойством Объект, а вместо таблиц - массив структур, имитирующих строки (чтобы обойти вызов метода "Свойства"). Да, конечно эти таблицы еще модифицировать, добавив колонки показателей и их значений. Об этом писал в статье. Если вы используете результаты распределения, то нужно не забыть корректно перенести результаты в документ.

Метод прямого перекладывания результатов расчета их менеджера расчета в документ тоже допустим, но тут нужно просто быть внимательным. Например вручную перенести реквизит ТЧ ИдентификаторСтроки в ИдентификаторСтрокиВидаРасчета. Не забыть исключить показатели, у которых есть признак "ОтображатьВДокументахНачисления" стоит в ложь. Если у нас не только начисления, а еще удержания, перерасчеты, то не забыть для идентификатора строки ввести модификатор, чтобы показатели корректно были связаны со строкой расчета. Ну и еще по мелочам. Не забываем что результаты расчета для ТЧ "ПримененныеВычетыНаДетейИИмущественные" в менеджере расчета возвращаются в НДФЛ.

В общем всё зависит от требуемого конечного результата. Мой респект всем разработчикам, кто в ЗУП все таки дошел до прямого использования менеджера расчета и его результатов.
16. biimmap 598 09.01.22 12:48 Сейчас в теме
(14) я в нескольких обработках все нужные табличные части и реквизиты формы создаю на форме обработки. и потом запускаю весь программный интерфейс как будто из документа. удобно и меньше думать надо над последствиями.
user_2010; +1 Ответить
17. maraty 305 09.01.22 13:01 Сейчас в теме
(16) Тоже решение, согласен, но часть функционала требует работы на клиенте. Хотя зарплата она такая, в большинстве случаев, пользователи хотят контролировать процесс.
18. SlavaKron 11.01.22 13:34 Сейчас в теме
(16) А в общих модулях используются какие-то методы и свойства исключительно управляемой формы или данных формы? Что если вместо формы передать структуру, содержащую прикладной объект с ключом "Объект"?
19. maraty 305 11.01.22 14:02 Сейчас в теме
(18)
1. У объекта должны быть табличные части, идентичные по структуре документу.
2. ТЧ должны быть дополнены колонками Показатель1...N, и Значение1...N
3. Строки ТЧ должны иметь метод "Свойства". В форме это обеспечивается, что ТЧ имеют тип "ДанныеФормыКоллекция". В моем случае, я ТЧ сделал через массив структур.
Так, это сходу что помню.
Ну минус, что приходится сначала переносить данные из менеджера в "форму", а затем уже в документ. Это нужно чтобы максимально сохранить всю типовую логику по переносу данных. Прямой перенос из менеджера расчета в документ тоже возможен, но уже через собственные методы.
20. biimmap 598 11.01.22 14:23 Сейчас в теме
(18) да ничего особенного, просто зачем этот велосипед? Коллега ранее Вам ответил, что должен быть определенный набор реквизитов и табличных частей. Их элементарно скопировать из типовой формы. А в структуру их нужно создавать. Вот и вся разница. Я за то, чтоб копировать типовое, а не городить велосипеды.
21. maraty 305 11.01.22 15:01 Сейчас в теме
(20) Куда скопировать? В другую форму которой у меня нет? А типовые реквизиты, которые создаются программно на форме как элементарно скопировать? Мы по моему говорим о разных задачах. Мой способ полностью работает на сервере. Ваш способ требует наличия формы и работы на клиенте.
22. biimmap 598 11.01.22 15:11 Сейчас в теме
(21) форма обработки есть!!! в неё всё и копирую. а потом форму обработки использую как параметр для программного интерфейса
23. maraty 305 11.01.22 15:21 Сейчас в теме
(22) моя реализация допускает выполнения расчета в регламентном задании. без формы соответственно. Правда сомневаюсь что такой расчет кому то нужен, но тем не менее можно :)
И потом с формой нужно смотреть как это будет работать на большом объеме данных. Просто когда дойдет до оптимизации производительности, в первую очередь будут избавляться от перекладывания данных в форму и обратно.
24. biimmap 598 11.01.22 15:23 Сейчас в теме
(23) В таких задачах речь про производительность обычно не идёт! Важно добиться цели, которая нормальным путём не достигается. Идею с формой обработки уже несколько раз использовал. Очень удобно.
25. maraty 305 11.01.22 15:31 Сейчас в теме
(24) Просто мне достаются задачи, когда писать нужно именно с учетом требований по производительности.
Когда есть пара десятков организаций, в каждой организации десятки и сотни подразделений и в целом несколько тысяч сотрудников, к сожалению простые способы не работают.
26. biimmap 598 11.01.22 15:33 Сейчас в теме
(25) на ночь запускаются такие обработки + попробуйте через фоновые задания реализовать многопоточную обработку данных. Коллега в Роснефти таким образом добивался классных результатов!
27. maraty 305 11.01.22 15:44 Сейчас в теме
(26) Тот проект, где я реализовывал подобное, уже давно закончился. Правда в отличии от реализации в статье, я там адаптировал типовые модули заполнения, это был действительно велосипед. А как реализовано в Роснефти при случае посмотрю.
28. user_2010 710 11.01.22 17:01 Сейчас в теме
Интересно! Такая реализация где-то используется в бою?
Нет ошибок в таком расчете начислений, удержаний, взносов?
Код же постоянно меняется. Насколько сложно поддерживать такую разработку? Предполагаю, что для каждого релиза приходится что-то дорабатывать/перелопачивать?
30. maraty 305 11.01.22 17:20 Сейчас в теме
(28) Именно эта реализация нет. Я реализовывал похожее решение, но вместо использования методов РасчетЗарплатыРасширенныйФормы, я переносил нужные процедуры в обработку и переписывал их на использование без форм. Такое решение как раз было сложнее поддерживать. А так фактически используем типовой метод расчета Документы.НачислениеЗарплаты.ПодготовитьДанныеДляЗаполнения, данные переносим в документ с помощью типовых методов РасчетЗарплатыРасширенныйФормы. Тут особо ничего не меняется.
29. user_2010 710 11.01.22 17:05 Сейчас в теме
(28) Тоже работала в большой компании 5.5 тыс сотрудников. Тоже многие операции автоматизировали. Но! Недостатком автоматизации - являются проблемы, которые никто не видит... и визуализируются проблемы только в момент подготовки отчетности...
31. maraty 305 11.01.22 17:23 Сейчас в теме
(29) Да, встречал такое что какая то мелочь не перенеслась в документ, что-то не провелось по регистрам и все. Отчеты работают не корректно. Поэтому и тестировал через выгрузку документа в XML и сравнение типового расчета и расчета обработкой.
32. user_2010 710 11.01.22 18:25 Сейчас в теме
33. vladir 114 04.03.22 15:35 Сейчас в теме
Добрый день. Скачал обработку. Проверял на конф. Зарплата и управление персоналом, редакция 3.1 (3.1.21.36) (не КОРП). В модуле формы Функция РезультатЗаполненияВДлительнойОперации() закомментировал строку: //СтруктураПараметров.Вставить("ВидОперации", Справочники.ВидыОперацийРасчетаЗарплаты.ПустаяСсылка()); (Такого справочника нет). В остальном все хорошо! Однако обнаружилась проблема: При повторном расчете ЗП по подразделению все таблицы документа очищаются, документ проводится с пустыми таблицами. Т. е. получается чередование, первый расчет - все Ок, второй расчет - очистка таблиц. Как обойти, пока не понял. Буду благодарен если подскажете, как устранить проблему.
35. maraty 305 09.03.22 16:04 Сейчас в теме
(33)
1. в ПРОФ ВидОперации можно закомментировать или убрать в условие
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОперацииРасчетаЗарплаты") Тогда
		СтруктураПараметров.Вставить("ВидОперации",				Справочники.ВидыОперацийРасчетаЗарплаты.ПустаяСсылка());
	КонецЕсли;

2. Спасибо, увидел ошибку. Для исправления в начале процедуры РасчитатьДокумент(ПараметрыВыполнения, ПараметрыРасчета)
добавить код
	ПараметрыВыполнения.ДокументСсылка	= ПараметрыРасчета.Документ;
.
37. AlMedvedev 22.04.22 13:43 Сейчас в теме
(35)
ПараметрыВыполнения.ДокументСсылка = ПараметрыРасчета.Документ;


Добавил указанную строчку в начало процедуры. Документ заполняется, но данными без изменений.
34. user728230 08.03.22 07:28 Сейчас в теме
Есть моменты, когда сотрудники кадровым переводом туда-сюда в течение месяца (и даже иногда не один раз) переводятся.
Есть при этом суммированный учет времени. Есть моменты, когда необходимо соблюдать последовательность при начислении по подразделениям- сначала одни, именно ПОТОМ другие..... В общем идея хороша- автоматизировать.. Но не всем подойдет.
38. user728230 28.06.22 06:45 Сейчас в теме
У нас нет так много сотрудников -400-450 чел.. Но около 50 подразделений. Есть и суммированный, и РК, и РКС, и ещё куча всего. И один расчетчик. Тоже было желание начислять всем подразделениям сразу по кнопке Начислить. И формировать ведомости всем сразу по кнопке Выплатить ( возможно по отбору).. На самом деле рутина еще та два раза в месяц... Огромная экономия рабочего времени.
39. GeterX 1069 13.07.22 20:09 Сейчас в теме
Обработка не работает на релизе ЗУП 3.1.22.77
Поле объекта не обнаружено (ВидыОперацийРасчетаЗарплаты)
{ВнешняяОбработка.РасчетЗарплатыПоПодразделениям.Форма.Форма.Форма(302)}:СтруктураПараметров.Вставить("ВидОперации", Справочники.ВидыОперацийРасчетаЗарплаты.ПустаяСсылка());
{ВнешняяОбработка.РасчетЗарплатыПоПодразделениям.Форма.Форма.Форма(146)}:ДлительнаяОперация = РезультатЗаполненияВДлительнойОперации();


Не в той базе запустил, на КОРП работает.
Оставьте свое сообщение

См. также

Групповая установка даты выплаты в документах "Отпуск" и "Командировка" на заданную дату и перерасчет отобранных документов Промо

Обработка документов Зарплата v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

Обработка позволяет расчетчикам сократить время, затрачиваемое на расчет отпусков и командировок.

2 стартмани

15.02.2017    26845    93    ser6702    18    

Параметризация печатных форм под контрагентов (подключаемое расширение)

Печатные формы Адаптация типовых решений v8 1cv8.cf Абонемент ($m)

Расширение добавляет возможности параметризации печати для контрагентов. Подробнее описано здесь https://infostart.ru/1c/articles/1510459/

3 стартмани

05.08.2022    3381    3    sapervodichka    1    

Просмотр объектов очереди сообщений в 1С:Документооборот

Адаптация типовых решений v8 1cv8.cf Абонемент ($m)

В базах с бесшовной интеграцией с 1С:Документооборот есть Регистр сведений "Очередь сообщений в 1С:Документооборот". Для пользователя он мало информативен. Расширение позволяет просматривать сообщение в человеческом виде. И понимать проблему до объекта.

1 стартмани

02.08.2022    3355    11    sapervodichka    4    

Критерии отбора в расширении. 16+

Адаптация типовых решений v8 ERP2 УТ11 КА2 Абонемент ($m)

Связываем критерии отбора расширения с типовой структурой подчиненности в универсальных решениях 1С.

3 стартмани

09.06.2022    1936    5    Ankare    3    

Доработка документа для формирования проводок в регламентированном учете ERP

Адаптация типовых решений v8 ERP2 УТ11 БУ Абонемент ($m)

Статья о том, как включить разработанный документ в подсистему формирования проводок в конфигурации ERP

1 стартмани

17.12.2021    5290    5    maraty    6    

Групповое создание документов "Начисление зарплаты сотрудникам организации" (аванс и зарплата) в УПП

Зарплата Обработка документов v8 УПП1 Россия БУ Абонемент ($m)

Создаем "Начисление зарплаты сотрудникам организации" (аванс и зарплата) с отбором по организациям нажатием пары кнопок.

1 стартмани

12.07.2021    5677    0    VAAngelov    8    

Помощник подготовки данных для СЗВ-ТД

Зарплата Обработка документов Документооборот и делопроизводство v8 v8::СПР ЗКГУ3.0 ЗУП3.x Россия БУ ФОМС, ПФ, ФСС Абонемент ($m)

С 1 января 2020 г. начался переход на электронные трудовые книжки. Работодателям в 2020 г. предстоит выполнить ряд мероприятий для перехода на ЭТК, а также ежемесячно отчитываться в ПФР обо всех кадровых изменениях по форме СЗВ-ТД. В этой публикации размещена обработка, которая поможет быстро подготовить кадровые документы для заполнения СЗВ-ТД в программе 1С ЗУП 3.1, 1С ЗКГУ 3.1.

1 стартмани

23.01.2020    16937    115    Kaval88    62    

Автоматическое заполнение графиков в ЗУП 3.1

Зарплата Учет рабочего времени Обработка справочников v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Данная разработка будет актуальна для организаций с большим количеством графиков (несколько десятков/сотен).

1 стартмани

05.05.2018    36424    21    notserioussam    2    

Исправление ошибки универсального обмена Бухгалтерия предприятия, редакция 3.0 (3.0.65.х, расширение конфигурации)

Внешние источники данных Адаптация типовых решений v8 БП3.0 Абонемент ($m)

Уже у третьего клиента вижу ошибку Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {http://www.1c.ru/SSL/Exchange/Message}Header Значит, как говаривал Винни-Пух - это неспроста. Ну и точно неспроста, 1С что-то подшаманили в обмене через универсальный формат.

1 стартмани

19.10.2018    32174    55    capitan    15    

Расширение резервов отпусков Промо

Обработка документов Зарплата v8 v8::СПР ERP2 ЗКГУ3.0 ЗУП3.x Россия БУ Абонемент ($m)

Произвольная настройка базы для расчета резервов отпусков.

2 стартмани

10.08.2018    43013    68    СергейКа    30    

Проверка данных для расчета среднего заработка, перенесенных в ЗУП 3.х из ЗУП 2.5

Обработка документов Зарплата v8 v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

При переходе с ЗУП 2.5 на ЗУП 3.х часто возникают ошибки в переносе данных для расчета среднего заработка, а именно, неправильно учитывается отработанное количество календарных дней. Для исправления этих ошибок и предназначено данное решение. Применимо для ЗУП 3.х.

3 стартмани

30.01.2018    32208    89    ni_cola    12    

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1 Промо

Обработка документов Загрузка и выгрузка в Excel Зарплата v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Абонемент ($m)

Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.

3 стартмани

20.12.2017    68957    36    mvv1975    8    

Расчет стажа в ЗУП 3.1

Обработка документов Зарплата Кадровый учет v8::СПР v8::УФ ЗУП3.x Россия БУ Абонемент ($m)

Данное расширение добавляет на форму трудовой деятельности кнопку расчета стажа по трудовой книжке.

1 стартмани

26.01.2017    38608    247    sdw2007    20    

Изменение кода дохода для справки 2-НДФЛ без перепроведения документов в ЗУП 2.5

Обработка документов Зарплата v8::СПР ЗУП2.5 Россия БУ НДФЛ Абонемент ($m)

Обработка потребовалась в связи с приказом ФНС от 22.11.16 № ММВ-7-11/633, где изменился код премии с "2000" на "2002". Обработка меняет код дохода в регистре накопления "НДФЛСведенияОДоходах" на тот, который установлен в карточке вида расчета. Код меняется без перепроведения документов.

1 стартмани

11.01.2017    30842    199    forseil    26    

Поиск и исправление ошибок при заполнении 6-НДФЛ в ЗУП 2.5, Бухгалтерии 2.0, УПП 1.3 версия от 28.08.2018 Промо

Регламентированный учет и отчетность Анализ учета Зарплата v8 v8::БУ v8::СПР БП2.0 ЗУП2.5 УПП1 Россия БУ НДФЛ Абонемент ($m)

Помощь в поиске и исправлении ошибок при заполнении отчёта 6-НДФЛ в ЗУП 2.5, Бухгалтерии 2.0 Просмотр всех записей регистров, имеющих отношение к учёту НДФЛ с детализаций до сотрудника и документа. Ручная корректировка основных регистров. Обновлённая версия от 02.07.2018г

3 стартмани

25.10.2016    48347    234    serge_msk    21    

Механизм доп. реквизитов и сведений

Адаптация типовых решений v8 БП2.0 Абонемент ($m)

Как к новому справочнику подключить механизм дополнительных реквизитов и сведений

2 стартмани

23.06.2016    39834    45    piffoff    22    

Хранение файлов в томах на диске (для УПП 1.3)

Адаптация типовых решений v8 УПП1 Абонемент ($m)

Доработка типовой УПП 1.3 в плане хранения присоединенных файлов вне базы данных

2 стартмани

05.06.2016    74790    19    wowik    32    

Изящная доработка движений и проводок документов ERP 2

Адаптация типовых решений v8 ERP2 Россия Абонемент ($m)

Доработка движений и проводок документов в ERP с минимальным количеством изменений типового кода, на примере добавления в документ "Акт выполненных работ" подразделения в ТЧ "Услуги"

1 стартмани

05.04.2016    24104    21    acsent    22    

Ещё один вариант свертки регистров учета НДФЛ (для ЗБУ/ЗКОУ/ЗКМУ ред. 1, ЗУП ред. 2.5)

Свертка базы Зарплата v8 ЗУП2.5 ЗКБУ Россия НУ НДФЛ Абонемент ($m)

С появлением формы 6-НДФЛ вопрос правильного ведения исчисленного/удержанного/перечисленного НДФЛ встал не просто остро, а сверхостро! Поможем расчетчикам чем сможем...

1 стартмани

10.03.2016    42203    283    GlebHappy    50    

Специалист-Консультант по ЗУП 3.0 - решение всех задач из сборника

Подготовка к аттестации Зарплата v8::СПР ЗУП3.x Россия Абонемент ($m)

Файл-Word содержит решение всех задач из "Сборника задач для подготовки к экзамену 1С:Специалист-Консультант по внедрению прикладного решения ЗУП.3.0" (Май 2014 года).

3 стартмани

26.02.2016    57064    362    user_2010    74    

Перечисление НДФЛ в бюджет РФ (13%, 30%)

Обработка документов Зарплата v8 v8::СПР ЗУП2.5 БУ НУ НДФЛ Абонемент ($m)

Внешняя обработка (табличных частей), предназначенная для корректного заполнения документа "Перечисление НДФЛ в бюджет РФ". Конфигурация: Зарплата и Управление Персоналом, редакция 2.5

1 стартмани

27.01.2016    47630    240    1kashak    23    

Перечисление НДФЛ в бюджет: заполнение НДФЛ по расчетной ведомости для ЗУП 2.5

Обработка документов Зарплата v8 ЗУП2.5 Россия БУ НДФЛ Абонемент ($m)

Внешняя обработка для заполнению сумм НДФЛ для перечисления в бюджет по данным расчетной ведомости для 1С ЗУП 2.5

2 стартмани

30.12.2015    34838    71    pavel_pozdeev    4    

Резервы отпусков для УПП 1.3

Обработка документов Зарплата v8 УПП1 Россия БУ Абонемент ($m)

Обработка для создания резерва отпусков в 1С: УПП 1.3

1 стартмани

14.12.2015    41223    55    sarun    5    

Остатки отпусков по периодам и их использование. ЗУП 2.5 / КА 1.1 / УПП 1.3 / ЗУП 3.X / КА 2.2 / УП 2.2

Обработка документов Зарплата v8::СПР КА1 ЗУП2.5 УПП1 ERP2 КА2 ЗУП3.x БУ Абонемент ($m)

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

1 стартмани

17.11.2015    39034    344    Brawler    17    

Прикрепление внешних файлов к документам и справочникам 1С 8.3 (управляемые формы)

Адаптация типовых решений v8 1cv8.cf Россия Абонемент ($m)

В данной статье мы рассмотрим, как просто и быстро в любую конфигурацию на базе управляемых форм добавить функционал прикрепления внешних файлов к документам и справочникам. Я начну описание с нуля, т.е. с создания пустой конфигурации. Так что даже любой малоопытный разработчик (вроде меня =) ) сможет реализовать данный функционал в своей или уже написанной конфигурации. Если Вам не хочется разбираться с ниже написанной инструкцией, можете скачать файл*.doc с описанием и скриншотами, либо уже саму готовую конфигурацию.

1 стартмани

15.10.2015    108714    162    omenfarsh    31    

Алгоритмы и выгрузка ИБ с решениями для экзамена Специалист ЗУП 3.0.

Подготовка к аттестации Зарплата v8::СПР ЗУП3.x Россия БУ Абонемент ($m)

Аттестацию "1С:Специалист" по конфигурированию подсистем расчета зарплаты и управления персоналом в прикладных решениях "1С:Предприятие 8" автор сдал на отлично. Здесь решение обновлено до 3.0.24.125.

3 стартмани

24.08.2015    41110    84    IgorXml    54    

Универсальная загрузка данных из Excel в ЗУП 3.1

Обработка документов Загрузка и выгрузка в Excel Зарплата v8::СПР ЗУП3.x БУ Абонемент ($m)

Загрузка данных из Excel (xls, xlsx) в документы: "Премия", "Разовые начисления", "Призы (подарки)", "Начисление зарплаты", "Ведомость в банк", "Ведомость в кассу". Сотрудник будет найден при любом варианте указания ФИО: полностью, Петрова М.В., Павлова ТК, Соколов С Н, с указанием или без указания табельного номера.

10 стартмани

03.03.2015    31178    280    perepetulichka    41    

Расчет зарплаты в типовых конфигурациях 1С "Бухгалтерия предприятия 2.0 и 3.0"

Обработка документов Рабочее место Зарплата v8 БП2.0 Россия БУ Абонемент ($m)

Как известно, расчет зарплаты в составе типовых конфигураций 1С Бухгалтерия предприятия 2.0 или 3.0 имеет крайне ограниченные возможности. Собственно расчета сумм как таковых не происходит – бухгалтер сам вычисляет и ставит готовую сумму начисления работнику по каждому виду расчета. В связи с этим была разработана Система «Зарплата», которая позволяет проводить расчеты сумм зарплаты сотрудникам организации в бухгалтерской программе 1С в типовых конфигурациях "Бухгалтерия предприятия 2.0" и "Бухгалтерия предприятия 3.0"

1 стартмани

26.01.2015    42103    183    Selivanov    26    

Формирование линейных штрих-кодов без использования внешних компонент и шрифтов (3 способа)

Печатные формы Адаптация типовых решений v8 1cv8.cf Абонемент ($m)

Формирование линейных штрих-кодов без использования внешних компонент и шрифтов. Поддерживаются форматы: EAN8, EAN13, CODABAR, CODE39, CODE128 Способы формирования: растровая картинка (BMP, PNG), векторная картинка (WMF), штрихи в Табличном документе. Преодоление искажений при печати из терминальной сессии. Работает на мобильной платформе.

1 стартмани

02.01.2015    57548    388    Pasha1st    41    

Обмен данными с банком "Санкт-Петербург" для ЗУП 2.5.хх и УПП 1.3.хх

Обработка документов Обмен с банком Банковские операции Зарплата v8 ЗУП2.5 УПП1 Россия БУ Абонемент ($m)

Обмен данными по зарплатному проекту с банком "Санкт-Петербург"

2 стартмани

23.07.2014    34893    1    Alex_grem    4