Платформа 8.3.8.2027, обычное приложение.
Конфигурация УТ 10.3 + самописная подсистема, связанная с кузовным ремонтом.
Коды справочника номенклатура - одни цифры.
При добавлении нового элемента появился префикс "И".
Поискал глобально УстановитьНовыйГод - ничего подозрительного не нашел.
Проверил подписки на ПередЗаписью() - только регистрация в узлах для обмена.
Убрал все такие префиксы. Добавляю новый элемент справочника - возникает.
Написал 2 строки в обработке:
тмц = Справочники.Номенклатура.СоздатьЭлемент();
тмц.УстановитьНовыйКод();
После созданий код пустой, после установки нового - с префиксом "И".
Сделал ТИИ - префикс возникает.
Выгрузил в dt, загрузил из dt - перестал возникать.
(0) Кто-то вручную изменил код элемента. А поскольку символ "И" больше любой цифры, то этот префикс и начал появляться дальше. Причем элемент с кривым кодом мог быть даже удален из базы, нумерация все-равно осталась испорченой.
Тип: Массив; Объекты метаданных.
Объект метаданного или массив объектов метаданных, для объектов которого будет выполнено обновление. Если значение параметра не указано, то обновление будет выполнено для всех типов объектов.
Описание:
Выполняет обновление номеров в соответствии с номерами, записанными в базе данных. После вызова данного метода все выданные, но не записанные номера, становятся невалидными, т.к. не гарантируется их уникальность. Данный метод разрешено вызывать только администратору системы.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший