Вход | Регистрация
 

ЗУП31. Как быть с нумерацией без лидирующих нулей?

ЗУП31. Как быть с нумерацией без лидирующих нулей?
Я
   DTX 4th
 
26.03.19 - 11:52
Кадровики вручную через месяц меняют номер документа на числовой типа "89" или ещё хуже "89-от"
Так в системе появился номер "99" и нумерация работать перестала, т.к. каждому новому документу 1С пытается выдать 99, который уже есть.
Как быть в такой ситуации?
 
 
   dka80
 
1 - 26.03.19 - 11:54
1. Писать свою систему нумерации
2. Нумеровать вручную
3. Бить по рукам
   dka80
 
2 - 26.03.19 - 11:54
И еще: номер в 99,99% текстовый, а не числовой
   DTX 4th
 
3 - 26.03.19 - 11:59
(2) Это как раз понятно
   KnightAlone
 
4 - 26.03.19 - 12:08
(0) или ещё хуже "89-от" 

ты можешь предложить выводить им в печатную форму номер 89 как "89-от", объяснив, что такой номер непосредственно в документе ломает типовой алгоритм автонумерации, а на вывод можно доабвить все, что попросят.
хуже когда начинают делать 89/1, 89/2 и т.д. Тут реально либо руками, либо свою систему писать
   catena
 
5 - 26.03.19 - 12:26
Вы хотите советов, как быть с кадровиками или с номером?
   DTX 4th
 
6 - 26.03.19 - 12:29
(4) Ну они всё равно руками номера будут вводить, так что мало чем поможет

(5) С номером

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

   KnightAlone
 
7 - 26.03.19 - 12:35
(6) сюрприз будет, когда они додумаются до 89/1
   catena
 
8 - 26.03.19 - 12:50
(6)У нас у кадровиков был доп.реквизит "Номер в ЭДО" для всякой их лабуды.
   Cyberhawk
 
9 - 26.03.19 - 12:54
Пусть меняют. Тебе-то что?
   ASU_Diamond
 
10 - 26.03.19 - 12:54
Если кадровики всё равно вручную штампуют номера, то заведи свой префикс, например "Авто". Прикручивай стандартный механизм нумерации платформы и в подписке предварительно проверяешь, если номер пустой, то номер со своим префиксом генерируешь. Потом когда кадровикам понадобится они вручную поменяют номер.
   DTX 4th
 
11 - 26.03.19 - 13:04
(9) Так они поменяли на 99 и встряли, я же объяснил.

(10) "Прикручивай стандартный механизм нумерации платформы"
Это как?
Платформа ведёт разную нумерацию для разных префиксов?
   d4rkmesa
 
12 - 26.03.19 - 13:18
(0) Ничего.
   Cyberhawk
 
13 - 26.03.19 - 13:21
(11) "и встряли" // Ну пишешь инструкцию по исправлению ситуации и при каждом таком случае даешь ее пользователю. Профит.
   DTX 4th
 
14 - 26.03.19 - 13:27
(13) И что будет в инструкции?
"Введите вручную номер документа и делайте так каждый последующий раз"? Такое себе

Что там про разную нумерацию с разными префиксами из (11)?
   ASU_Diamond
 
15 - 26.03.19 - 13:27
(11) да. Подписка на событие ПриУстановкеНовогоНомера
там можно префикс подменять.
   Exxter
 
16 - 26.03.19 - 13:30
Зачем меняют?
Напиши свою, может и менять перестанут
Организация/Вид Занятости/Тип документа
АВ/ВС/2801-4У
   ИУБиПовиц
 
17 - 26.03.19 - 13:37
не знаю как у Вас, но у нас правила префиксации и постфиксации определены в приказе по предприятию. и кадровики не могут поменять на 99 и встрять (ну вернее могут, но тогда текущая программа работает в соответствии с приказом таким то. требуется согласовать доработку с ключевыми пользователями. И как то сразу перестают менять и встревать)
   Cyberhawk
 
18 - 26.03.19 - 13:39
(14) В инструкции будет описание (процедура) действий, необходимых для обхода ошибки
   Web00001
 
19 - 26.03.19 - 13:46
Если кадровик так меняет номер документа, значит у него есть свой номер документа. Если у него есть свой номер то пусть его ставит, если нету, то пусть тот который есть не трогает. Вроде всегда работала такая схема.
   SleepyHead
 
20 - 26.03.19 - 13:54
(0) Сколько я видел кадровиков, делятся на 2 группы:

1. Первым похрен, какой номер стоит в 1с.
2. Вторым не похрен, у них своя нумерация и они каждый раз проставляют номер вручную в приказе.

У вас какой случай?
   DTX 4th
 
21 - 26.03.19 - 14:00
(19) (20) Он его меняет через месяц после заведения документа (:
   DTX 4th
 
22 - 26.03.19 - 14:06
(18) Необходимые действия для устранения ошибки в текущей ситуации - "Введите вручную номер документа и делайте так каждый последующий раз" (13). Крайне сомнительный вариант. Или ещё есть?
   Cyberhawk
 
23 - 26.03.19 - 14:09
(22) Необязательно же каждый раз. Достаточно однократно перенумеровать так, чтобы обеспечить достаточную номерную емкость, которой хватит надолго. Т.е. в инструкции должно быть описано, что к проблемам пользователей приводят они себя сами. Им же с этим и жить потом.
   Фрэнки
 
24 - 26.03.19 - 14:10
(22) но можно же завести дополнительный реквизит у кадровых документов, подправить процедуры печати (в расширении, например) и решить это все дело выгодным для всех способом
   Фрэнки
 
25 - 26.03.19 - 14:13
так и даже без изменения типового кода сдвинул поле дополнительного реквизита из подвала формы в шапку
   DTX 4th
 
26 - 26.03.19 - 14:17
(23) Лидирующие нули их не устроят.
(24) Так и сделано. Для Т-60 создан отдельный номер. Подправлено пару печатных форм. Все формы править - тоже сомнительный вариант, так как зачастую приходиться выдирать функцию целиком в расширение.
   Cyberhawk
 
27 - 26.03.19 - 14:18
(26) "Лидирующие нули их не устроят" // Где?
   DTX 4th
 
28 - 26.03.19 - 14:22
(27) В номере отпуска.
В общем, самописная нумерация вроде самый нормальный вариант. Если программно скрывать лидирующие нули, то можно закопаться
   Cyberhawk
 
29 - 26.03.19 - 14:33
(28) Где они видят этот номер с нулями? В типовых везде номер на печать (в печатную форму) выводится без лидирующих нулей
   Фрэнки
 
30 - 26.03.19 - 14:34
(28) так оно же номер в печатную форму разве не через универсальную функцию тащит? Сломать эту функцию через колено, ой, через расширение
 
 Рекламное место пустует
   dka80
 
31 - 26.03.19 - 14:37
Уже писали, что разные типы документов могут иметь сквозную нумерацию? Например, отпуск без сохранения оплаты и отпуск?
   dka80
 
32 - 26.03.19 - 14:39
касательно проблем с "/1" можно попробывать что-то выжать из такого запроса:
Запрос.Текст = 
        "ВЫБРАТЬ
        |    МАКСИМУМ(ВЫБОР
        |            КОГДА УведомлениеНомер.Значение ПОДОБНО ""_______""
        |                ТОГДА ""000"" + (ВЫРАЗИТЬ(УведомлениеНомер.Значение КАК СТРОКА(100)))
        |            КОГДА УведомлениеНомер.Значение ПОДОБНО ""________""
        |                ТОГДА ""00"" + (ВЫРАЗИТЬ(УведомлениеНомер.Значение КАК СТРОКА(100)))
        |            КОГДА УведомлениеНомер.Значение ПОДОБНО ""_________""
        |                ТОГДА ""0"" + (ВЫРАЗИТЬ(УведомлениеНомер.Значение КАК СТРОКА(100)))
        |            ИНАЧЕ ВЫРАЗИТЬ(УведомлениеНомер.Значение КАК СТРОКА(100))
        |        КОНЕЦ) КАК НомерУведомления
        |ПОМЕСТИТЬ втМаксНомер
        |ИЗ
        |    Справочник.Сотрудники.ДополнительныеРеквизиты КАК УведомлениеНомер
        |ГДЕ
        |    УведомлениеНомер.Свойство.Имя = ""УведомлениеОбУвольненииНомер""
        |    И УведомлениеНомер.Значение ПОДОБНО &Период
        |;
        |
        ////////////////////////////////////////////////////////////////////////////////

        |ВЫБРАТЬ
        |    ВЫБОР
        |        КОГДА втМаксНомер.НомерУведомления ПОДОБНО ""000%""
        |            ТОГДА ПОДСТРОКА(втМаксНомер.НомерУведомления, 4, 100)
        |        КОГДА втМаксНомер.НомерУведомления ПОДОБНО ""00%""
        |            ТОГДА ПОДСТРОКА(втМаксНомер.НомерУведомления, 3, 100)
        |        КОГДА втМаксНомер.НомерУведомления ПОДОБНО ""0%""
        |            ТОГДА ПОДСТРОКА(втМаксНомер.НомерУведомления, 2, 100)
        |        ИНАЧЕ втМаксНомер.НомерУведомления
        |    КОНЕЦ КАК НомерУведомления
        |ИЗ
        |    втМаксНомер КАК втМаксНомер";
    ПериодМесяц = "-"+Формат(Месяц(ДатаУведомления), "ЧЦ=2; ЧВН=");
    ПериодГод = "/" + Прав(Год(ДатаУведомления), 2);
    Запрос.УстановитьПараметр("Период", "%"+ПериодГод);
   DTX 4th
 
33 - 26.03.19 - 14:56
(30) А форма списка?
Плюс они явно будут заводить номер без нулей, их нужно будет тоже через колено привинчивать.
   Фрэнки
 
34 - 26.03.19 - 15:20
(33) так убрать им поле с номером с формы документа - пусть попробуют его вернуть :-)
Можно даже в расширение это все запилить. Первое время, как привыкнут, будет скрыто, а после у них уже нужды изменять типовой номер не будет.
   unregistered
 
