Имя: Пароль:
1C
1С v8
Покритикуйте нумератор документов
0 LenaAt
 
03.08.17
13:23
Написала свой нумератор документов. Программирую в 1С не много, поэтому прошу совета. Может это делается как - то иначе?

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

Если Источник.УчастокРК = Перечисления.УчасткиРК.Хорошево Тогда
        Источник.Номер = Строка(ПоследнийНомер + 1) + "/ХРК";
    ИначеЕсли Источник.УчастокРК = Перечисления.УчасткиРК.Мытищи Тогда
        Источник.Номер = Строка(ПоследнийНомер + 1) + "/МРК";
    ИначеЕсли Источник.УчастокРК = Перечисления.УчасткиРК.Ярославль Тогда
        Источник.Номер = Строка(ПоследнийНомер + 1) + "/ЯРК";
    ИначеЕсли Источник.УчастокРК = Перечисления.УчасткиРК.Коломна Тогда
        Источник.Номер = Строка(ПоследнийНомер + 1) + "/КРК";
КонецЕсли;

надо убивать сразу
2 LenaAt
 
03.08.17
13:26
(1)  а в чём проблема?
3 ptiz
 
03.08.17
13:29
(0) А "ВЫБРАТЬ ПЕРВЫЕ 1..." И "УПОРЯДОЧИТЬ ПО Номер УБЫВ" уже не в моде? Или в начале номера в пределах участка разные префиксы?
4 Ненавижу 1С
 
гуру
03.08.17
13:30
(2) когда появится новый участок, Вы будете код править?
1. Переделайте перечисление на справочник
2. Храните Ваш суффикс непосредственно в этом справочнике
3. Переделайте суффикс в префикс - 1С тогда прекрасно сама будет нумеровать
5 mic_net
 
03.08.17
13:31
(2) +1
"/КРК" - вот это должно быть в том виде, чтобы пользователь мог редактировать. Реквизит справочника, РС и т.д.
6 LenaAt
 
03.08.17
13:32
(3) Номер документа текстовый, в каждом номере обязательно есть буквы, слэши... Как это всё будет сортироваться?
7 LenaAt
 
03.08.17
13:39
(4) Да. Новые направления появляются крайне редко, а меня в системе внутреннего документооборота появится галочка о проделанной работе. Чем больше галочек, тем нужнее специалист.
8 Amra
 
03.08.17
13:40
(7) При нормальном начальнике или архитекторе такой специалист первый кандидат на выход
9 X Leshiy
 
03.08.17
13:42
(7) Жесть.
10 Базис
 
naïve
03.08.17
13:43
(7) Киндер, кирхе, кюхе. Нихт коде!
11 LenaAt
 
03.08.17
13:43
(8) Надо ширше смотреть на проблему. Для начальника чем больше зеленых галочек у его подчиненных, тем больше премия.
12 Любопытная
 
03.08.17
13:44
(9) Не жесть а "работа для галочки" :)
13 ptiz
 
03.08.17
13:46
(6) И что? Номера "0001/ХРЕН", "0002/ХРЕН" прекрасно сортируются.
14 X Leshiy
 
03.08.17
13:46
(12) От таких работ нужно держаться подальше.
15 LenaAt
 
03.08.17
13:47
Для меня самый главный вопрос здесь - это подход в принципе правильный? Я так поняла нумератор стандартный не справляется с нумерацией, если есть символы не цифры в коде?
16 LenaAt
 
03.08.17
13:48
(13) Это я знаю. А "АБВ/001", "002/ГГГ" как отсортируются?
17 Amra
 
03.08.17
13:52
(14) Так проблема не в работе, а в работнике
18 LenaAt
 
03.08.17
13:54
(17) Давайте, пожалуйста, ближе к теме. Я уж поняла по перечислениям и этот вопрос решу сама. Тем более, что я и начальник, и архитектор, и программист в одном лице :)
19 butterbean
 
03.08.17
13:55
(15) он не справляется если номер заканчивается нецифрами. Префиксы он нормально проглатывает... любые
20 _Дайвер_
 
03.08.17
13:56
(7) Сразу видно, специалист с франчайзи)))
21 LenaAt
 
03.08.17
13:57
(19) У меня как раз такая ситуация, когда есть постфикс, а может быть и префикс тоже.
22 LenaAt
 
