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

04.03.20

Учетные задачи - Банковские операции

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

Добрый день, уважаемые коллеги!

Все мы люди и все мы работаем, в следствии чего получаем заработную плату. Работая с программой 1С ЗУП 3.1, я заметил один нюанс, который несколько усложняет жизнь расчётчика заработной платы. К сожалению отсутствует возможность быстрого подбора сотрудников в ведомость на выплату заработной платы в банк по зарплатному проекту. Увы, только ручками сидеть и набивать людей.

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

Итак, поехали. 

Работать будем через расширения и первым делом добавим в него документ "ВедомостьНаВыплатуЗарплатыВБанк" и его форму. Создадим кнопку на форму ("Заполнить по зарплатному проекту") и обработчик события (нажатие на кнопку). 

&НаКлиенте
Процедура Расш_ЗаполнитьПоЗарплатномуПроектуПосле(Команда)	
	Расш_ЗаполнитьПоЗарплатномуПроектуПослеНаСервере();	
КонецПроцедуры

//Формирует список ФЛ механизмом представлений и передаёт его в 
//стандартную процедуру расчёта ЗП
&НаСервере
Процедура Расш_ЗаполнитьПоЗарплатномуПроектуПослеНаСервере()
	
	ВедомостьНаВыплатуЗарплатыФормы.СоставОбработкаВыбораНаСервере(ЭтотОбъект,  
				ПолучитьФизЛицПоЗарплатномуПроекту(Новый Структура("ЗарплатныйПроект, ЗарплатныйПроектПустой",
				Объект.ЗарплатныйПроект, 
				НЕ ЗначениеЗаполнено(Объект.ЗарплатныйПроект))), 
				Истина);
	
КонецПроцедуры

Коротенько о механизме представлений:

1) Нет необходимости писать запросы, система сама отберёт поля из регистров, которые нам необходимы;

2) Обработает запрос, исходя из сформированных и переданных отборов и вернёт таблицу значений.

 
Список возможных полей, которые смог отыскать на форуме

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

Сама функция компоновки набора данных, для передачи его механизму представлений (как пример, добавил в запрос поле "ДатаРождения"):

//Возвращает список ФЛ (см. функцию "Расш_ЗаполнитьПоЗарплатномуПроектуПослеНаСервере")
//Параметры:
//СтруктураДанных - Тип "Структура". 
//Поля в структуре: "Зарплатный проект" - тип СправочникСсылка.ЗарплатныеПроекты
//		    "ЗарплатныйПроектПустой" - тип Булево.
Функция ПолучитьФизЛицПоЗарплатномуПроекту(СтруктураДанных)
	
	//Формируем отбор для механизма представлений
	ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
	
	ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц.ОкончаниеПериода = ?(Объект.Дата = Дата(1,1,1,0,0,0), КонецДня(ТекущаяДата()), КонецДня(Объект.Дата));
	ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц.ВключаяУволенныхНаНачалоПериода = Ложь;
	ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц.КадровыеДанные = "ДатаРождения";
	ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(
	ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц.Отборы, "ВидЗанятости", "<>", Перечисления.ВидыЗанятости.Совместительство); 
	
	//Получаем набор физлиц, работающих в организации
	ТаблицаФЛ = КадровыйУчет.СотрудникиОрганизации(Истина, ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц );
	
	ФизическиеЛица = ТаблицаФЛ.ВыгрузитьКолонку("ФизическоеЛицо");
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект,
		|	ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо
		|ИЗ
		|	РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
		|ГДЕ
		|	ВЫБОР
		|		КОГДА &ЗарплатныйПроектПустой
		|			ТОГДА ЛОЖЬ
		|		ИНАЧЕ ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо В (&ФизическоеЛицо)
		|			И ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект = &ЗарплатныйПроект
		|КОНЕЦ";
	
	Запрос.УстановитьПараметр("ФизическоеЛицо", ФизическиеЛица);
	Запрос.УстановитьПараметр("ЗарплатныйПроектПустой", СтруктураДанных.ЗарплатныйПроектПустой);
	Запрос.УстановитьПараметр("ЗарплатныйПроект", СтруктураДанных.ЗарплатныйПроект);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ТаблицаСотрудников = РезультатЗапроса.Выгрузить();
		
	Возврат ТаблицаСотрудников.ВыгрузитьКолонку("ФизическоеЛицо");
	