35 - 26.03.19 - 15:37
(33) На форму списка тоже можно выводить номер без лидирующих нулей и префиксов.

Код в (6) - *авно. Причем редкостное, тупое и беспощадное.

Личный богатый опыт показывает, что любые больные фантазии кадровиков, бухгалтеров и прочих менеджеров - "гениев автоматизации" никому нафиг не нужны. И в 99.9999% случаев типовая нумерация значительно лучше, чем любая их безумная придумка и хотелка.
   DTX 4th
 
36 - 26.03.19 - 15:42
(35) Ой, а вот и адепты подтянулись из министерства.

Варианты улучшить код в (6) будут?
   dka80
 
37 - 26.03.19 - 17:40
(35) ст. 19 Перечня типовых управленческих архивных документов, утвержденного приказом Минкультуры России от 25.08.2010 № 558 как бы подразумевает подразделение приказов на разные виды и обеспечение скорости их поиска. Отсюда и появляются всякие префиксы. Так что ваше "гениев автоматизации" имеет место быть, но не в таком процентном соотношении
   mistеr
 
38 - 26.03.19 - 17:48
(21) "Он его меняет через месяц после заведения документа"

"На такую схему работы конфигурация ЗУП не рассчитана". Простое и понятное объяснение. Если будут настаивать, при согласовании доработок с руководством быстро выяснится, что вправить мозги дешевле. Ну или выяснить, откуда ноги растут. Может там другая, небольшая, доработка нужна.
   Said_We
 
39 - 26.03.19 - 23:46
Нормальные требования для кадровиков и основания у этих требований тоже есть. Пилите Шура, Пилите...
   SleepyHead
 
40 - 27.03.19 - 05:41
(39) Требования можно считать нормальными, если их можно формализовать и прописать четкие правила нумерации.

Перечитал пост, понял так, что нормального техзадания на нумерацию нет, кадровик может поменять номер задним числом через месяц. При таких условиях разработчик всегда будет виноват, что "программа не работает".

Так что вправить мозги, как писали выше, все-таки вариант более рабочий, чем кодить бездумно по хотелкам пользователя.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Миста — веселый ресурс со своими эксклюзивными тараканами Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.