Установка номера в кадровых документах

26.11.19

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

Устанавливает следующий номер в заданном формате по организации.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Установить номер в кадровых документах:
.epf 8,72Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

Внешняя кнопка, при нажатии на которую устанавливается номер документу.

Документ перед установлением номера записывается!

Обработка определяет группу документов

Чтобы использовать у себя, нужно немного модифицировать код в обработке.

Обработка может быть примером как делать "внешние кнопки".

Проверено на релизе: ЗУП 3.1.6-10.

ЗУП 3.1 внешняя кнопка нумерация

См. также

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

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

21600 руб.

24.03.2023    5664    5    0    

6

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

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

6000 руб.

15.07.2015    66077    103    49    

106

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

Печать из ЗУП уведомления о трудовой деятельности для безвизового иностранного гражданина. С 7 января 2024 года безвизовые иностранцы должны уведомлять по утвержденной форме территориальный орган МВД России о ведении трудовой деятельности. Расширение позволит выполнить распечатку уведомления напрямую из программы ЗУП 3.1

3600 руб.

22.02.2024    1297    1    0    

3

Зарплата Кадровый учет Корректировка данных Бухгалтер Пользователь Сложные периодические расчеты 8.3.14 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

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

3 стартмани

17.04.2023    4989    68    Vinzor    6    

25

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

Обработка больше предназначена как основа для своей разработки, чем как универсальное решение. Но можно использовать и как готовое решение для небольшой организации. Переносит данные из файла Excel в ЗУП, по аналогии как данные переносятся из ЗУП 2.5.

7200 руб.

19.01.2023    6867    4    4    

5

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

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

84000 руб.

05.10.2022    11683    13    8    

15
Отзывы
8. t278 58 05.04.21 10:12 Сейчас в теме
Общий модуль
Функция СведенияОВнешнейОбработке() Экспорт
	Назначения = Новый Массив ;
	Назначения.Добавить("Документ.ПриемНаРаботу") ;	
	
	ПараметрыРегистрации = Новый Структура ;
	ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
        ПараметрыРегистрации.Вставить("Назначение",Назначения);


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


&НаСервере
Процедура ВыполнитьНаСервере(Док,НомерД)
	 д = док.ссылка.ПолучитьОбъект();
	Запрос = Новый Запрос;
		
	Текст =  "ВЫБРАТЬ
	         |	КадровыеДокументы.Ссылка КАК Ссылка,
	         |	КадровыеДокументы.Дата КАК Дата,
	         |	КадровыеДокументы.Номер КАК ПолныйНомер,
	         |	КадровыеДокументы.Тип КАК Тип,
	         |	ПОДСТРОКА(КадровыеДокументы.Номер, 6, 11) КАК Номер
	         |ИЗ
	         |	ЖурналДокументов.КадровыеДокументы КАК КадровыеДокументы
	         |ГДЕ
	         |	КадровыеДокументы.Дата >= &Дата
	         |	И КадровыеДокументы.Номер ПОДОБНО &Номер" ;
	типДокумента = ТипЗнч(Д);
	
	Если типДокумента = Тип("ДокументСсылка.Отпуск")  
		Или типДокумента = Тип("ДокументОбъект.ОтпускаСотрудников")
		или типДокумента = Тип("ДокументОбъект.ОтпускБезСохраненияОплаты")
		или типДокумента = Тип("ДокументОбъект.ОтпускПоУходуЗаРебенком")
		ТОгда 
		Запрос.УстановитьПараметр("Номер","%ЛК25%");
		Префикс = "ЛК25-";
	ИначеЕсли типДокумента = Тип("ДокументОбъект.Увольнение")
		или типДокумента = Тип("ДокументОбъект.УвольнениеСписком")
		или типДокумента = Тип("ДокументОбъект.ПриемНаРаботу")
		или типДокумента = Тип("ДокументОбъект.ПриемНаРаботуСписком")
		или типДокумента = Тип("ДокументОбъект.ИндексацияЗаработка")
		или типДокумента = Тип("ДокументОбъект.КадровыйПеревод")
		или типДокумента = Тип("ДокументОбъект.КадровыйПереводСписком") Тогда
		Запрос.УстановитьПараметр("Номер","%ЛС25%");		
		Префикс = "ЛС25-";
	КонецЕсли;
	
		
	Запрос.Текст = Текст;
	Запрос.УстановитьПараметр("Дата",НачалоГода(Д.Дата));
	
	ТЗ = запрос.Выполнить().Выгрузить();
	НомерМакс = 0;
	Если ТЗ.Количество()=0 Тогда
	иначе
		Для Каждого Стр Из ТЗ цикл			
			Попытка
				НомерМакс = Макс(НомерМакс,Число(Стр.Номер));
			Исключение
				// могут быть другие символы
				КонецПопытки; 
		КонецЦикла; 		
	КонецЕсли;  
	
	Если  типДокумента = Тип("ДокументОбъект.ИндексацияЗаработка")  Тогда
		Текст =  "ВЫБРАТЬ
		|	ИндексацияЗаработка.Ссылка КАК Ссылка,
		|	ИндексацияЗаработка.Дата КАК Дата,
		|	ИндексацияЗаработка.Номер КАК ПолныйНомер,
		|	ПОДСТРОКА(ИндексацияЗаработка.Номер, 6, 11) КАК Номер
		|ИЗ
		|	Документ.ИндексацияЗаработка КАК ИндексацияЗаработка
		|ГДЕ
		|	ИндексацияЗаработка.Дата >= &Дата
		|	И ИндексацияЗаработка.Номер ПОДОБНО &Номер" ;
		
		Запрос.Текст = Текст;
		ТЗ = запрос.Выполнить().Выгрузить();
		
		Если ТЗ.Количество()=0 Тогда
		иначе
			Для Каждого Стр Из ТЗ цикл				
				Попытка
				НомерМакс = Макс(НомерМакс,Число(Стр.Номер));
			Исключение
				// могут быть другие символы
				КонецПопытки;
			КонецЦикла; 		
		КонецЕсли;
	КонецЕсли;
	
	НомерМакс = НомерМакс +1;
	Д.Номер = Префикс + СтрЗаменить(Строка(НомерМакс),Символы.НПП,"");
	НомерД = Д.Номер;
