Часто в процессе ведения учета в 1С:Управление торговлей 11.4 возникает необходимость привести артикулы товаров к единому стандарту. Например, заменить все символы «/» на «-». Давайте разберем, как выполнить такую задачу быстро и безопасно, используя как стандартные возможности программы, так и программный код.
Для выполнения этой задачи не обязательно писать сложный код. В платформе 1С предусмотрена типовая обработка, которая позволяет менять значения реквизитов для большого списка объектов. Выполним настройку по шагам:
Номенклатура.Это группа = Нет и Артикул Содержит /. Это важно, чтобы не менять все товары подряд и не тратить лишнее время.Артикул. Чтобы корректно задать формулу замены, не вводите текст вручную. Вместо этого выберите поле Артикул из списка доступных реквизитов (лучше всего перетащить его мышкой в поле выбора значения).СтрЗаменить(Артикул, "/", "-"). Важно: не ставьте знак «равно» перед формулой и используйте только тот реквизит, который система подставила через механизм выбора.Этот метод предпочтителен, так как он использует встроенные механизмы проверки данных, что позволяет избежать критических ошибок при записи объекта в базу данных.
Если вам требуется более гибкий контроль или необходимо выполнить замену в рамках самописной обработки, вы можете воспользоваться классическим обходом справочника. Этот метод дает полное понимание процесса записи каждого элемента. Рассмотрим пример кода:
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;
// Получаем объект для редактирования
ОбъектНоменклатура = Выборка.ПолучитьОбъект();
// Проверяем наличие символа перед заменой
Если СтрНайти(ОбъектНоменклатура.Артикул, "/") > 0 Тогда
ОбъектНоменклатура.Артикул = СтрЗаменить(ОбъектНоменклатура.Артикул, "/", "-");
ОбъектНоменклатура.Записать();
КонецЕсли;
КонецЦикла;
Разберем этот алгоритм подробнее. Мы используем метод Выбрать() для получения выборки элементов, а затем в цикле Пока ... Цикл перебираем каждый товар. Мы обязательно проверяем свойство ЭтоГруппа, так как группы номенклатуры обычно не имеют артикулов и их пропуск ускоряет работу. С помощью функции СтрНайти() мы удостоверяемся, что артикул действительно содержит «/», и только тогда выполняем замену и метод Записать(). Это экономит ресурсы системы, исключая лишние обращения к базе данных.
Массовое изменение артикулов — это операция, которая может повлиять на целостность данных, особенно в интеграционных системах. Рекомендуем обратить внимание на следующие аспекты:
УТ 11.4 включен контроль уникальности артикулов. Если в результате замены старый артикул «АБ/1» превратится в «АБ-1», а такой артикул уже существует, система выдаст ошибку записи. Проверьте данные заранее.Используя предложенные способы, вы сможете аккуратно и быстро провести корректировку артикулов в вашей учетной системе.