Заполнение ведомости на выплату в банк, когда у человека несколько зарплатных проектов (ЗУП 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 доработка

См. также

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

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

9675 руб.

27.05.2021    53297    447    127    

321

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

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

19520 руб.

21.03.2023    21242    150    27    

117

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

Корректируйте банковские документы быстро и легко! Создайте правило обработки, и оно автоматически применится при загрузке выписки, экономя ваше время (Можно настроить отбор по любому реквизиту или по регулярному выражению). Решение позволяет автоматически заполнять расшифровку платежа, исключать загрузку ненужных документов (дублей) из банка, заполнять комиссию за эквайринг и многое другое. Вам не нужно доплачивать за алгоритмы, они уже включены в решение. Автоматическая обработка применяется при загрузке данных как из файлов клиент банка, так и через DirectBank. Доступен AI чат бот который умеет консультировать по функционалу решения.

15250 руб.

20.12.2024    14039    61    27    

57

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

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

18800 руб.

01.11.2012    104727    130    1    

138

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

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

12200 руб.

28.07.2016    68122    188    158    

154

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

Расширение для создания и настройки обмена с консолидированной базой ЗУП. Код разработки под определенные требования проекта.

85400 руб.

11.07.2025    4923    3    1    

2

SALE! 50%

Зарплата Регламентированный учет и отчетность Бухгалтер 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Здравоохранение, медицина, стоматология Россия Платные (руб)

Подсистема (расширение) конфигурации Зарплата и кадры государственного учреждения, редакция 3.1 для формирования формы №30 федерального статистического наблюдения "Сведения о медицинской организации" в редакции Приказов Росстата I) от 30.12.2020 №863, II) от 27.12.2022 N 985, III) от 25.12.2023 N 681 и IV) от 29.11.2025 №594.

21960 руб.

26.10.2021    19992    28    13    

20

Банковские операции Обмен с интернет-банком Бухгалтер 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Беларусь Россия Бухгалтерский учет Платные (руб)

Типовая обработка "Клиент-банк" из конфигурации 1С "Бухгалтерия для Беларуси, редакция 2.1" корректно работает с выписками только банка "Дабрабыт", до 28.01.2019 "Москва-Минск". А бухгалтеру нужно работать и с другими банками и с другими конфигурациями. Для этого было разработано расширение, которое позволит решить данную проблему!

12200 руб.

10.10.2017    41890    95    49    

80
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 Сейчас в теме
(4) готово:)))))
user1114234; +1 Ответить
6. пользователь 26.03.20 15:52
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация