Как решить проблему уникальности номеров документов по разным организациям в 1С:УПП?

Программист 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

При ведении учета по нескольким организациям в одной информационной базе «1С:Управление производственным предприятием» (УПП) пользователи часто сталкиваются с неприятной ситуацией. Кадровик или бухгалтер пытается вручную или автоматически присвоить документу (например, приказу о приеме на работу) определенный номер, но система настойчиво выдает предупреждение: «Номер не уникален!».

Особенно остро эта проблема встает в кадровом учете. Кадровые специалисты аргументируют свою позицию тем, что у каждого юридического лица (или ИП) своя собственная, независимая нумерация приказов. С юридической точки зрения они абсолютно правы. Однако техническая логика платформы «1С:Предприятие» по умолчанию работает иначе. В этой статье мы подробно разберем, почему возникает эта ошибка, кто прав в споре программиста и кадровика, и как правильно настроить систему без снятия конфигурации с поддержки.

Выясняем причину: как устроена уникальность номеров в 1С

Для начала проанализируем, почему платформа выдает ошибку неуникальности. В конфигурации 1С:УПП для большинства документов (включая кадровые приказы, такие как ПриемНаРаботуВОрганизацию) в Конфигураторе установлено свойство «Контроль уникальности».

По умолчанию этот контроль работает глобально по всей базе данных в пределах одного вида документа и установленного периода нумерации (как правило, это год). Платформа «не знает», что документы относятся к разным организациям, если для них не заданы соответствующие разделители. Для системы документ ИП Иванова и документ ИП Пупкина с одинаковыми номерами в одном и том же году — это нарушение правила уникальности индекса таблицы базы данных.

Поэтому, если кадровик пытается записать приказ с номером к_111 по одной организации, а в базе уже существует приказ с номером к_111 по другой организации, программа закономерно заблокирует запись.

Главный аргумент для кадровика: префиксы и печать документов

Обычно кадровые специалисты категорически отказываются от использования системных префиксов (например, буквенных обозначений организаций в начале номера), мотивируя это тем, что «в официальном бумажном приказе Т-1 никаких лишних букв быть не должно». Это миф, который легко развеять.

Рассмотрим, как работает механизм печати в типовых конфигурациях 1С:

  1. В справочнике Организации для каждого юридического лица задается уникальный буквенный Префикс (например, ИП для ИП Пупкина, ИВ для ИП Иванова).
  2. При записи документа система автоматически формирует номер вида ИП00-000111 или ИВ00-000111. На уровне базы данных номера остаются абсолютно уникальными, и конфликт автонумерации полностью исчерпан.
  3. Самое важное: при выводе документа на печать (формировании печатных форм Т-1, Т-5, Т-6 и др.) встроенные алгоритмы 1С автоматически отсекают префиксы организаций, префиксы информационных баз и все лидирующие нули. В печатной форме кадровик увидит чистый, красивый номер: «111».

Таким образом, использование префиксов удовлетворяет технические требования платформы 1С и полностью соответствует нормам ведения кадрового делопроизводства.

Почему «отключение уникальности» в Конфигураторе — это плохой путь?

В процессе обсуждения проблемы часто возникает идея просто зайти в Конфигуратор и снять флаг контроля уникальности у нужного документа или переписать стандартный нумератор. Настоятельно рекомендуем избегать таких действий по следующим причинам:

Решаем проблему правильно: пошаговый алгоритм

Разберем по шагам, как настроить изолированную нумерацию по организациям и восстановить порядок в базе данных.

Шаг 1. Настройка префиксов организаций

Перейдем в справочник «Организации» и откроем карточки наших юрлиц. Найдем реквизит Префикс и заполним его:

Теперь все новые документы будут создаваться с учетом этих префиксов (например, ИП00-000001), обеспечивая уникальность номеров в разрезе организаций.

Шаг 2. Корректировка существующих номеров за текущий период

Если пользователи уже успели ввести документы вручную, нарушив стандартную длину номера или удалив префиксы, механизм автонумерации в платформе мог «сбиться». Нам необходимо привести номера существующих документов за текущий год к правильному формату с учетом добавленных префиксов.

Сделать это можно вручную (если документов немного) или воспользовавшись универсальной обработкой «Групповое изменение реквизитов».

Шаг 3. Программный сброс кэша нумерации

После того как все номера приведены к единому стандарту с префиксами, нам необходимо заставить платформу «забыть» старые ошибочные номера и начать корректный отсчет заново. Для этого используется встроенный метод платформы ОбновитьНумерациюОбъектов().

Создадим внешнюю обработку или воспользуемся встроенной консолью кода и выполним следующий скрипт:


// Выберем метаданные нужного документа, например, "Прием на работу в организацию"
МетаданныеДокумента = Метаданные.Документы.ПриемНаРаботуВОрганизацию;

// Запустим стандартную процедуру обновления нумерации
ОбновитьНумерациюОбъектов(МетаданныеДокумента);

Предупреждение("Нумерация успешно обновлена для документа: " + МетаданныеДокумента.Имя);

Этот метод сбросит внутренний счетчик платформы 1С для указанного класса документов. При создании следующего документа система проанализирует базу данных, найдет максимальный номер с учетом нового префикса организации и корректно предложит следующий по порядку номер.

Используя этот подход, мы сохраняем типовую конфигурацию на полной поддержке, обеспечиваем корректную автонумерацию для пользователей и полностью удовлетворяем требования кадровой службы к оформлению печатных документов.

← На главную