Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 05:26

Вопрос по нумерации номенклатуры

Автор virus555, 09 мар 2011, 23:02

0 Пользователей и 2 гостей просматривают эту тему.

virus555

Работаю в 1С 8.2 Конфигурации Управление Торговлей редакция 11

Проблема - Не устраивает нумерация номенклатуры

она идет 00-00000001, 00-00000002 и т.д. - мне надо к примеру 00001, 00002

Там в Модуле Номенклатуры есть такие строки

---------------------------------
&НаКлиенте
Процедура ПриОткрытии(Отказ)

//Вот сюда бы вставить код который будет генерировать Номер
          
КонецПроцедуры
---------------------------------

Код должен узнавать какой номер последний в номенклатуре и прибавлять к нему единицу


Подскажите пожалуйста как это сделать?

Или какой другой способ посоветуйте. Буду очень благодарен.

Klyacksa

Ну можно, конечно, и в ПриОткрытии, последний номер запросом узнавать.
Делаете запрос к справочнику, в нем отбираете все элементы, упорядочиваете по убыванию кода, берете одну запись - и дальше ее увеличиваете.

НО: если код имеет тип Строка, то придется ручками переводить в число, потом прибавлять, переводить обратно в строку (здесь, опять же, не потерять нули...).
а если создали один элемент (сработало ПриОткрытии присвоился номер 12345), тут же создали второй элемент (опять же сработало ПриОткрытии, присвоился номер тот же 12345), то тогда как быть? :)

Если хотите ручками пересчитывать - то лучше тогда не в ПриОткрытии, а в ПриЗаписи, тогда возможных коллизий будет меньше, и элемент уже точно будет записываться в базу.

А еще лучше - покопать в сторону нумераторов и префиксов... Можно подправить код к нужному формату, и система сама будет увеличивать итератор.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Slin

Интересно, какая необходимость иметь урезанные номера?
Не знаю как сейчас, но раньше довольно часто пользователи допускали такую ошибку - вбивали вручную номера меньшей длины, система принимала и начинала нумеровать дальше той же длины (что вам и нужно). Потом начинали поступать различные жалобы, в связи с тем что длина номера имеет конечную длину, при превышении которой система перестает нумеровать. Причем вбивание номера с большей длиной не помогало, система автонумерации рушилась.
Если такие номера нужно использовать для вывода, то лучше просто обрезать их при выводе в конкретном случае. А так... мало ли какие камешки могут возникнуть... например, при обновлении.
skype: slin-dev

Myti

1. Меняй нумерацию на нужную тебе обработкой (00001.00002.00003.....)
2. В конф-ре уменьшай длину номера справочника.
3. При обновлении справочник придется не обновлять.
3. И все гуд.
Но при достижении номера 99999. Система перестанет заводить элементы. :) Посмеемся

Klyacksa

Ну может автору черточка в номере не нравится...
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Myti

Тогдя рекомнендую прописать на "@" :)))

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск