Что делаем:
1. В документ добавляем новый реквизит "ТехническийНомер" типа Булево и кладем его на форму. Поле "номер" у документа, закрываем на редактирование снятием флага "редактирование текста" что позволит выделять номер в поле и копировать его, но не позволит его менять.
2. Создаем подписку на событие "КадровыйПереводТехническийПриУстановкеНовогоНомера" с событием "ПриУстановкеНовогоНомера"
3. Создаем новый (или используем свои существующие) "Общий модуль" например "Мои доработки" с признаком "Сервер" и в этот вставляем следующую процедуру (см. ниже), данная процедура вызывается единожды, пока номер не установлен.
// Здесь проверяем документ кадровый перевод, если это технический перевод, то назначаем ему свою сквозную нумерацию, а если нет, то типовую.
//
// Суть следующая, в документе Кадровый перевод есть флаг "технический перевод" (рядом с полем номер).
// Если он не стоит, то ведется стандартная нумерация вида "Префикс организации - 4 знака, 0015-номер документа 4 знака - Например НС00-0015 или ЕК00-0024
// если стоит, то у них своя нумерация, "Префикс организации - 4 знака, 0015ТП-номер документа 6 знаков, ТП - Например НС00-0015ТП или ЕК00-0024ТП
//
// Данная процедура ищет последний номер по организации и по состоянию флага "Технический перевод" и добавляет к номеру +1.
// Для того чтобы сюда попадали и другие документы, необходимо их выбрать в подписке на событие "КадровыйПереводТехническийПриУстановкеНовогоНомера"
//
Процедура УстановитьНомерДокумента(Источник, СтандартнаяОбработка, Префикс) Экспорт
СтандартнаяОбработка = Ложь;
Постфикс = "";
Префикс = СокрЛП(Источник.Организация.Префикс);
ВидДокумента = Источник.Метаданные().Имя;
Если ВидДокумента = "КадровыйПеревод" Тогда // пока только для него
Если Источник.ТехническийНомер Тогда
Постфикс = "тп";
КонецЕсли;
Префикс4 = Префикс;
НомерЧисло = 1;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| ПОДСТРОКА(Документ.Номер, 6, 15) КАК Номер
|ИЗ
| Документ.КадровыйПеревод КАК Документ
|ГДЕ
| ПОДСТРОКА(Документ.Номер, 1, 4) = &Префикс
| И Документ.Дата МЕЖДУ НАЧАЛОПЕРИОДА(&Дата, ГОД) И КОНЕЦПЕРИОДА(&Дата, ГОД)
| И Документ.Организация = &Организация
| И &НомерБезПрефикса
|
|УПОРЯДОЧИТЬ ПО
| Номер УБЫВ";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "КадровыйПеревод", ВидДокумента);
// Примечание
// •% (процент) — допускает любую последовательность произвольных символов;
// •_ (нижнее подчеркивание) — любой один символ;
// •[…] – один произвольный символ из перечисленных внутри скобок. Кроме перечисления символов можно использовать диапазоны. Пример: а-о;
// •[^…] – то же самое, что и предыдущее, но наоборот. Знак «^» означает отрицание.
Если Постфикс = "тп" Тогда // Источник.ТехническийПеревод
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&НомерБезПрефикса", "ПОДСТРОКА(Документ.Номер, 6, 15) ПОДОБНО ""%[тп]%"""); // ищем где после после префикса в номере есть буквы ТП
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&НомерБезПрефикса", "ПОДСТРОКА(Документ.Номер, 6, 15) НЕ ПОДОБНО ""%[а-я/]%"""); // ищем где после после префикса только числа
КонецЕсли;
Пока СтрДлина(Префикс4) < 4 Цикл
Префикс4 = Префикс4 + "0";
КонецЦикла;
Запрос.УстановитьПараметр("Организация", Источник.Организация);
Запрос.УстановитьПараметр("Префикс", Префикс4);
Запрос.УстановитьПараметр("Дата", Источник.Дата);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Попытка
Если Постфикс = "тп" Тогда
НомерЧисло = Число(Лев(Выборка.Номер, 4)) + 1;
Иначе
НомерЧисло = Число(Выборка.Номер) + 1;
КонецЕсли;
Источник.Номер = Префикс + "00-" + Формат(НомерЧисло, "ЧЦ=4; ЧВН=; ЧГ=") + Постфикс; // это следующий документ создадим ему номер НС00-0015 или НС00-0015ТП
//Источник.Номер = Префикс + Формат(НомерЧисло, "ЧЦ=4" + Строка(СтрДлина(Источник.Номер) - СтрДлина(Префикс)) + "; ЧВН=; ЧГ=") + Постфикс;
Исключение
КонецПопытки;
Иначе
НомерЧисло = 1;
Источник.Номер = Префикс + "00-" + Формат(НомерЧисло, "ЧЦ=4; ЧВН=; ЧГ=") + Постфикс; // это первый документ создадим ему номер НС00-0015 или НС00-0015ТП
//Источник.Номер = Префикс + Формат(НомерЧисло, "ЧЦ=" + Строка(СтрДлина(Источник.Номер) - СтрДлина(Префикс)) + "; ЧВН=; ЧГ=") + Постфикс;
КОнецЕсли;
КонецЕсли;
КонецПроцедуры