При работе в 1С:Розница пользователи часто сталкиваются с ситуацией, когда в наименованиях номенклатуры появляются лишние пробелы. Это происходит при копировании данных из внешних источников (Excel, браузеры, текстовые редакторы) или из-за особенностей взаимодействия с буфером обмена. В данной статье мы разберем, почему возникает эта проблема и как эффективно очистить базу от «невидимых» символов.
Многие пользователи пытаются удалять пробелы вручную, выделяя их мышкой, однако это не всегда приносит результат. Разберемся, в чем причина:
Для массового исправления наименований эффективнее всего использовать встроенную функцию СокрЛП (сокращение слева и справа). Рассмотрим, как применить этот инструмент на практике.
Функция СокрЛП автоматически удаляет все пробельные символы по краям строки. Чтобы изменения вступили в силу, необходимо не только изменить значение реквизита, но и принудительно записать объект в базу данных.
Разберем пример кода, который позволит обработать наименование номенклатуры:
Объект.Наименование = СокрЛП(Объект.Наименование);
Объект.НаименованиеПолное = СокрЛП(Объект.НаименованиеПолное);
Объект.Записать();
Обратите внимание: использование метода Записать() является критически важным шагом. Без вызова этого метода изменения останутся только в оперативной памяти и не будут сохранены в базе.
Если после применения СокрЛП проблема сохраняется, значит, в строке присутствуют нетипичные спецсимволы. В таком случае разберем следующие подходы:
СтрЗаменить, чтобы принудительно заменить табуляции или неразрывные пробелы на пустую строку перед вызовом СокрЛП.СЖПРОБЕЛЫ (она удаляет все лишние пробелы), а затем загрузить данные обратно в 1С с помощью стандартной обработки «Загрузка данных из табличного документа».Перед тем как запускать код на всей базе номенклатуры, проанализируем возможные риски:
Использование предложенного алгоритма позволит вам быстро привести справочник номенклатуры в порядок и избавиться от ошибок, вызванных некорректным вводом данных пользователями.