КонецФункции

На выходе из функции у нас уже есть массив физлиц, которые закреплены за определённым зарплатным проектом. Следует уточнить, что при формировании отборов в моём случае использовалась конкретная ситуация. 

Для отбора за период, в код функции можно добавить дату начала:

ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц.ОкончаниеПериода = ?(Объект.Дата = Дата(1,1,1,0,0,0), НачалоДня(ТекущаяДата()), НачалоДня(Объект.Дата));

Либо, нам нужны только совместители:

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

Или же необходимо получить ещё и уволенных за период, то просто меняем в следующей строке значение "Ложь" на значение "Истина":

ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц.ВключаяУволенныхНаНачалоПериода = Истина;

Можно так же дополнить запрос условием отбора по подразделению, из реквизита "Подразделение" в документе-ведомости. Это уже на Ваш вкус.

При разработке данного кода подглядывал в статью Универсальные процедуры и функции ЗУП 3.1

Надеюсь, что статья пригодится тем, кто столкнётся с подобным вопросом. Спасибо за внимание и уделённое время:)

Зарплата зарплатный проект ЗУП 3.1 доработка

См. также

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

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

120000 руб.

19.08.2020    26404    25    1    

28

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

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

19200 руб.

21.03.2023    13200    90    21    

77

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

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

5940 руб.

27.05.2021    40398    300    106    

228

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

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

60000 руб.

06.10.2023    5151    38    20    

46

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

Если вам нужно корректировать банковские документы, это расширение — именно то, что вам нужно! Создайте правило обработки, укажите, как заполнять документы, и оно автоматически применится при загрузке банковской выписки. Это значительно сократит время и усилия на корректировку. Расширение легко устанавливается в большинство современных конфигураций 1С:УТ 11.5, 1С:ERP 2.5, 1С:КА 2.5, 1С:УНФ 3.0, Розница 3.0

15000 руб.

20.12.2024    5862    10    14    

13

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

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

12000 руб.

28.07.2016    61926    163    141    

135

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта Платформа 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    96192    116    1    

123
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1114234 04.03.20 15:39 Сейчас в теме
2. nestokay 62 04.03.20 15:48 Сейчас в теме
3. CorvaxSU 10.03.20 18:07 Сейчас в теме
Обратите внимание, что в ВедомостьНаВыплатуЗарплатыФормы.СоставОбработкаВыбораНаСервере добавляются выплаты только по отсутствующим в ведомости работникам - см. цикл вокруг Форма.Объект.Состав.НайтиСтроки(Новый Структура("ФизическоеЛицо", ФизическоеЛицо)).
Т.е. повторное нажатие на кнопку "Заполнить по зарплатному проекту" ничего не сделает.
Если хочется получить настоящее заполнение, предварительно стоит очистить табличные части документа. И лучше всего это делать через метод ОчиститьВыплаты модуля объекта Ведомость - он сам разберётся, какие ТЧ чистить.

Запрос по регистру лицевых счетов можно самому не делать, а заказать через КадровыеДанные "показатель" ЗарплатныйПроект.

А в целом фокус с вызовом СоставОбработкаВыбораНаСервере - это лихо, неожиданный ход, спасибо.
Хотя формально в публичный API это не выставлено, но зато все ритуалы после заполнения выполняются кодом типовой.
4. user1114234 13.03.20 13:17 Сейчас в теме
Тимур, из конфигуратора выйди плиз)
5. nestokay 62 13.03.20 14:07 Сейчас в теме
6. пользователь 26.03.20 15:52
Сообщение было скрыто модератором.
...
Оставьте свое сообщение