Объекты конфигурации
Языки. Интернационализация
Механизмы интернационализации, заложенные в технологическую платформу 1С:Предприятия, позволяют использовать различные языки как при разработке прикладного решения, так и при работе пользователей прикладного решения. Кроме этого, на уровне технологической платформы поддерживаются национальные стандарты представления дат, чисел и т.д.
Поддержка различных языков в системе 1С:Предприятие возможна благодаря тому, что все тексты конфигурации и базы данных хранятся в формате UNICODE. Этот формат позволяет включать в любую текстовую информацию одновременно символы различных языков. Таким образом, пользователь может вводить данные на различных языках, например, если описание товара или текст договора нужно включить на языке страны-производителя. В этом случае система будет не только корректно отображать такие тексты, но и выполнять по ним поиск и сортировку.
Для основных европейских языков поддерживаются национальные представления дат, чисел, времени, логических констант, а также порядок сортировки текстов. Существует возможность настроить конкретное прикладное решение на использование региональных настроек, которые приняты в странах, говорящих на данном языке. Причем, администратор информационной базы имеет возможность использовать как установки, принятые в операционной системе по умолчанию, так и собственные, отличающиеся от них.
Для вызова режима настройки региональных установок информационной базы необходимо выбрать пункт "Администрирование - Региональные установки ИБ:".
Если ни одно из свойств не установлено, то язык и форматы отображения чисел, даты и времени будут определяться настройками операционной системы.
В нижней части диалога выводятся примеры отображения числа, даты и времени с выбранными в диалоге установками.
Язык - выбор языка (страны) для данной установки информационной базы.
Разделитель дробной части- символ-разделитель целой и дробной части чисел можно выбрать из выпадающего списка или указать самостоятельно в поле ввода. Пример символа будет выведен в рамке слева от поля ввода.
Разделитель групп - символ-разделитель групп цифр в целой части числа можно выбрать из выпадающего списка или указать самостоятельно в поле ввода. Пример символа будет выведен в рамке слева от поля ввода.
Группировка - свойство задает формат группировки цифр в целой части числа. Форматную строку можно выбрать из выпадающего списка или указать самостоятельно.
Формат группировки указывается следующим образом:
<количество цифр в группе><символ-разделитель>... ...<0>
В качестве символа-разделителя можно использовать любой символ, отличный от цифры.
Ввод одного символа "0" в этом поле означает, что цифры в целой части чисел не будут разделяться на группы.
Представление отрицательных чисел - из выпадающего списка можно выбрать вид отрицательных чисел. Выбор "Авто" означает, что вид отрицательных чисел будет определяться установками операционной системы.
Формат даты - устанавливает формат отображения даты. Можно использовать в различных сочетаниях символы:
- d число месяца. Числа меньше 10 выводятся без лидирующего нуля;
- dd число месяца. Числа меньше 10 выводятся с лидирующим нулем;
- М номер месяца. Номера месяцев меньше 10 выводятся без лидирующего нуля;
- MM номер месяца. Номера месяцев меньше 10 выводятся с лидирующим нулем;
- мммм наименование месяца словами;
- У две последние цифры года. Года меньше 10 выводятся без лидирующего нуля;
- УУ две последние цифры года. Года меньше 10 выводятся с лидирующим нулем;
- УУУУ год четырьмя цифрами.
Формат времени - устанавливает формат отображения времени. Можно использовать в различных сочетаниях символы:
- h, H часы в 12-часовом (h) или 24-часовом (Н) формате. Часы меньше 10 выводятся без лидирующего нуля;
- hh.HH часы в 12-часовом (hh) или 24-часовом (НН) формате. Часы меньше 10 выводятся с лидирующим нулем;
- m минуты. Минуты меньше 10 выводятся без лидирующего нуля;
- mm минуты. Минуты меньше 10 выводятся с лидирующим нулем;
- s секунды. Секунды меньше 10 выводятся без лидирующего нуля;
- SS секунды. Секунды меньше 10 выводятся с лидирующим нулем.
Логическое ложь, логическое истина. Позволяет указать вид логических констант. Можно выбрать из выпадающего списка, либо ввести самостоятельно.
При разработке прикладных решений активно используется встроенный язык. С его помощью разработчик может описывать собственные алгоритмы функционирования прикладного решения.
Все операторы встроенного языка имеют как русское, так и англоязычное написание, которое можно использовать одновременно в одном исходном тексте. Для этого не требуется изменения каких-либо настроек конфигуратора - система будет правильно воспринимать операторы, написанные на обоих языках:
Документация и синтакс-помощник содержат англоязычный синтаксис и синонимы для всех конструкций встроенного языка.
Функция встроенного языка НСтр позволяет получить строку на нужном языке или языке, определенном для текущего пользователя прикладного решения из набора строк на разных языках конфигурации. Например, в результате выполнения следующего кода:
// Вставить содержимое обработчика. Сообщить (НСтр("ru=""Добрый вечер!""; еn=""GoodEvening!""","en"));
будет получен такой результат:
Функция ПредставлениеПериода позволяет формировать внешнее описание периода, заданного датами начала и окончания на одном из языков, для которых поддерживается локализация. Например, в результате выполнения следующего кода:
ТекущаяДата=ТекущаяДата(); НачалоПериода=НачалоМесяца(ТекущаяДата); КонецПериода=КонецМесяца(ТекущаяДата); Сообщить(ПредставлениеПериода(НачалоПериода,КонецПериода,"L=en_US")); Сообщить(ПредставлениеПериода(НачалоПериода,КонецПериода,"L=uk_UA"));
будет получено представление периода на английском и украинском языках:
Функция ЧислоПрописью позволяет формировать представление числа прописью в соответствии с форматной строкой и на одном из языков, для которых поддерживается локализация. Например, в результате выполнения следующего кода:
Сообщить(ЧислоПрописью(1457.25,"L=en_US","dollar,dollars,cent,cents,2")); Сообщить(ЧислоПрописью(1457.25,"L=uk_UA","гривня,гривнi,гривень,ж,копiка,копiйки,копiйок,ж,2"));
будет получено представление числа на английском и украинском языках:
Функция Формат формирует удобное для чтения представление значений. Представление может формироваться с учетом стандартного форматирования выбранного языка или страны. Например, булевы, числовые значения и значения типа дата:
Сообщить(Формат(Истина,"L=en_US")); Сообщить(Формат(Истина,"L=uk_UA")+Символы.ПС); Сообщить(Формат(1475.25,"L=en_US")); Сообщить(Формат(1475.25,"L=uk_UA")+Символы.ПС); Сообщить(Формат('20010820105635',"L=en_US")); Сообщить(Формат('20010820105635',"L=uk_UA")+Символы.ПС);
будут иметь следующее представление на английском и украинском языках:
С помощью функции формат представления значений могут быть получены для одной из более чем 80 региональных настроек.
Все доступные коды локализации для преобразования числа в пропись находятся в файле loclinfo.txt, входящем в комплект поставки системы 1С:Предприятие.
При формировании выходных форм отчетов на основании макетов текстовых и табличных документов разработчик имеет возможность указать язык, на котором должен быть получен соответствующий макет. Этот язык может отличаться от языка, используемого текущим пользователем прикладного решения.
В процессе разработки прикладного решения можно использовать не только русскоязычный интерфейс конфигуратора, но и другие интерфейсы, входящие в поставку 1С:Предприятия. Разработчик может выбрать один из них в качестве интерфейса, используемого по умолчанию, и вести разработку, например, используя английский или украинский интерфейс.
На уровне платформы всегда присутствует "Английский" язык. "Русский" язык интерфейсов идет как дополнительный. Это говорит о том, что разработчик первично закладывал в программу широкую ориентацию, а не только на Российский регион.
На текущий момент поддерживаются дополнительные интерфейсы платформы:
При установке необходимо выбрать язык интерфейса по умолчанию. В дальнейшем этот параметр можно изменять.
Все выбранные языки интерфейсов устанавливаются в каталог исполняемого файла. Каталог каждого установленного языка имеет название его представления в виде кода "Русский" - "ru", "Английский" - "en", "Украинский" - "ua" и т.д.
Создание многоязыковых прикладных решений возможно благодаря тому, что существует возможность использования дополнительных локализованных интерфейсов. После установки дополнительных интерфейсов становятся доступны локализованные версии элементов интерфейса 1С:Предприятия 8.0:
- системные меню;
- системные диалоги;
- системные сообщения;
- справка.
Для того чтобы помочь разработчику при создании многоязычных прикладных решений, в состав средств разработки "1С:Предприятия" входит средство быстрой локализации, позволяющее находить и группировать все вхождения той или иной строки в конфигурацию и "в одно нажатие" заменить его или добавить ее аналог на другом языке.
Локализация прикладных решений заключается в том, чтобы сформировать строковые значения на языках, указанных на ветви "Общие - Языки" дерева объектов конфигурации, для отображения их в различных местах пользовательского интерфейса.
В каркасной конфигурации созданы языки Русский, Английский. Создадим интерфейс "ИнтерфейсАнглийский" по аналогии с интерфейсом "ИнтерфейсПродажи".
Наиболее сложной задачей, при выполнении локализации, является поиск мест, в которых необходимо ввести текст на требуемом языке. Конфигуратор 1С:Предприятия 8.0 позволяет разработчику выполнять автоматический поиск и редактирование текстов интерфейсов. Выберем пункт "Правка - Редактирование текстов интерфейса".
На экран выводится диалог:
На закладке "Конфигурации" выбираются объекты конфигурации, в которых требуется осуществить редактирование текстов интерфейса. В список конфигураций будут включены все открытые на текущий момент окна конфигураций. В поле выбора можно выбрать строку "Вся конфигурация" и в этом случае будет сформирован полный список объектов конфигурации, которые содержат интерфейсные свойства. Поиск можно осуществлять только в определенных объектах, если в поле выбора выбрать этот объект.
На закладке "Файлы" можно выбрать текстовые и табличные документы, внешние обработки, расположенные в файлах. Мы эту закладку пропустим.
На закладке "Модули" установим флажок "Искать в функциях "НСтр" ("NStr") в модулях", если требуется определить места использования оператора НСтр() в модулях.
Нажмем кнопку "Искать" и на экран выводится окно:
Окно содержит табличное поле, в первой колонке которого выводится расположение найденного текста. Другие колонки соответствуют указанным языкам. В табличном поле может быть больше колонок, чем определено языков. Дополнительные колонки появляются в случае, когда в процессе конфигурирования создавались новые объекты "Язык", которые затем либо удалялись, либо у них менялся код языка (при удалении или смене кода языка объектов данного типа Конфигуратор не сбрасывает текст интерфейсов, введенных для этих языков).
Содержимое табличного поля отсортировано по одной из колонок. Для смены сортировки достаточно щелкнуть заголовок колонки. При повторном щелчке заголовка производится смена направления сортировки.
Текст можно также изменить прямо в ячейке, нажав клавишу Enter. Измененный текст показывается красным цветом.
Для быстрого доступа к тексту интерфейса определенного объекта достаточно в колонке "Расположение" дважды щелкнуть мышью нужную строку. На экран выводится форма, в которой данный текст используется. В палитре свойств можно также произвести просмотр и замену найденного текста.
Поддерживается поиск в основной конфигурации, конфигурации базы данных, во внешних и открытых файлах (*.txt;*.mxl;*.epf;*.grs;*.geo;*.cf), в модулях в функциях "НСтр" ("NStr"). Внести изменения в текст интерфейса можно для всех указанных объектов, кроме конфигурации базы данных (только чтение).
На форме справочника "Клиенты" добавим синонимы, заголовки надписей на английском языке.