03.08.17
14:01
21+ Другими словами, я решила выделять из номера цифровую часть, инкрементировать её, потом прибавлять постфиксы.
23 Любопытная
 
03.08.17
14:02
(21) а зачем суффикс? Почему нельзя два префикса сделать?
24 X Leshiy
 
03.08.17
14:03
(23) Для Галочки :)
25 бомболюк
 
03.08.17
14:04
раз нумерация идет сквозняком через весь набор префиксов и суффиксов - может сделать номер просто числовым и использовать стандартный нумератор, а всю хрень на номер навешивать отдельно, и представление документа формировать отдельно?
26 LenaAt
 
03.08.17
14:06
(25) А зачем? Сейчас всё работает автоматом, я тестировала много работу нумератора - всё просто замечательно. Зачем загружать пользователя лишней работой?
27 бомболюк
 
03.08.17
14:07
(26) сколько у вас документов по участку за год? пара сотен отсилы?
28 LenaAt
 
03.08.17
14:07
И у меня вопрос еще по перечислениям. Если их использование в коде нежелательно и даже считается ошибкой, то для чего они нужны?
29 Йохохо
 
03.08.17
14:08
(0) добавьте реквизит НомерЧеловекочитаемыйЧеловекоредактируемый и скажите юзерам сливать весь креатив на него, а стандартный закройте и формируйте типовым нумератором
(26) затем, что Вам придется переделывать всю сортировку списков, каждого списка. Нужно столько "галочек"?
30 1Снеговик
 
гуру
03.08.17
14:13
(28) для всего, что постоянно, а не добавляется/переименовывается
31 1Снеговик
 
гуру
03.08.17
14:14
(20) у нас во франче такого не было)) Это загоны руководства)
Точнее у каждого свои загоны - мы занятость поминутно списывали.
32 LenaAt
 
03.08.17
14:16
(30) Тогда вопрос - назовите то, что всегда постоянно?
33 LenaAt
 
03.08.17
14:17
(29) Списки сортируются по дате документа.
34 dezss
 
03.08.17
14:19
(32) статусы чеков (пробит, аннулирован, архивный). И говорится про условно-постоянные вещи. Которые не меняются с каждым открытым магазином и т.п.
35 LenaAt
 
03.08.17
14:19
(29) Нет, пользователей программы не надо загружать лишней работой. Сейчас номер со всеми постфиксами формируется автоматически.
36 catena
 
03.08.17
14:20
(32)Пол...
37 dezss
 
03.08.17
14:20
(36) ыыы...сейчас он тоже условно-постоянный))))
38 Любопытная
 
03.08.17
14:21
(35) а если они захотят, чтобы префиксы другие стали? Дело даже не в перечислениях, а в том, что у вас префикс явно прописан в коде.
И потом, добавится еще одно подразделение, что вы делать будете?
39 catena
 
03.08.17
14:21
(37)Это принадлежность периодическая. А вариаций всего три: Мэ, Жо, Пэ.
40 LenaAt
 
03.08.17
14:21
(34) Я не работаю в торговле, но список статусов чеков тоже может расширяться. И ближе к моему вопросу: наши направления не изменялись уже 20 лет. Не добавлялись, это точно. Одно направление ушло но это не приведет к переписыванию кода.
41 1Снеговик
 
гуру
03.08.17
14:22
(36) не факт, пора третий добавлять "Не определился" ))
42 Basilio
 
03.08.17
14:22
(39) Стесняюсь спросить, что есть "Пэ"?
43 LenaAt
 
03.08.17
14:22
(36) Вот и нет. Сейчас есть официальный статус без гендерной идентификации.
44 1Снеговик
 
гуру
03.08.17
14:23
(40) а добавление приведет, и нужно чтобы это мог настроить пользователь.
45 dezss
 
03.08.17
14:23
(40) и как же эти статусы расширялись за последние нцать лет?
(39) ну просто не мог не постебаться))) Позвольте полюбопытствовать, а что такое Пэ?
46 Любопытная
 
03.08.17
14:23
(43) где есть? В нашей стране это вроде пока еще вне закона...
47 LenaAt
 
03.08.17
14:23
(38) Это не подразделения, это направления. За 20 лет существования компании они не менялись ни разу.
48 1Снеговик
 
гуру
03.08.17
14:24
(45) православный сын божий)
49 dezss
 
03.08.17
14:24
(43) в паспорте это пишут?
50 dezss
 
03.08.17
14:24
(48) Т.е. в любом случае мужиг)
51 catena
 
03.08.17
14:25
(42)(45)Те, которые "Не определился".
52 Любопытная
 
03.08.17
14:25
(47) это прекрасный довод.
53 LenaAt
 
03.08.17
14:25
(44) Пользователь нигде сам ничего настроить не может. А если сделает, так только дублирование справочника.
54 Любопытная
 
03.08.17
14:26
У меня больше нет вопросов. Ставьте зеленую галочку и в путь :)
55 dezss
 
03.08.17
14:26
(51) А почему же тогда именно Пэ, а не неопределено?
56 catena
 
03.08.17
14:27
(47)Это не повод писать фигню в коде. На 21-м году придет прогрессивное руковдство и начнет все переколбашивать. Поверьте человеку, которому пришлось "убирать дырку в филиалах" (был закрыт давным-давно один из филиалов, новому руководству не понравился пробел у нумерации)
57 catena
 
03.08.17
14:28
(55)Потому что по-русски они всегда были п-сы.
58 1Снеговик
 
гуру
03.08.17
14:28
(55) еще подходит "путиноид")
Но на самом деле я думаю это "пансексуал")
59 1Снеговик
 
гуру
03.08.17
14:29
Пансексуальность — это сексуальная ориентация, не учитывающая различия между полами.
60 LenaAt
 
03.08.17
14:30
(56) Добавить 1 строчку в коде за 20 лет - это какая - то проблема?
61 1Снеговик
 
гуру
03.08.17
14:30
То есть не "Не определился", а "Мне все равно" :)
62 1Снеговик
 
гуру
03.08.17
14:31
(60) как правило, перечисления используются далеко не в одной строчке кода.  В вашем случае да, может быть не критично.
63 LenaAt
 
03.08.17
14:34
(62) И у меня это перечисление не в одном месте используется. Но с современными средствами рефакторинга, которые в 1С появились, я лучше изменю код, чем буду программно работать со справочниками. С перечислением работать легче и надёжнее.
64 Любопытная
 
03.08.17
14:35
(60) Я одного не пойму - вы ж уверены в своей правоте, зачем вопросы задавать?
65 LenaAt
 
03.08.17
14:37
(64) Извините, пожалуйста, если нельзя.
66 1Снеговик
 
гуру
03.08.17
14:37
(63) скажем так, вместо одной строчки будет та же строчка но с вызовом функции, возвращающей постфикс, да придется написать функцию, но это код ты больше никогда трогать не будешь, и никто после тебя не будет должен разбираться куда что надо срочно в коде добавить.
67 Любопытная
 
03.08.17
14:38
(65) я не говорю, что нельзя, я интересуюсь зачем) Это немного разные вещи
68 Йохохо
 
03.08.17
14:39
(63) чем программная работа с перечислением отличается от программной работы с предопределенными справочника?
за "/" в номере вы себя через месяц так проклянете что будете баобабом 10 раз по 300 лет
69 LenaAt
 
03.08.17
14:42
(68) Тем, что элемент перечисления прописан в конфигураторе, он очевиден, а элемент справочника нужно искать с заранее неизвестным результатом.
70 1Снеговик
 
гуру
03.08.17
14:43
А автоматический рефакторинг для меня зло - я его отключаю)

(68) тсс! Не выдавай секреты восьмерки)
А есть еще предопределенное значение плана видов характеристик - тоже можно использовать как перечисление)
71 LenaAt
 
03.08.17
14:43
(67) А зачем вы интересуетесь зачем я задаю вопросы?
72 Amra
 
03.08.17
14:43
(69) Искать предопределенный элемент? Вы б не позорились
73 1Снеговик
 
гуру
03.08.17
14:43
(69) с предопределенными все тоже более чем очевидно. Зато можно еще реквизиты использовать, а в перечислении нет!)
74 LenaAt
 
03.08.17
14:44
(70) И предопределенные значения справочников...
75 Amra
 
03.08.17
14:44
(73) Да, например реквизит "Префикс" :) Но (64)...
76 LenaAt
 
03.08.17
14:46
(72) Расшифруйте свою мысль, пожалуйста? Кто у вас ищет предопределенный элемент справочника?
77 Любопытная
 
03.08.17
14:46
(71) Я пытаюсь понять
78 LenaAt
 
03.08.17
14:46
(77) Что Вы пытаетесь понять?
79 Amra
 
03.08.17
14:46
(76) Вы. Судя по (69)
80 dezss
 
03.08.17
14:47
офф: оспаде...такое ощущение, что я попал в бухгалтерию, а не на форму программистов
81 dezss
 
03.08.17
14:48
*форум
82 LenaAt
 
03.08.17
14:48
(79) А где там написано про предопределенные элементы справочника?
83 X Leshiy
 
03.08.17
14:48
КГ/АМ в общем.
84 Amra
 
03.08.17
14:49
(82) Вы под дурочку косите? Вы там отвечаете тестом про поиск элемента справочника, отвечая на пост про предопределенные элементы
85 LenaAt
 
03.08.17
14:50
(83) Это нормально так хамить другому человеку? Не интересна тема - я вас не держу здесь насильно.
86 Любопытная
 
03.08.17
14:51
(78) Я пытаюсь понять зачем вы просите покритиковать, но при этом критику воспринимаете в штыки.
87 Йохохо
 
03.08.17
14:51
(85) "Тем, что элемент перечисления прописан в конфигураторе, он очевиден, а элемент справочника нужно искать с заранее неизвестным результатом" это что? из (69)
88 Йохохо
 
03.08.17
14:52
хотел человек чтоб его похвалили за проделанную работу, но пошел не в курилку, а на форум =)
89 dezss
 
03.08.17
14:52
(88) +100500...точняк...
Это как вопрос от девушки про то, как она выглядит...
90 X Leshiy
 
03.08.17
14:53
(85) Я грубиян.


Тему неправильно назвала.

Правильно так: "Похвалите мой нумератор документов и меня тоже!"
91 1Снеговик
 
гуру
03.08.17
14:53
Короче по теме вопроса могу сказать: надо добавить вот такие значения перечисления "Пол", чтобы всем хватило:
мужчина, женщина, андрогин, интергендер, бигендер, трансгендер, гендерквир. ))
92 LenaAt
 
03.08.17
14:53
(86) Потому что многие не поняли, что я прошу покритиковать. Я прошу покритиковать саму идею и некоторые участники этой беседы высказали ценные для меня соображения. А работать мне с перечислениями или со справочником - мне виднее самой.
93 X Leshiy
 
03.08.17
14:53
(88) +100500
94 X Leshiy
 
03.08.17
14:53
(92) Какую "идею"?
95 Amra
 
03.08.17
14:54
(91) Да чо паришься, в ЗиК пол - справочник!)
96 catena
 
03.08.17
14:54
(91)и "Другое"
97 LenaAt
 
03.08.17
14:54
(90) Я с грубиянами не общаюсь. Извините...
98 X Leshiy
 
03.08.17
14:54
(92) Идею написать свой нумератор? Ну если есть необходимость, электричка навстречу.
99 1Снеговик
 
гуру
03.08.17
14:55
(92) виднее - не значит правильнее) Надо учиться выбирать оптимально, исходя из задачи, и стараться думать на будущее.
100 LenaAt
 
03.08.17
14:55
В общем я поняла. Налетели жирные тролли и кормятся. Спасибо всем, кто обсуждал тему конструктивно.
101 Барматолог
 
03.08.17
14:58
(0) Не закладывайте в номер документа какую либо логику. Это методологически не верно.

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

Все.
102 Amra
 
03.08.17
15:00
(101) Расскажи это законодателям, требующим раздельную нумерацию например счетов-фактур, и им пофиг что десяток организаций ведется в одной базе. Ну и т.д.
103 Барматолог
 
03.08.17
15:03
(102) Законодателям зачем рассказывать?

А с налоговой можно договориться - она закрывает глаза на нарушения нумерации.
104 ptiz
 
03.08.17
15:18
(63) В справочник можно было суффикс запихнуть. Да и сейчас - лучше его в рег.сведений, чем в коде прописывать.
105 Dmitrii
 
гуру
03.08.17
16:09
(0) Изначально идея писать свой нумератор - бред.
Безумный, бесполезный, беспощадный и никому ненужный бред.
1С-ка замечательно нумерует объекты (документы, элементы справочников и т.д.) с использованием префиксов.
Задача решается несколькими строчками простейшего кода в подписке на соответствующее событие.
Применение постфиксов (или как их называют иногда суффиксов) - маразм и дебилизм.

Код в (0) - работа ради работы.

Ну и феерией этого бреда будет падение системы с ошибками "Неуникальный номер". В зависимости от количества одновременно работающих пользователей и объема генерируемого ими документопотока, частота этой ошибки будет варьироваться от пары раз в неделю до "постоянно и регулярно".

И кстати я не совсем понял как система будет себя вести при изменении периода нумератора (года). Например, декабрьский документ решили переделать на январь...
106 LenaAt
 
03.08.17
16:30
(105) Мне нужен номер в виде Число + постфикс. Поэтому я и написала свой нумератор. Потом, из - за неуникального номера система не падает, а не даёт записать документ. Пользователь в данной ситуации может просто ввести свой номер, так что не надо наводить ужасы. А если снять галочку контроль уникальности, то проблемы вообще не будет. А при изменении даты документа можно номер изменить в соответствии с нумерацией следующего года. Как видите, всё просто.
107 Барматолог
 
03.08.17
16:54
(106) >>Пользователь в данной ситуации может просто ввести свой номер

Плохо это. Очень плохо. Пользователей нельзя допускать к изменению номеров.
108 LenaAt
 
03.08.17
16:59
(107) Как у меня задумано, нарушение уникальности быть не может. Если такое случится, пользователь мне позвонит, а я ошибку исправлю. Если меня не будет, то поставит пользователь в конце номера /2 и делов - то. Что в это плохого? Я как увижу, разберусь с причинами и опять же исправлю ошибку.
109 Любопытная
 
03.08.17
17:00
(106) для таких извращений обычно добавляют свой реквизит типа "номер внутренний" и в него вписывают что угодно, не ломая при этом типовую нумерацию объектов.
110 dezss
 
03.08.17
17:04
(108) Да пойми же ты. Тебя тут пытаются научить как писать правильно и универсально, а не как задумано, а ты все думаешь, что пытаются унизить)
111 LenaAt
 
03.08.17
17:06
(109) Я не вижу здесь никаких извращений. Сегодня запустила свой нумератор в реальную работу - пока всё хорошо. Пользователи довольны.
112 Любопытная
 
03.08.17
17:08
(111) Ну и прекрасно тогда.
113 LenaAt
 
03.08.17
17:08
(110) Ничего я такого не думаю. Мне действительно нужен номер в формате Число + Постфикс. Стандартный номератор 1С с такой задачей не справляется. Мой работает и пока без единой проблемы.
114 dezss
 
03.08.17
17:11
(113) тебе же сказали, типовой не трогать, завести свой отдельно и делать с ним что угодно, уже несколько раз сказали. А твой все равно может нарушить уникальность, и сразу звонки, правки и т.д. И зачем тебе это?
115 qsunnx
 
03.08.17
17:12
(8) Архитектор.
В 1С.
Архитектор чего, позвольте уточнить. Канбан-доски?
116 LenaAt
 
03.08.17
17:20
(114) Нарушение уникальности возможно только в случае грязного чтения из БД. Но я подумаю над эти вопросом. Пока флажок контроль уникальности снят и звонков не будет.
117 ptiz
 
03.08.17
17:20
Можете меня пинать, но в ЗУП 2.5 у меня сделано аналогично. Возможны 2 варианта номеров кадровых документов: с суффиксами "-а", "-о", "-к".
Юзер жмет в документе горячую клавишу - и ему предлагается выбор префикса.
Основное отличие от (0) только в том, что в запросе есть "ПЕРВЫЕ".

P.S. Ни одна форма и модуль документов не пострадали :)
118 ptiz
 
03.08.17
17:21
+(117) "3 варианта "
119 Diman000
 
03.08.17
17:21
Сколько крутых архитекторов и кодеров в ветке, прямо ужас.
Ну да, код с перебором значений перечисления кривоват. Но идея переделать перечисление в справочник в системе, которая несколько лет работает, намного более безумна. Вы хоть понимаете чем это потенциально грозит? И ради чего, ради того чтобы на мисте все похлопали в ладоши?
Если хочется убрать кривизну кода, то надо добавить регистр сведений с постфиксами. А за идею переделать перечисление в справочник только ради одного реквизита я бы к стенке поставил.
120 Garykom
 
гуру
03.08.17
17:25
(0) "- Хорошо... Хорошо... Очень хорошо... "©
121 Garykom
 
гуру
03.08.17
17:25
Врач слушает больного и приговаривает:
- Хорошо... Хорошо... Очень хорошо...
- А что же хорошего? Все болит!
- Хорошо, что у меня такого нет! ...
122 Diman000
 
03.08.17
17:26
Ну и сходу назвать бредом свой нумератор с постфиксами это тоже чересчур. Мало ли для чего это надо, бывают корпоративные стандарты нумерации, в конце концов. Если нет возможности их изменить придется придумывать техническое решение, платформа это позволяет.
Создать отдельный реквизит ВнутреннийНомер это один из вариантов, но надо и понимать все его минусы. Надо искать золотую середину, а не называть бредом попытки автора.
123 LenaAt
 
03.08.17
17:26
(120, 121) Пожалуй покину тему на часик, пока троли разбегутся.
124 Garykom
 
гуру
03.08.17
17:27
(119) Делаешь справочник и туда реквизитом засовываешь перечисление, в чем трабла то?
125 Йохохо
 
03.08.17
17:28
(113) у Вас номер документа состоит (ну должен)из уникального числа и постфикса. Зачем писать в базу номер с постфиксом? зачем? показать пользователю можно хоть с картинкой. Если пользователь хочет искать и вводит суффикс аффикс префикс их можно тупо отбросить (тихо тихо молча) и искать по уникальному числу. Надо было просто обработать что ПОКАЗАТЬ ПОЛЬЗОВАТЕЛЮ, а не портить нумератор нумерацию базу и карму
126 Diman000
 
03.08.17
17:28
Лучше бы спросили автора, что будет в случае одновременного создания нескольких документов одного вида. Похоже, что здесь-то уникальность и нарушится.

Вот давать пользователю редактировать номер, пожалуй, единственное однозначно плохое решение. По крайней мере нельзя это делать бесконтрольно.
Пусть хоть записывается куда-то это действие где можно быстро найти. И предупреждающее сообщение выскакивает.
127 Diman000
 
03.08.17
17:28
(124) А потом конфу перепахиваешь где это перечисление используется. Шикарный план.
128 Garykom
 
гуру
03.08.17
17:28
(127) Не тупим плиз, конфу не трогаем
129 dezss
 
03.08.17
17:30
(126) Об этом в основном и была речь в конце темы.
130 Diman000
 
03.08.17
17:30
(128) А, то есть ты просто хочешь еще один справочник с постфиксами, где реквизиты наше перечисление и постфикс?
131 Garykom
 
гуру
03.08.17
17:31
(130) Угу чисто для нумерации, переделывать ли на справочники прочий кривой код это уже отдельный вопрос.
132 Garykom
 
гуру
03.08.17
17:34
1. Стандартную нумерацию не трогать, "постфиксы" писать как префиксы и еще отдельно хранить этот "постфикс" в виде справочника или еще как.
2. Сделать отдельный реквизит для доков куда писать в нужной форме с постфиксом и на печать и для журналов юзать этот "изврат".
133 Diman000
 
03.08.17
17:34
(131) Тогда надо не справочник добавлять, а РС, как я и написал. В справочнике уникальность значений перечисления не будет контролироваться, а она нам нужна.
134 Dmitrii
 
гуру
03.08.17
17:35
(113) >> Мне нужен номер в формате Число + Постфикс

Нет. Тебе это не нужно.
Опытные и неглупые люди тебе пытаются объяснить почему.
Как минимум две причины:
1. Никакой написанный тобою нумератор не будет работать лучше, чем стандартный встроенный в платформу. К сожалению встроенный в платформу умеет нумеровать только с префиксами (с постфиксами/суфиксами он не работает).
2. использование постфиксов пораждает множество проблем с сортировками в отчетах и списках. Отмазка про сортировку по дате - детский лепет.

(108) >> нарушение уникальности быть не может.

Может. Как только два пользователя одновременно попытаются записать документ у обоих будет выдан один и тот же номер. Если же ты достаточно грамотно наложишь исключительные блокировки, то появляется риск отваливания по ошибке ожидания на взаимоблокировкахю

>> Если такое случится, пользователь мне позвонит, а я ошибку исправлю.

Это вообще бред. Ты вечная? Бессмертная?
F если пользователю нужно распечатать срочно документы? Он их распечатает с каким-нибудь кривым номером, который вобьет вручную. А как потом исправлять? - перепечатывать и переподписывать первичку? Идиотизм!

Так делать нельзя.

>> ...поставит пользователь в конце номера /2 и делов - то. Что в это плохого? Я как увижу, разберусь с причинами и опять же исправлю ошибку.

Это то и плохо! Это породит бардак в нумерации.
135 Garykom
 
гуру
03.08.17
17:37
(133) Пофиг можно и РС и справочник это уже дело вкуса.
Я бы справочник заюзал ибо эти постфиксы к чему то наверно привязаны и может их проще "выбирать".
136 azernot
 
03.08.17
17:38
(119) надо всего лишь в модуле менеджера перечисления сделать функцию возвращающую префикс.

Типа
Функция ПолучитьПрефиксУчастка(ЗначениеПеречисления) Экспорт
Префикс = "";
Если ЗначениеПеречисления = Перечисления.УчасткиРК.Хорошево Тогда
       Префикс = "/ХРК";
    ИначеЕсли Источник.УчастокРК = Перечисления.УчасткиРК.Мытищи Тогда
        Источник.Номер = Строка(ПоследнийНомер + 1) + "/МРК";
    ИначеЕсли Источник.УчастокРК = Перечисления.УчасткиРК.Ярославль Тогда
        Источник.Номер = Строка(ПоследнийНомер + 1) + "/ЯРК";
    ИначеЕсли Источник.УчастокРК = Перечисления.УчасткиРК.Коломна Тогда
        Источник.Номер = Строка(ПоследнийНомер + 1) + "/КРК";
    КонецЕсли;

КонецФункции

И при нумерации обращаться к этой процедуре.
Значение перечисления по-любому исправлять в конфигураторе, поэтому одновременно можно и функцию в модуле менеджера подправить.
137 azernot
 
03.08.17
17:39
*(136)
Пардон, не тот копипаст

Функция ПолучитьПрефиксУчастка(ЗначениеПеречисления) Экспорт
    
    Префикс = "";
    Если ЗначениеПеречисления = Перечисления.УчасткиРК.Хорошево Тогда
       Префикс = "ХРК";
    ИначеЕсли ЗначениеПеречисления = Перечисления.УчасткиРК.Мытищи Тогда
        Префикс = "МРК";
    ИначеЕсли ЗначениеПеречисления = Перечисления.УчасткиРК.Ярославль Тогда
        Префикс = "ЯРК";
    ИначеЕсли ЗначениеПеречисления = Перечисления.УчасткиРК.Коломна Тогда
        Префикс = "КРК";
    КонецЕсли;
    
    Возврат Префикс;
КонецФункции
138 azernot
 
03.08.17
17:41
+(136)
ну и соответсвенно в процедуре нумерации

Источник.Номер = Строка(ПоследнийНомер + 1) + "/"+Перечисления.УчасткиРК.ПолучитьПрефиксУчастка(Источник.УчастокРК);
139 azernot
 
03.08.17
17:41
(134) +100
140 КоньЛапчатый
 
03.08.17
17:43
В модуле объекта есть процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)

в которой можно установить любой префикс, да хоть 10 префиксов, если надо и никаких постфиксов городить не надо. Например, у нас в нетленке 3 префикса, нумератор стандартный. Всё работает, как часики.

А вообще, автор - тролль.
141 КонецЕсли
 
03.08.17
19:19
А у вас всех вот это: Строка(КакоетоЧисло)  нормально работает когда КакоетоЧисло до 1000 дойдёт? У меня вот оно начинает символы группировок в номера вставлять :). Поэтому только Формат() и "ЧГ=".
142 DomovoiAtakue
 
03.08.17
19:25
Я плачу. Некем будет нас заменить.
143 Garykom
 
гуру
03.08.17
20:06
(142) Фрешем заменят и кучей обезьянок которые будут вручную переименовывать

Сча переизбыток малоквалифицированной рабсилы, поэтому тем кому не нужна и скорость и качество могут обойтись подешевле ))
144 Franchiser
 
гуру
03.08.17
20:25
Это не нумератор, а нумерация.
Жди ошибок "номер не уникальный" : при реальной работе пользователей несколько  одновременном могут  получить из базы один и тот же номер для инкремента
145 Franchiser
 
гуру
03.08.17
20:26
Если нужен суффикс, я бы завел отдельный реквизит ПредставлениеНомера как это сделано в типовых.
146 DomovoiAtakue
 
03.08.17
23:03
(145)Тут на галочку строчат и объекты правильные внедрять не хотят, а чтоб голову применять для решения нетопорно в лоб, только если 3 галочки за задание дадут :)
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.