|
УТ 11. Формирование номеров для документов | ☑ | ||
---|---|---|---|---|
0
AlexKulikov
30.03.17
✎
19:34
|
Добрый вечер, уважаемые форумчане.
Хочу попросить совета, как быть в такой ситуации: У меня есть добавленный документ "Замер", и есть два подразделения в организации "X" и "Y". В зависимости от выбранного подразделения, я формирую номер : "Год+ подразделения + номер". Делаю это в "Подписках на события", "При записи". Там же формирую внешний вид Номера документа. Но возникает проблема, если например я добавляю документ с номером 17Y11, а затем создаю документ с номером 17X12, то вылетает ошибка контроля уникальности по номерам (+ я не попадаю в свой обработчик) Как вести параллельную запись номеров? С Уважением, Алексей. |
|||
1
DrShad
30.03.17
✎
19:54
|
Перед записью не предлагать?
|
|||
2
AlexKulikov
30.03.17
✎
21:54
|
Так, у меня при использовании следующих событий "Установка нового номера" Или "Перед записью" передается пустой номер.Мне редактировать нечего.
И еще немаловажный факт, пользователи хотят видеть нумерацию для своего подразделения, а при таком подходе получается, что они закончили работу на 140 документе, пришли на работу, а у них уже 240 номер из за того, что другое подразделение накидало своих документов. |
|||
3
Zhuravlik
30.03.17
✎
22:12
|
1. Добавляем общий реквизит "Счетчик нумерации" (для таких случаев), заполняем его состав.
2. Определяемся с аналитикой нумерации: здесь номер формируется в разрезе года (от даты документа??), и подразделения. 3. В ПередЗаписью - находим максимальный счетчик а разрезе аналитики нумерации, проставляем значение общего реквизита. 4. Затем - если номер документа пуст (а его мог вбить сам пользователь), то генерируем его: реквизиты аналитики нумерации + счетчик с предыдущего шага. Все. |
|||
4
Злопчинский
30.03.17
✎
22:18
|
(2) какой ПРАКТИЧЕСКИЙ сымсл имеет желание "хотят видеть нумерацию"..? если это какой-нибудь порядковый номер замера, который имеет реальный смысл - не надо его вкладывать в номер документа.
|
|||
5
shuhard
30.03.17
✎
22:19
|
(3) достаточно задать каждому подразделению префикс
|
|||
6
Serg_1960
30.03.17
✎
22:39
|
(0) Делаю это в "Подписках на события", "При записи"...
В типовых конфигурациях это делается в подписке при установке номера документа простой подменой префикса конфигурации на Ваш. Проверяете на нужный тип и изменяете префикс. Далее платформа сама подставит нужный номер. Ибо пространство нумерации у них раздельное из-за разных префиксов. |
|||
7
AlexKulikov
31.03.17
✎
12:40
|
<code>
Если ТипЗнч(Источник) = Тип("ДокументОбъект.Замеры") Тогда НомераДляЗамеров = ЗапросКЗамерам(); ДатаДок = Формат(Источник.Дата, "ДЛФ=ДД"); ТекГод = Формат(Источник.Дата, "ДФ=г"); КолВоКА = 0; МаксНомерКА = 0; КолВоКО = 0; МаксНомерКО = 0; Для Каждого Элемента Из НомераДляЗамеров Цикл УсловиеКА = Найти(Элемента.Номер,"КА"); УсловиеКО = Найти(Элемента.Номер,"КО"); Если Не УсловиеКА = 0 Тогда КолВоКА = КолВоКА + 1; СтрокаНомера = СтрЗаменить(Элемента.Номер,"17КА-",""); ТекущийНомер = Число(СтрокаНомера); Если МаксНомерКА < ТекущийНомер Тогда МаксНомерКА = ТекущийНомер; КонецЕсли; ИначеЕсли Не УсловиеКО = 0 Тогда КолВоКО = КолВоКО + 1; СтрокаНомера = СтрЗаменить(Элемента.Номер,"17КО-",""); ТекущийНомер = Число(СтрокаНомера); Если МаксНомерКО < ТекущийНомер Тогда МаксНомерКО = ТекущийНомер; КонецЕсли; КонецЕсли; КонецЦикла; мПодразделение = Источник.Менеджер; Если ЗначениеЗаполнено(мПодразделение) Тогда Если мПодразделение.Подразделение = Справочники.СтруктураПредприятия.НайтиПоКоду("00-000002") Тогда ПрефиксПодразделения = "КА"; Источник.Номер = СокрЛП(ТекГод + ПрефиксПодразделения + "-" + (МаксНомерКА + 1)); Источник.Записать(РежимЗаписиДокумента.Запись); Иначе ПрефиксПодразделения = "КО"; Источник.Номер = СокрЛП(ТекГод + ПрефиксПодразделения + "-" + (МаксНомерКО + 1)); Источник.Записать(РежимЗаписиДокумента.Запись); КонецЕсли; Иначе Сообщить("Менеджер не выбран!"); Отказ = Истина; КонецЕсли; КонецЕсли; </code> Добрый день, написал алгоритм при "Установке нового номера". Появилась проблема, записывает он с одним номером: "17КА-1", а создает с другим "17КА-9". При этом я не могу понять на каком этапе он меняет уже созданный ранее номер на свой. Подскажите пожалуйста, в какой процедуре происходит эта замена номера. |
|||
8
AlexKulikov
31.03.17
✎
18:44
|
Разобрался. Накосячил с процедурой ПриУстановкеНомера.
Всем большое спасибо за помощь. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |