Строковые константные выражения в коде: требования по локализации

#std764

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. Не локализуются строковые константы с внутренними идентификаторами, которые не выводятся пользователям. К ним не следует применять функцию НСтр. При этом, такие строковые идентификаторы должны именоваться по правилам именования идентификаторов переменных встроенного языка.

Например:

Возврат "ОперацияВыполненаУспешно";
Оповестить("ЗаписьФайл", Новый Структура("Событие", "ВерсияСохранена"), ФайлСсылка);

Неправильно:

Если Статус = "Отгрузка клиентам" Тогда ...

Правильно:

Если Статус = "ОтгрузкаКлиентам" Тогда ...

Это требование распространяется и на использование идентификаторов в текстах запросов и в выражениях СКД.

При использовании в коде строковых констант можно и даже предпочтительно применять функции, возвращающие эти строковые константы, такой подход упрощает отладку и рефакторинг кода.

Правильно:

РезультатЗагрузки = ЗагрузитьФайлИзИнтернета(...);
Если РезультатЗагрузки = РезультатЗагрузкиУспешно() Тогда 
...
ИначеЕсли ...

Функция РезультатЗагрузкиУспешно()
  Возврат "Успешно"; 
КонецФункции

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

2. В алгоритмах программы не следует использовать представления объектов и типов. Строковые представления предназначены только для вывода пользователю, они могут различаться в зависимости от текущего языка программы. Поэтому их использование приводит к ошибкам при локализации конфигурации, а также при интеграции с системами на других языках. Частные случаи некорректного использования представлений объектов и типов в коде.

2.1. Для получения предопределенного значения на клиенте следует указывать его строковое имя, как оно указано в конфигураторе.

Например, неправильно:

Если Строка(ЮрФизЛицо) = "Юридическое лицо" Тогда

правильно

Если ЮрФизЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо") Тогда

Подробнее см. раздел Работа с предопределенными значениями в документации к платформе 1С:Предприятие (на ИТС).