Зарплата и управление персоналом, редакция 3.1 (3.1.18.83). При создании и записи документа Увольнение выдает ошибку
Значение поля "Номер" не уникально. Вручную ставим следующий номер, но ошибка сохраняется, хотя номер ( в рамках типа документа "Увольнение" и в течение года точно уникальный. И почему программа присваивает номер, который уже есть, тоже непонятно.
Как исправить ошибку?
---
И почему программа присваивает номер, который уже есть, тоже непонятно - потому что нумератор! Цифровой :) И ваши хххх-хххЛС не понимает! Все префиксы должны формироваться ДО нумератора ххххЛС-0001 ,ххххЛС-0002 и так далее. Или перенумерация документов ( по типу) или дописка/расширение для "нетленного" нумератора "хххх-хххЛС"
---
обновление релиза до последней версии 3.1.18.121 решило эту задачу.
Хотелось бы знать, что именно там могло поменяться, т.к. ОбновитьНумерациюОбъектов делали, а что ещё могло измениться после обновления надо изучать.
Но всё же согласно логике программы нумерация у нас ведется не правильно, хорошо бы если б мне удалось это донести до пользователя.
Благодарю Вас за помощь!
---
И почему программа присваивает номер, который уже есть, тоже непонятно - потому что нумератор! Цифровой :) И ваши хххх-хххЛС не понимает! Все префиксы должны формироваться ДО нумератора ххххЛС-0001 ,ххххЛС-0002 и так далее. Или перенумерация документов ( по типу) или дописка/расширение для "нетленного" нумератора "хххх-хххЛС"
---
через отладчик не получилось найти где он по счетчику после префикса присваивает номер. Где найти нумератор?
---
Общий модуль ПрефиксацияОбъектовСобытия

```1c
    Процедура УстановитьПрефикс(Источник, Префикс, УстановитьПрефиксИнформационнойБазы, УстановитьПрефиксОрганизации)

    ПрефиксИнформационнойБазы = ";
    ПрефиксОрганизации = ";

    Если УстановитьПрефиксИнформационнойБазы Тогда

    ПриОпределенииПрефиксаИнформационнойБазы(ПрефиксИнформационнойБазы);

    ДополнитьСтрокуНулямиСлева(ПрефиксИнформационнойБазы, 2);
    КонецЕсли;

    Если УстановитьПрефиксОрганизации Тогда

    Если РеквизитОрганизацияДоступен(Источник) Тогда

    ПриОпределенииПрефиксаОрганизации(
    Источник[ИмяРеквизитаОрганизация(Источник.Метаданные())], ПрефиксОрганизации);
    // Если задана пустая ссылка на организацию.
    Если ПрефиксОрганизации = Ложь Тогда

    ПрефиксОрганизации = ";

    КонецЕсли;

    КонецЕсли;

    ДополнитьСтрокуНулямиСлева(ПрефиксОрганизации, 2);
    КонецЕсли;

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

    Префикс = ШаблонПрефикса;

    КонецПроцедуры
```
---
```1c
    Процедура ПроверитьНомерОбъектаПоДатеИОрганизации(Объект)

    Если Объект.ОбменДанными.Загрузка Тогда
    Возврат;
    ИначеЕсли Объект.ЭтоНовый() Тогда
    Возврат;
    КонецЕсли;
```

он при новом объекте не проходит дальше процедуру, при этом все равно проверяет на уникальность, или я не в ту процедуру смотрю в этом модуле?
---
это префикс, а как посмотреть откуда он берет номер 25?
---
При записи Нового вызывается УстановитьНовыйНомер , далее подключается подписка на событие УстановитьНовыйНомер , и номер добивается префиксом!

Синтаксис:
УстановитьНовыйНомер(<ПрефиксНомера>)
Параметры:
<ПрефиксНомера> (необязательный)
Тип: Строка.
Префикс устанавливаемого номера.
Значение по умолчанию: Пустая строка.
Описание:
Устанавливает новый номер документа для заданного префикса номера.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Для документов с нумерацией в пределах периода, номер устанавливается в пределах периода, соответствующего установленной дате документа. Если дата - пустая, процедура установит номер в пределах периода соответствующего пустой дате.
Пример:
РасходнаяНакладная.УстановитьНовыйНомер(ПрефиксИБ);
См. также:
ДокументОбъект.<Имя документа>, событие ПриУстановкеНовогоНомера
Использование в версии:
Доступен, начиная с версии 8.0.
---
она как-то автоматически срабатывает? не могу найти использование этого метода для документа Увольнение
---
Да автоматически, см. подписку на событие УстановитьПрефиксИБИОрганизацииНомеруДокументаЗарплатаКадрыБ­азовая
---
тогда непонятно как решать сейчас проблему с тем что документ невозможно без ошибки создать и тем более пересчитать
---
Уберите буквы в конце номера. Автоматически система пытается создать номер 0ХЗК-0026лс1, но ей не хватает длины номера, и вставляется 0ХЗК-0026лс.
---
Исправьте нумерацию предыдущих документов! без ЛС , 0XЗК-0000001 , 0XЗК-0000002 ( для печати 0XЗК-00001ЛС и 0XЗК-00002ЛС ) и так по всем ручками! И будет у вас дальше нумерация шагать как надо!
.
---
номер для печати ведь формируется из номера, как мне их разграничить?
допиской свой номер для печати ставить?
---
(24)непонятен момент, если все дело в этих "ЛС", то почему эта проблема случилась в середине года, а не в апреле-марте?
---
Мне нравится решение в плане именно решения проблемы, но не нравится то, чем это потом может обернуться в связи с нарушением некоторой последовательности в проведении расчетных документов.
при проведении одного из увольнений программа перепровела так же и больничный лист за прошлый период
---
можно не проводить :) а перенумеровать программно и Объект.Записать(РежимЗаписиДокумента.Запись) без перепроведения ;)
---
В общем, да. Перенумерация поможет, но дело в том, что до увольнения одного сотрудника всё нормально отрабатывало и с текущей нумерацией.
Просто номер каждый раз ставят вручную. По другим сотрудникам таких проблем не возникает.
---
но дело в том, что до увольнения одного сотрудника всё нормально отрабатывало и с текущей нумерацией.
Просто номер каждый раз ставят вручную. - :) ну вот и стало "не все нормально" :)..Зачем нужно ручками нумерацию то править? если Специально разработчики предусмотрели Номер для печати?

P/S Искать черную кошку в черной комнате... не благодарное занятие. направление Вам дали... как не нужно делать показали , про способы исправление рассказали...
---
Если говорить метафорами, то бодаться с двумя отделами за смену нумерации и методики работы из-за одной "паршивой овцы" как-то не хочется на самом-то деле. Кошка-то может и в черной комнате, но она не столько на нумерацию завязана, сколько на что-то ещё. Этого сотрудника отличает то, что он был принят в июле, июлем же и увольняется.
---
1С даже не идет в процедуру перерасчета начислений, просто выкидывает с ошибкой на нумерацию и все. По другим сотрудникам, принятым ранее июля, такой ошибки нет.
---
Разработчики номер для печати предусмотрели не сразу кстати) Если уж об этом говорить
---
Разработчики номер для печати предусмотрели не сразу кстати) Если уж об этом говорить ну да не сразу :) с релиза 3.0.12.38
---
обновление релиза до последней версии 3.1.18.121 решило эту задачу.
Хотелось бы знать, что именно там могло поменяться, т.к. ОбновитьНумерациюОбъектов делали, а что ещё могло измениться после обновления надо изучать.
Но всё же согласно логике программы нумерация у нас ведется не правильно, хорошо бы если б мне удалось это донести до пользователя.
Благодарю Вас за помощь!
---
Особенности работы механизма автонумерации
---
тип номера у Увольнения "Строка". не числовой
---
"потому что нумератор! Цифровой" , не Номер, а Нумератор. Читайте (13).. там все очень подробно написано! Что такое нумератор и " с чем его едят" :)
---
я столкнулся что ЗУП 3.1 при записи нового пустого табеля ругается Значение поля "Номер" не уникально и показывает уже существующий номер, причем когда еще раз записываю новый табель так же ругается и показывает на существующий номер +1
Оказалось дело в том, что я записываю табель от 15.07.22, а уже существуют табели от 31.07.22. Поставил дату 31.07.22 - новый документ записался без ошибок и с правильной нумерацией.
---
Скрин списка документов увольнения из консоли запросов. Собственно последний документ не рассчитывается, новый не создается
---
Видимо сбили нумерацию приписывая к номеру лс. Судя по приведенному скрину следующий номер будет 0027лс. Попробуйте записать документ с этим номером.
---
27 так же не проходит проверку на уникальность
---
он вообще изначально выругался на 25 номер увольнения, почему программа его присваивает если он уже есть в базе
---
В Увольнении как и в Приеме есть два номера: 1 который присваивает программа, а второй номер для печати.
---
а номер для печати так же проходит проверку на уникальность?
---
нет
---
Нет, номер для печати не проходит проверку уникальности.
---
Сделайте дописку Номер для печати = Номер документа + "лс"