Версия для печати темы (https://pro1c.org.ua/index.php?showtopic=67361)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Заняты все кода номенклатуры

Автор: ZenBi 24.10.23, 10:41

Приветствую!
Столкнулся с проблемой:
В справочнике Номенклатура очень много елементов. Настолько, что заняты почти все кода для неё.
Работаем в 1С УПП (соответственно обычные формы), у нас код - 5-ти значное число, и счетчик уже перевалил за 99500. В тестовой базе догнал до 99999 и далее оно просто запрещает создавать номенклатуру, пишет, что значение поля код не уникально, ибо пытается снова завести код "99999".
НО! Зайдя в конфигуратор, увидел, что код в номенклатуре имеет длину в 11 символов.
Первая идея по решению была пройтись вот этим вот:

"ОбновитьНумерациюОбъектов()".

Но увы даное решение не подходит - постоянно делаем обмен с другой програмой(не 1С) и если в 1 из номенклатур изменится код - то та програма у себя больше эту номенклатуру не найдёт.
Потому надо как-то увеличивать длину кода.
Програмно создал номенклатуру с кодом 100000 (6 символов), её записало нормально, но следующая номенклатура опять пытается создатся с кодом 99999 и опять же выдаёт ошибку.
Вопрос - Чё делать?!
Помогите пожалуйста.

Автор: denis84 24.10.23, 11:39

ZenBi @ Сегодня, 11:41 * ,
а якщо створити нову базу туди закачати залишки і вперед! Такий варіант не розглядали?

Автор: ZenBi 24.10.23, 11:45

denis84 @ Сегодня, 12:39 * ,
Нажаль ні. Подібне рішення не підходить.

Автор: alexxbely 24.10.23, 12:04

ZenBi @ Сегодня, 11:41 * ,
Як варіант - завести новий реквізит, типу - "Код_старий", заповнити його існуючими кодами, потім виконати ОбновитьНумерациюОбъектов(), перевірити, що нові елементи створюються з вірними кодами і перезаписати системний код з поля Код_старий
PS. Програмно создал номенклатуру с кодом 100000 (6 символов), а на формі поле код часом не довжиною 5 символів?

Автор: ZenBi 24.10.23, 12:43

alexxbely @ Сегодня, 13:04 * ,
На формі поле обмежено 11 символами.
Знайшов спорне рішення - вводити суфікси. Накшталп "А-00001"
Проте іще буду тестувати і шукати щось ліпше.

Автор: Talkman 24.10.23, 13:39

Была похожая проблема. Возникает, когда код текстовый и расширяют разрядность кода, когда уже пошла нумерация без перенумерации. Посмотрите, после последнего разряда в коде идут пробелы? Если идут - нужна перенумерация. Я бы на верочку сделал бы хенд мейд обработкой.

Автор: batlcat 24.10.23, 18:09

ZenBi @ Сегодня, 12:41 * ,
код номенклатуры 11 символов

у вас занято 6 символов

обратите вниманий как выглядят коды до 10000

09999
09998
....
08255
.......
00002

Нужно добавить нули в начало кода
У элимента с кодом 99999 измини его на 000099999
Тогда нумерация продолжится

Автор: andreydv87 25.10.23, 11:48

ZenBi @ Вчера, 11:41 * ,
Длина должна быть 11 (99999999999 или 0000-999999) символов, а у Вас 5 (99999). Это означает что код был изменен в прошлом.
Исправляется перенумерацией справочника.

Можно попробовать в справочнике добавить свой нумератор и написать процедуру нумерации (как вариант).

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua