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