Д.Записать();	
КонецПроцедуры
Показать
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dock 45 26.11.19 11:07 Сейчас в теме
1) неплохо было бы вынести "префикс" в отдельную переменную - что бы изменять только в одном месте.
2) хорошо было бы и вынести в настройки - что бы была возможность поправить без изменения кода
3) ну идеально было бы сделать расширение и перехватить событие "при установке номера", что бы не нужно было отдельно нажимать кнопочку.

Хотя ведь можно и просто правильно настроить префиксы, и использовать типовой функционал... но это уже так... ;)
2. t278 58 26.11.19 11:13 Сейчас в теме
(1)Соглашусь со всеми пунктами.

У нас нумерация учитывает группу документов. В этой группе нумерация должна идти по порядку. Из-за этого от префиксов отказались.
Год назад, решили на данном примере по практиковать "внешнюю кнопку".

Универсальную штучку, не желания делать (
3. dock 45 26.11.19 11:36 Сейчас в теме
(2) Про универсальность никто и не говорит... только перфекционизм и ничего более! :)
Сама обработка появилась явно из-за того, что требуется некоторое изменение типового алгоритма нумерации.

некоторые комментарии к своим же комментариям:
1) отдельная переменная: судя по коду, явно будет минимум две переменных.
ПрефиксГруппыДокументовОтпуска и ПрефискГруппыДокументовОстальные

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

2) вынести в настройки - тут да, приближение к универсальности. Спорное предложение.

3) а вот расширение и перехват события (кстати, может я и ошибся, и стоит перехватывать другое событие...) - это упрощение сопровождения: пользователи они же такие... пользователи...
Ещё забудут кнопочку нажать, или вообще не увидят её существование - и держи заявочку: "Караул! у меня номер документа неправильный!" :)

З.Ы. Как же хочется придраться к закомментированной строчке с Сообщить()... но не буду, сдержусь :)
4. t278 58 26.11.19 15:47 Сейчас в теме
(3) Сообщить() это способ отладки ( . Сколько там закомментированно пока разобрался.

Нажать кнопку, это облегчение для пользователя. Или руками номер вносить, или автоматом. Отдел кадров про неё знают, а пользоваться их прерогатива.)
5. dock 45 27.11.19 08:22 Сейчас в теме
(4)
Сообщить() это способ отладки (

При работе с УФ нужно забыть про "Сообщить()" !
Только правильный код! Только хардкор! :)

Сообщение = Новый СообщениеПользователю;
...
Сообщение.Сообщить();
6. nkp14108 94 30.11.19 10:17 Сейчас в теме
7. t278 58 30.11.19 14:16 Сейчас в теме
8. t278 58 05.04.21 10:12 Сейчас в теме
Общий модуль
Функция СведенияОВнешнейОбработке() Экспорт
	Назначения = Новый Массив ;
	Назначения.Добавить("Документ.ПриемНаРаботу") ;	
	
	ПараметрыРегистрации = Новый Структура ;
	ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
        ПараметрыРегистрации.Вставить("Назначение",Назначения);


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


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