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

27.10.23

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Создание новой рассылки уведомлений в ЗУП 3.1:
.cfe 9,90Kb
13
13 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

27900 руб.

01.04.2020    147884    653    362    

238

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

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

60000 руб.

05.10.2022    11006    13    8    

15

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

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

3000 руб.

25.11.2020    24709    250    8    

215

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4400    17    1    

35

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

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

29400 руб.

29.06.2023    6273    15    5    

24

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    6966    74    17    

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