Как массово заменить символ в артикулах номенклатуры в 1С:Управление торговлей 11.4?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Часто в процессе ведения учета в 1С:Управление торговлей 11.4 возникает необходимость привести артикулы товаров к единому стандарту. Например, заменить все символы «/» на «-». Давайте разберем, как выполнить такую задачу быстро и безопасно, используя как стандартные возможности программы, так и программный код.

Способ 1: Использование «Группового изменения реквизитов»

Для выполнения этой задачи не обязательно писать сложный код. В платформе 1С предусмотрена типовая обработка, которая позволяет менять значения реквизитов для большого списка объектов. Выполним настройку по шагам:

  1. Откройте раздел НСИ и администрирование, перейдите в подраздел Обслуживание и запустите обработку Групповое изменение реквизитов.
  2. В поле Изменять выберите объект: Номенклатура.
  3. Нажмите кнопку Дополнительные параметры и установите отбор, чтобы ограничить список товаров. Например: Это группа = Нет и Артикул Содержит /. Это важно, чтобы не менять все товары подряд и не тратить лишнее время.
  4. В списке реквизитов найдите поле Артикул. Чтобы корректно задать формулу замены, не вводите текст вручную. Вместо этого выберите поле Артикул из списка доступных реквизитов (лучше всего перетащить его мышкой в поле выбора значения).
  5. В качестве значения укажите формулу: СтрЗаменить(Артикул, "/", "-"). Важно: не ставьте знак «равно» перед формулой и используйте только тот реквизит, который система подставила через механизм выбора.
  6. После настройки нажмите кнопку Изменить реквизиты. Программа автоматически выполнит перебор объектов и заменит символы.

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

Способ 2: Использование программного кода

Если вам требуется более гибкий контроль или необходимо выполнить замену в рамках самописной обработки, вы можете воспользоваться классическим обходом справочника. Этот метод дает полное понимание процесса записи каждого элемента. Рассмотрим пример кода:


Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
    Если Выборка.ЭтоГруппа Тогда
        Продолжить;
    КонецЕсли;

    // Получаем объект для редактирования
    ОбъектНоменклатура = Выборка.ПолучитьОбъект();

    // Проверяем наличие символа перед заменой
    Если СтрНайти(ОбъектНоменклатура.Артикул, "/") > 0 Тогда
        ОбъектНоменклатура.Артикул = СтрЗаменить(ОбъектНоменклатура.Артикул, "/", "-");
        ОбъектНоменклатура.Записать();
    КонецЕсли;
КонецЦикла;

Разберем этот алгоритм подробнее. Мы используем метод Выбрать() для получения выборки элементов, а затем в цикле Пока ... Цикл перебираем каждый товар. Мы обязательно проверяем свойство ЭтоГруппа, так как группы номенклатуры обычно не имеют артикулов и их пропуск ускоряет работу. С помощью функции СтрНайти() мы удостоверяемся, что артикул действительно содержит «/», и только тогда выполняем замену и метод Записать(). Это экономит ресурсы системы, исключая лишние обращения к базе данных.

Важные рекомендации при массовом изменении данных

Массовое изменение артикулов — это операция, которая может повлиять на целостность данных, особенно в интеграционных системах. Рекомендуем обратить внимание на следующие аспекты:

Используя предложенные способы, вы сможете аккуратно и быстро провести корректировку артикулов в вашей учетной системе.

← На главную