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

26.11.19

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

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

Файлы

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

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

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

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

Подключаемый модуль для миграционного учета в конфигурациях 1С:ЗУП КОРП, по запросу можно адаптировать под 1С:УТ и ERP. Подсистема миграционного учета содержит в себе справочники, документы, отчеты, регистры, которые позволяют вести учет патентов, хранить историю тарифов и отслеживать оплаты.

200000 руб.

03.07.2025    1772    1    1    

3

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

Предлагаем расширить возможности конфигурации 1С:УНФ 3.0 в части ведения кадрового учета. С помощью данного расширения в конфигурацию будут добавлены новые документы: "Отпуск" и "Командировка". Документы облегчат работу кадровика и расчетчика, а также повысят эффективность работы за счет оптимизации и упрощения процесса ведения учета.

43200 руб.

31.10.2024    2288    2    0    

2

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

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

6000 руб.

15.07.2015    68621    111    52    

115

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

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

7200 руб.

19.01.2023    7530    5    4    

6

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

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

9600 руб.

11.01.2022    16376    4    6    

10

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

Сделайте взаимодействие сотрудников компании и бухгалтерии быстрым и удобным. С Личным кабинетом сотрудника в 1С:ЗУП 3.1 и КА 2.5 для Telegram больше не нужно лично посещать бухгалтерию и отдел кадров – все документы доступны в Telegram.

9600 руб.

21.03.2022    18001    9    21    

23

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

Внешний отчет "Действующие совмещения" - формируется по незакрытым и незавершенным на дату оформленным документом Совмещениям должностей. в.ч. по видам - Исполнение обязанностей, Совмещение должностей профессий, Расширение зон обслуживания.

3600 руб.

22.05.2025    1807    1    1    

1
Отзывы
8. t278 60 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 60 26.11.19 11:13 Сейчас в теме
(1)Соглашусь со всеми пунктами.

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

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

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

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

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

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

З.Ы. Как же хочется придраться к закомментированной строчке с Сообщить()... но не буду, сдержусь :)
4. t278 60 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 60 30.11.19 14:16 Сейчас в теме
8. t278 60 05.04.21 10:12 Сейчас в теме
Общий модуль
Функция СведенияОВнешнейОбработке() Экспорт
	Назначения = Новый Массив ;
	Назначения.Добавить("Документ.ПриемНаРаботу") ;	
	
	ПараметрыРегистрации = Новый Структура ;
	ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
        ПараметрыРегистрации.Вставить("Назначение",Назначения);


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


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