Создание новой рассылки уведомлений в ЗУП 3.1

27.10.23

Учетные задачи - Кадровый учет

Добавление новой рассылки уведомлений на примере уведомления об окончании трудового договора в ЗУП 3.1.

Скачать исходный код

Наименование Файл Версия Размер
Создание новой рассылки уведомлений в ЗУП 3.1:
.cfe 9,90Kb
8
.cfe 9,90Kb 8 Скачать

Задача:
Уведомлять руководителей сотрудников об окончании трудового договора.

Решение:
В типовом функционале ЗУП 3.1 (3.1.27.23) нет уведомления об окончании договора, но есть об окончании испытательного срока.  Было решено взять его за основу и создать свой вид уведомления. 
Виды уведомлений создаются программно. Создание прописано в соответствующих модулях подсистем. А вызов создания/обновления происходит по команде в форме списка справочника Виды уведомлений - Еще - Обновить Виды уведомлений.

Описание вида уведомления Окончание испытательного срока находится в модуле АдаптацияУвольнение в процедуре ПриЗаполненииСпискаВидовУведомлений. С помощью расширения в эту процедуру добавим новое описание для Окончания трудового договора.

 

&После("ПриЗаполненииСпискаВидовУведомлений")
Процедура Рассылка_ПриЗаполненииСпискаВидовУведомлений(СтруктураДоступныхВидовУведомлений)
	
	//ТФ
	// Окончание трудового договора
	СтруктураОкончаниеТД = УведомленияСервер.ПустоеОписаниеВидаУведомления();
	СтруктураОкончаниеТД.ВидУведомления = НСтр("ru = 'Окончание ТД'");
	СтруктураОкончаниеТД.GUID = "b21166e9-7a14-11ec-83fa-bd5234e4af50";     //тут любой ГУИД
	СтруктураОкончаниеТД.Описание = НСтр("ru = 'Привязано к дате окончания ТД.'");
	СтруктураОкончаниеТД.Инициализация = "АдаптацияУвольнение.ИнициализацияОкончаниеТД";
	СтруктураОкончаниеТД.ПолучениеДанных = "АдаптацияУвольнение.ПолучениеДанныхОкончаниеТД";

	СтруктураДоступныхВидовУведомлений.Вставить("ОкончаниеТД", СтруктураОкончаниеТД);	
	
КонецПроцедуры 

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

Процедура ПолучениеДанныхОкончаниеТД(СтруктураПериода, Отборы, ТаблицаРезультата) Экспорт
	
	УстановитьПривилегированныйРежим(Истина);
	
	ПараметрыПолучения = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
	ПараметрыПолучения.НачалоПериода = СтруктураПериода.НачалоПериода;
	ПараметрыПолучения.ОкончаниеПериода = СтруктураПериода.ОкончаниеПериода;
	ПараметрыПолучения.КадровыеДанные =
		"ФизическоеЛицо, Сотрудник, Организация, Подразделение, Должность, ДолжностьПоШтатномуРасписанию, МестоВСтруктуреПредприятия";
	
	Запрос = Новый Запрос();
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц, Ложь, ПараметрыПолучения);
	
	Запрос.УстановитьПараметр("НачалоПериода", СтруктураПериода.НачалоПериода);
	Запрос.УстановитьПараметр("ОкончаниеПериода", СтруктураПериода.ОкончаниеПериода);
	
	СхемаЗапроса = Новый СхемаЗапроса;
	СхемаЗапроса.УстановитьТекстЗапроса(
	    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
	    |	КадровыеДанныеСотрудников.Организация КАК Организация,
	    |	КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
	    |	КадровыеДанныеСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
	    |	СведенияКонтрактаДоговораСотрудника.ДатаОкончания КАК ДатаЗавершения,
	    |	ЕСТЬNULL(КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию, ЗНАЧЕНИЕ(Справочник.ШтатноеРасписание.ПустаяСсылка)) КАК Позиция,
	    |	ЕСТЬNULL(КадровыеДанныеСотрудников.МестоВСтруктуреПредприятия, ЗНАЧЕНИЕ(Справочник.СтруктураПредприятия.ПустаяСсылка)) КАК МестоВСтруктуреПредприятия
	    |ПОМЕСТИТЬ ВТОкончаниеДоговора
	    |{ВЫБРАТЬ
	    |	Организация КАК ОрганизацияПриПриеме}
	    |ИЗ
	    |	РегистрСведений.СведенияКонтрактаДоговораСотрудника.СрезПоследних(
	    |			,
	    |			(Сотрудник, ФизическоеЛицо, Организация) В
	    |				(ВЫБРАТЬ
	    |					ВТСотрудникиОрганизации.Сотрудник,
	    |					ВТСотрудникиОрганизации.ФизическоеЛицо,
	    |					ВТСотрудникиОрганизации.Организация
	    |				ИЗ
	    |					ВТСотрудникиОрганизации КАК ВТСотрудникиОрганизации)) КАК СведенияКонтрактаДоговораСотрудника
	    |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСотрудникиОрганизации КАК КадровыеДанныеСотрудников
	    |		ПО СведенияКонтрактаДоговораСотрудника.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
	    |			И СведенияКонтрактаДоговораСотрудника.ФизическоеЛицо = КадровыеДанныеСотрудников.ФизическоеЛицо
	    |			И СведенияКонтрактаДоговораСотрудника.Организация = КадровыеДанныеСотрудников.Организация
	    |;
	    |
	    |////////////////////////////////////////////////////////////////////////////////
	    |ВЫБРАТЬ
	    |	ВТОкончаниеДоговора.Сотрудник КАК Сотрудник,
	    |	ВТОкончаниеДоговора.ФизическоеЛицо КАК ФизическоеЛицо,
	    |	ВТОкончаниеДоговора.ДатаЗавершения КАК ДатаЗавершения,
	    |	ВТОкончаниеДоговора.Организация КАК Организация,
	    |	ВТОкончаниеДоговора.Позиция КАК Позиция,
	    |	ВТОкончаниеДоговора.МестоВСтруктуреПредприятия КАК МестоВСтруктуреПредприятия
	    |ИЗ
	    |	ВТОкончаниеДоговора КАК ВТОкончаниеДоговора
	    |ГДЕ
	    |	ВТОкончаниеДоговора.ДатаЗавершения <> ДАТАВРЕМЯ(1, 1, 1)");
	
	Если Отборы.Количество() > 0 Тогда
		ОтборЗапроса = СхемаЗапроса.ПакетЗапросов[1].Операторы[0].Отбор;
		Для Каждого СтрокаОтбора Из Отборы Цикл
			Если СтрокаОтбора.Использование Тогда
				ТекстУсловия = УведомленияСервер.ПредставлениеУсловияДляЗапроса(
					СтрокаОтбора.ВидСравнения,
					СтрокаОтбора.ЛевоеЗначение,
					"ВТОкончаниеДоговора." + СтрокаОтбора.ЛевоеЗначение);
				ОтборЗапроса.Добавить(ТекстУсловия);
				Запрос.УстановитьПараметр(СтрокаОтбора.ЛевоеЗначение, СтрокаОтбора.ПравоеЗначение);
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
	
	Запрос.Текст = СхемаЗапроса.ПолучитьТекстЗапроса();
	РезультатЗапроса = Запрос.Выполнить();
	Если РезультатЗапроса.Пустой() Тогда
		Возврат;
	КонецЕсли;
	
	ТаблицаДанных = РезультатЗапроса.Выгрузить();
		
	КандидатыПоСотрудникам = ПодборПерсонала.КандидатыПоСотрудникам(ТаблицаДанных.ВыгрузитьКолонку("Сотрудник"));
	Для Каждого СтрокаРезультатаЗапроса Из ТаблицаДанных Цикл
		ПараметрыСобытия = Новый Структура();
		
		Для Каждого КолонкаРезультата Из РезультатЗапроса.Колонки Цикл
			ПараметрыСобытия.Вставить(КолонкаРезультата.Имя);
		КонецЦикла;
		ПараметрыСобытия.Вставить("ДатаЗавершенияПредставление");
		
		ПараметрыСобытия.Вставить("Ответственный", Справочники.ФизическиеЛица.ПустаяСсылка());
		ПараметрыСобытия.Вставить("Заявитель", Справочники.ФизическиеЛица.ПустаяСсылка());
		ПараметрыСобытия.Вставить("Руководитель", Справочники.ФизическиеЛица.ПустаяСсылка());
		
		КандидатСотрудника = КандидатыПоСотрудникам.Найти(СтрокаРезультатаЗапроса.Сотрудник, "Сотрудник");
		Если КандидатСотрудника <> Неопределено Тогда
			Кандидат = КандидатСотрудника.Кандидат;
			ДанныеКандидата = Справочники.Кандидаты.ДанныеКандидата(Кандидат);
			Если ЗначениеЗаполнено(ДанныеКандидата.Вакансия) Тогда
				ДанныеВакансии = ДанныеКандидата.Вакансия;
				ПараметрыСобытия.Вставить("Ответственный", ДанныеВакансии.Ответственный);
				ПараметрыСобытия.Вставить("Заявитель", ДанныеВакансии.Заявитель);
			КонецЕсли;
		КонецЕсли;
		
		ПараметрыСобытия.Вставить("Руководитель",
			ФизическоеЛицоРуководитель(СтрокаРезультатаЗапроса.МестоВСтруктуреПредприятия, СтрокаРезультатаЗапроса.Позиция));
		
		СтрокаТаблицы = ТаблицаРезультата.Добавить();
		СтрокаТаблицы.Предмет = СтрокаРезультатаЗапроса.ФизическоеЛицо;
		СтрокаТаблицы.ДатаСобытия = СтрокаРезультатаЗапроса.ДатаЗавершения;
		ЗаполнитьЗначенияСвойств(ПараметрыСобытия, СтрокаРезультатаЗапроса);
		ПараметрыСобытия.ДатаЗавершенияПредставление = Формат(СтрокаРезультатаЗапроса.ДатаЗавершения, "ДЛФ=D");
		СтрокаТаблицы.ПараметрыСобытия = ПараметрыСобытия;
	КонецЦикла;
	
КонецПроцедуры

&После("ПриПодготовкеШаблонаСообщенияПоУведомлению")
Процедура Рассылка_ПриПодготовкеШаблонаСообщенияПоУведомлению(ВидУведомления, Реквизиты, Вложения, НазначениеШаблона, ДополнительныеПараметры)

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

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


В процедуре ПриПодготовкеШаблонаСообщенияПоУведомлению можно задать параметры, которые будут использоваться в шаблоне сообщения. 

Уведомление Окончание договора Расширение ЗУП 3.1

См. также

Обновление для КА 1.1, ЗУП 2.5, БУХ 2.0: НДС, ЕФС-1, Расчет страховых взносов, Мобилизация, Статистика, Электронные трудовые книжки, 2-НДФЛ, Регламентированная отчетность, Кадровый учет, Прослеживаемость импортных товаров

Зарплата Регламентированный учет и отчетность Кадровый учет Обновление 1С Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

19900 руб.

01.04.2020    141461    668    352    

233

Перенос данных из Парус 10 в ЗГУ ред.3

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

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

60000 руб.

05.10.2022    9339    9    8    

11

"Акты сверки +" Групповая подготовка и рассылка актов сверки для Бухгалтерии 3.0.

Взаиморасчеты Email рассылки Акт сверки Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Внешняя обработка для Бухгалтерии 3.0 - позволяет автоматически формировать документы «Акт сверки расчетов» с контрагентами за выбранный период с последующей фоновой отправкой на почту контрагента.

3000 руб.

25.11.2020    22500    183    6    

163

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4723    10    5    

18

Email, SMS, Telegram рассылки из 1С - Директ Маркетинг

Управление взаимоотношениями с клиентами (CRM) Мессенджеры и боты SMS рассылки Email рассылки Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Полный набор инструментов для качественных транзакционных и маркетинговых Email, SMS, Telegram рассылок из 1С. Даже простые уведомления об оплате счетов способны существенно упростить сбор дебиторской задолженности. Применение всех возможностей прямого маркетинга выводит коммуникацию с клиентами, уровень сервиса и лояльность на новый уровень.

7788 руб.

07.04.2014    84194    42    193    

128

Автоматическая рассылка отчетов из 1С: Управление торговлей 10.3 и 1С:УПП по электронной почте

Email рассылки Оптовая торговля Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием Управленческий учет Платные (руб)

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

12000 руб.

16.04.2014    84542    101    91    

94

Дополнительные соглашения. Групповое формирование и печать для 1С: ЗУП 3.1 ПРОФ и КОРП

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

Групповое формирование и печать Дополнительных соглашений для 1С: Зарплата и управление персоналом ПРОФ и КОРП + 8 печатных форм: Индексация заработной платы, Удаленная работа и предупреждение о COVID-19, Выход из удаленной работы, Кадровый перевод, Кадровый перевод списком, Назначение индивидуальной системы начислений, Переименование филиала, Приказ "Совмещение должностей", Приказ "Совмещение исполнения обязанностей"

18000 руб.

24.03.2023    4504    2    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ubnkfl 27.10.23 23:50 Сейчас в теме
2. gouranga 2 28.10.23 00:10 Сейчас в теме
(1) Процедуры УведомленияПереопределяемый.ПриЗаполненииСпискаВидовУведомлений и УведомленияПереопределяемый.ПриПодготовкеШаблонаСообщенияПоУведомлению не вызываются. Так что пришлось расширением делать.
Прикрепленные файлы:
Оставьте свое сообщение