Имя: Пароль:
1C
 
ЗУП 3.1 Префиксы и суффиксы в кадровых документах
0 KnightAlone
 
16.01.19
11:38
Вот и мне прилетела задачка, аля хотим суффиксы в номерах документов. Поизучал данный вопрос по темам на форуме, думаю смогу отстоять вариант - делаем через префикс, на печать выводим в виде суффикса. В чем возник вопрос - в 3.1 нет нигде типовой возможности указать префикс для документа?
Нашел функцию ПользовательскийПрефикс в общем модуле ПрефиксацияОбъектовКлиентСервер, судя по ней в конфе есть понятие ПользовательскийПрефикс. Взял командировку, ни в модуле объекта, ни в модуле менеджера, ни в реквизитах упоминаний префикса не нашел. Я правильно понимаю, что вариант тут только такой - берем подписку УстановитьПрефиксИБИОрганизацииНомеруДокументаЗарплатаКадрыРасширенная и соответственно в процедуре этой подписки ручками прописываем свой код, который для нужных документов будет устанавливать свой пользовательский префикс?
1 KnightAlone
 
16.01.19
12:39
в процедуре Процедура УстановитьПрефикс типовой код

ШаблонПрефикса = "[ОР][ИБ]-[Префикс]";
ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ОР]", ПрефиксОрганизации);
ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ИБ]", ПрефиксИнформационнойБазы);
ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[Префикс]", Префикс);

заменил на

    ШаблонПрефикса = "[ОР][ИБ]-[ПользовательскийПрефикс][Префикс]";
    ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ОР]", ПрефиксОрганизации);
    ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ИБ]", ПрефиксИнформационнойБазы);
    ПользовательскийПрефикс = "";
    Если Источник.Метаданные().ПолноеИмя() = "Документ.ПриемНаРаботу" ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.Увольнение"
        ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.КадровыйПеревод" ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.КадровыйПереводСписком"
        ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.Отгул" ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.ИзменениеОплатыТруда" Тогда
        ПользовательскийПрефикс = "ЛС";    
    ИначеЕсли Источник.Метаданные().ПолноеИмя() = "Документ.Командировка" Тогда    
        ПользовательскийПрефикс = "К";
    КонецЕсли;
    ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ПользовательскийПрефикс]", ПользовательскийПрефикс);
    ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[Префикс]", Префикс);

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


    ШаблонПрефикса = "[ОР][ИБ]-[Префикс]";
    ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ОР]", ПрефиксОрганизации);
    ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ИБ]", ПрефиксИнформационнойБазы);
    ПользовательскийПрефикс = "";
    Если Источник.Метаданные().ПолноеИмя() = "Документ.ПриемНаРаботу" ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.Увольнение"
        ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.КадровыйПеревод" ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.КадровыйПереводСписком"
        ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.Отгул" ИЛИ Источник.Метаданные().ПолноеИмя() = "Документ.ИзменениеОплатыТруда" Тогда
        ПользовательскийПрефикс = "ЛС";    
    ИначеЕсли Источник.Метаданные().ПолноеИмя() = "Документ.Командировка" Тогда    
        ПользовательскийПрефикс = "К";
    КонецЕсли;
    ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[Префикс]", ПользовательскийПрефикс);

проверил, вроде и так тоже работает
2 Мыш
 
16.01.19
12:55
(0) Общие модули:
ПрефиксацияОбъектовКлиентСерверПереопределяемый
ПрефиксацияОбъектовПереопределяемый
3 Мыш
 
16.01.19
12:57
И вообще: Конфигуратор, Ctrl+Shift+C, Ctrl+Alt+M, переопределяемый
4 2S
 
16.01.19
13:01
(0) мы через регистр рисовали такую задачу
Автогенерация номера по видам кадровых документов. Плюс история.
5 KnightAlone
 
16.01.19
17:35
в общем там вынос мозга, на общий префикс спереди согласились. в процессе перенумерации уже созданных наткнулся на конструкцию вида 8/1. выяснилось, что часть документов вносят задним числом, так как офис на 2 части разделен и часть доков приносят позже, и эти документы вносят через префикс. вносить по человечески говорят не могут, похоже придется копаться и писать свой механизм автонумерации, либо слать всех лесом и искать место с вменяемыми кадровиками...
6 xraf
 
16.01.19
23:38
(0) Я что-то особо заморачиваться не стал с подобной задачей, подключил расширение и там в модуле документа сделал присвоение нужного номера
7 SleepyHead
 
гуру
17.01.19
05:10
(0) Автоматизируя бардак, вы получаете автоматизированный бардак. (с)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.