Каталог решений - Копирование реквизита справочника Номенклатура в дополнительный реквизит и обрезка длины артикула

Копирование реквизита справочника Номенклатура в дополнительный реквизит и обрезка длины артикула

Копирование реквизита справочника Номенклатура в дополнительный реквизит и обрезка длины артикула

В наличии

Как заполнить дополнительный реквизит номенклатуры данными из другого реквизита.

Категория:

Описание

Сразу оговорюсь, я обычный пользователь 1с, не программист.

У нас УТ11.3, но принцип, думаю, подойдет ко всем конфигурациям и платформам.

В нашей номенклатуре Артикул задавался через знак =, например:

А=Б=В=С

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

Теперь возникла необходимость обрезать эту цепочку. Создали дополнительный реквизит, и начались поиски способа скопировать значение артикула в дополнительный реквизит, который назвали "Артикулы замен"

Проворные гуру 1С предлагали свои обработки и доработки 1500руб.+

Оказалось, все очень просто можно решить в пару кликов:

НСИ и администрирование — Обслуживание — Корректировка данных — Групповое изменение реквизитов — Выполнить произвольный алгоритм. Далее как на скриншоте перетащил из правого поля в левое нужные строки и поставил знак =

В очередной раз ужаснулся жадности знатоков 1с, которые за эти несколько кликов просили такие суммы…

Осталось решить вопрос, как в поле номенклатура обрезать хвост после первого знака =, включая его. в Экселе такую формулу составил без труда. если гуру подскажут, как это сделать в 1С, то им будет плюс в карму!!

 

UPD: Оказалось, 1С не хуже экселя! просто нагуглил "Функции работы со строками в 1С" 🙂

Таким же способом в групповом изменении реквизитов можно прописать строку:

Объект.Артикул = Лев(Объект.Артикул,Найти(Объект.Артикул, "=")-1)

Пояснение:

Например, артикул: 0123456789=2325461=5463235=54245

Лев(Строка, сколько по счету символов выводить) — выдает только левую часть строки на указанное количество символов  

Объект.Артикул — это строка, с которой будем работать

Найти(Объект.Артикул, "=") — находит какой порядковый номер первого знака =, например 11

-1 — что бы знак = тоже удалился и не входил в строку

В итоге после обработки получаем артикул — 0123456789

Таким же способом с полем Артикул, и другими строковыми функциями, можно удалить, например, дефисы, пробелы и т.п. 

Задача решена в несколько кликов, сэкономлено несколько тысяч рублей.

Надеюсь, помог и вам сэкономить время и деньги.

has been added to your cart:
Оформление заказа