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

Артикуляция Задача

Автор Karatel, 12 окт 2022, 07:07

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

Karatel

Добрый день, помогите с задачей. Есть артикул типа BFNA099N000023, последняя часть 000023 это номер самого товара, необходимо сделать чтобы, при добавлении нового товара, данная часть прибавлялась на +1, то есть допустим было уже BFNA099N000024 и т.д.

Karatel

Karatel,

    Запрос = Новый Запрос;
   Запрос.Текст =
   
   "ВЫБРАТЬ
   |   Номенклатура.Ссылка,
   |   Номенклатура.ТипТовара,
   |   Номенклатура.Бренд КАК Бренд,
   |   Номенклатура.Направление,
   |   Номенклатура.Наименование,
   |   Номенклатура.ХолодоваяСеть,
   |   Номенклатура.АртикулССайта
   |ИЗ
   |   Справочник.Номенклатура КАК Номенклатура
   |ГДЕ
   |   Номенклатура.Ссылка В ИЕРАРХИИ(&Родитель)
   |   И Номенклатура.ЭтоГруппа = ЛОЖЬ
   |   И Номенклатура.Бренд.Наименование <> """"
   |   И Номенклатура.ТипТовара.Наименование <> """"
   |   И Номенклатура.Направление.Наименование <> """"
   |   И Номенклатура.Бренд.ЗначениеГенерацииАртикула <> """"
   |   И Номенклатура.ТипТовара.ЗначениеГенерацииАртикула <> """"
   |   И Номенклатура.Направление.ЗначениеГенерацииАртикула <> """"
   |
   |УПОРЯДОЧИТЬ ПО
   |   Бренд";
   
   Запрос.УстановитьПараметр("Родитель", Справочники.Номенклатура.НайтиПоКоду("ZET00001913"));
   
   РезультатЗапроса = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
   
   ПервыйБренд = Истина;
   
   Пока ВыборкаДетальныеЗаписи.Следующий()Цикл

Что необходимо вставить в цикл????

antoneus

Длина числовой части артикула фиксированная? 000023 - т.е. 6 цифр?

Karatel

antoneus, да 6, только прибавляется +1 к концу, с новым товаром
У меня просто еще идёт так, что есть бренд товара и нумерация идёт по бренду, то есть один бренд нашел, пошло 000001, 000002 и т.д., как бренд закончился, новый нашел, нумерация опять 000001, 000002 и т.д, меняется только первые значения характеристики получается.

Karatel

Цитата: Karatel от 12 окт 2022, 12:53antoneus, да 6, только прибавляется +1 к концу, с новым товаром
У меня просто еще идёт так, что есть бренд товара и нумерация идёт по бренду, то есть один бренд нашел, пошло 000001, 000002 и т.д., как бренд закончился, новый нашел, нумерация опять 000001, 000002 и т.д, меняется только первые значения характеристики получается.
Для наглядности вот так: BFND014N000001, BFND014N000002, BFND014N000003, CFND014N000004
Новый бренд: AXRY085N000001, AXRY085N000002, AXRY085N000003
И т.д.
Меняться должна последняя часть числовая, ну соответственно смотря на бренд товара

antoneus

Как-то так

ВЫБРАТЬ ПЕРВЫЕ 1
    ПРАВ(Номенклатура.Бренд, 6) КАК Номер
ИЗ
    Справочник.Номенклатура
ГДЕ
    ЛЕВ(Номенклатура.Бренд, 8) = &Бренд
    И Номенклатура.Ссылка В ИЕРАРХИИ(&Родитель)
УПОРЯДОЧИТЬ ПО
    ПРАВ(Номенклатура.Бренд, 6) УБЫВ

....
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Номер = Число(Выборка.Номер) + 1;
НовыйБренд = Бренд + Формат(Номер, "ЧЦ=6; ЧВН=; ЧГ=0")

Karatel

antoneus, Всё хорошо вроде, но что за функции или операторы ПРАВ и ЛЕВ в запросе?? Такого нет же
Можно попробовать ПОДСТРОКА функцией обрезать

antoneus

С какой-то версии есть. Ну, если версия не дотягивает, подстрока пойдет, да.

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

Рейтинг@Mail.ru

Поиск