Автозаполение Артикула При создании новой Номенклатуры
Доброго Дня! УПП 1.3 (1.3.110.2) При создании новой номенклатуры нужно, что бы автоматически заполнялся Артикул, написал процедуру, и вставил нее ПередЗаписью
но вот в чем дело, артикул создается, и всегда один и тот же, нет уникальности, до этого в справочник номенклатуры были введены в ручном режиме по некоторым позициям Артикулы
вот сама процедура, подскажите что делаю не так
но вот в чем дело, артикул создается, и всегда один и тот же, нет уникальности, до этого в справочник номенклатуры были введены в ручном режиме по некоторым позициям Артикулы
вот сама процедура, подскажите что делаю не так
Процедура ЗаполнитьАртикул(ЭтотОбъект)
Максимальный = 0;
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| МАКСИМУМ(Номенклатура.Артикул) КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Артикул";
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 0 Тогда
ЭтотОбъект.Артикул = "000001";
Иначе
Выборка.Следующий();
Максимальный = Число(Выборка.Артикул);
НомерАртикула = Максимальный +1;
Если НомерАртикула < 10 Тогда
ЭтотОбъект.Артикул = "00000"+Строка(НомерАртикула);
ИначеЕсли НомерАртикула < 100 Тогда
ЭтотОбъект.Артикул = "0000"+Строка(НомерАртикула);
ИначеЕсли НомерАртикула < 1000 Тогда
ЭтотОбъект.Артикул = "000"+Строка(НомерАртикула);
ИначеЕсли НомерАртикула < 10000 Тогда
ЭтотОбъект.Артикул = "00"+СтрЗаменить(Строка(НомерАртикула),Символ(160),"");
ИначеЕсли НомерАртикула < 100000 Тогда
ЭтотОбъект.Артикул = "0"+СтрЗаменить(Строка(НомерАртикула),Символ(160),"");
Иначе
ЭтотОбъект.Артикул = Строка(НомерАртикула);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьОтветы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Что за уродливое добавление лидирующий нулей:
Формат(Число(Артикул), "ЧЦ=7; ЧВН=; ЧГ=")
В консоле глянь, что у тебя твой запрос по артикулам выдает.
Формат(Число(Артикул), "ЧЦ=7; ЧВН=; ЧГ=")
В консоле глянь, что у тебя твой запрос по артикулам выдает.
Если я ставлю Реквизит Артикула тип "Число" то тогда нумерация по Артикулам работает, а при тип "Строка" нет
Иначе
ЭтотОбъект.Артикул = Строка(НомерАртикула);
ЭтотОбъект.Артикул = Строка(НомерАртикула);
Что то чувствую я тут вот это отрабатывает
Добавте
|УПОРЯДОЧИТЬ ПО
| Артикул Убыв
пробовал, Убыв ставить , ничего не помогает, при создании новой номенклатуры, формируется один и тот же артикул "000005"
Мне что надо, процедура которая будет при создании новой номенклатуры формировать автоматически уникальный Артикул желательно с префиксом "МК"
Мне что надо, процедура которая будет при создании новой номенклатуры формировать автоматически уникальный Артикул желательно с префиксом "МК"
(8)
Если у вас есть в артикуле кроме цифр и букв, то вам надо делать немного по другому
ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Артикул УБЫВ
Если у вас есть в артикуле кроме цифр и букв, то вам надо делать немного по другому
ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Справочник.Номенклатура.Артикул ПОДОБНО "MK[0-9][0-9][0-9][0-9][0-9][0-9]"
|УПОРЯДОЧИТЬ ПО
| Артикул УБЫВ
Запрос.Выполнить.Выбрать()
Если Запрос.Следующий() Тогда
НомерЧислом = Число(Прав(Выборка.Артикул,6))+1;
НовАртикул = "МК"+Формат(НомерЧислом,"ЧЦ=6; ЧВН=; ЧГ=");
ИНАЧЕ
НовАртикул = "МК000001";
Показать
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот