Мультиязычность БСП позволяет печатать документы на нескольких языках из одной базы: счёт для китайского поставщика на английском, акт для партнёра из Казахстана на казахском, внутренние документы на русском. В Библиотеке стандартных подсистем для этого есть языки печатных форм: администратор добавляет языки, переводит макеты в обработке «Макеты печатных форм» и заполняет наименования для печати в справочниках, а пользователь выбирает язык прямо в окне печати. Механизм перевода печатных форм и подключение внешних сервисов автоперевода появились в БСП 3.1.4, поэтому в конфигурациях на более старой БСП этих настроек не будет.

Важно сразу: язык интерфейса программы при этом не меняется. Всё описанное касается только печатных форм.

Кому и зачем это нужно

Классическая ситуация без мультиязычности: для иностранного контрагента делают копию печатной формы «Счёт (англ.)», потом ещё одну, а через год у документа шесть почти одинаковых макетов, и правки в одном забывают перенести в остальные. Языки печатных форм решают это иначе: макет один, переводов несколько.

ПодходПлюсыМинусы
Отдельный макет на каждый языкПросто сделатьДублирование, расхождения при правках
Двуязычный макет (русский и английский в одной форме)Один макетПерегруженный документ, только два языка
Языки печатных форм БСПОдин макет, переводы рядом, выбор в окне печатиНужна БСП с поддержкой, переводы нужно поддерживать

Шаг 1. Добавить языки печатных форм

В разделе «Администрирование» → «Печатные формы, отчёты и обработки» откройте «Языки печатных форм» и добавьте нужные языки. После этого в связанных формах появятся поля и переключатели для этих языков.

Язык добавляется один раз на всю базу. Добавлять «на всякий случай» не стоит: каждый язык — это переводы, которые кто-то должен заполнять и поддерживать.

Шаг 2. Перевести макеты

В том же разделе откройте «Макеты печатных форм», выберите макет и включите редактирование. Появится переключатель языка: слева — текст оригинала, справа — редактируемый текст на выбранном языке.

Правила перевода макета:

  • Параметры не трогайте. Ячейки с параметрами ([НомерДокумента], Покупатель и так далее) должны остаться с теми же именами, иначе код не заполнит их, и в форме будут пустые поля.
  • Переводите постоянный текст: заголовок документа, подписи колонок, фразы вроде «Итого» и «Всего к оплате».
  • Проверяйте ширину. Немецкий и английский текст часто длиннее русского: подписи колонок уезжают и переносятся. После перевода сформируйте документ с реальными данными.
Мультиязычность БСП: один макет печатной формы и несколько языковых версий поверх него
Мультиязычность БСП: один макет печатной формы и несколько языковых версий поверх него

Шаг 3. Перевести наименования для печати

Макет на английском — это только половина. Если в строки счёта попадает «Кабель силовой ВВГ 3х2,5», документ всё равно останется наполовину русским. Поэтому в карточках справочников (номенклатура, контрагенты, организации) у наименования для печати есть кнопка выбора: она открывает форму, где заполняются значения на каждом из добавленных языков.

На практике я советую:

  1. Определить, какие справочники реально попадают в иноязычные документы: обычно это номенклатура, единицы измерения, организации, контрагенты, банки.
  2. Заполнить переводы для позиций, которые продаются за рубеж, а не для всей номенклатуры.
  3. Назначить ответственного за переводы новых позиций, иначе через месяц в счетах снова появится кириллица.

Если перевод не заполнен, в печатную форму выводится значение на основном языке — ошибкой это не считается, поэтому пропуски замечают только клиенты.

Шаг 4. Печать на выбранном языке

В окне предварительного просмотра (универсальной форме печати БСП) появляется выпадающий список языков. Пользователь выбирает язык — печатная форма переформировывается с переведённым макетом и наименованиями. Дальше всё как обычно: печать, сохранение в PDF, отправка по почте.

Автоматический перевод

БСП умеет подключать внешние сервисы перевода, в исходной реализации — Яндекс Переводчик и Google Переводчик. Включается это там же, в «Печатные формы, отчёты и обработки», флажком «Перевод текста с помощью внешнего сервиса»: выбирается сервис и вводятся учётные данные своего аккаунта.

После подключения:

  • при переключении языка в редакторе макета предлагается перевести текст автоматически;
  • в форме наименования для печати появляется кнопка «Перевести автоматически».

Мой совет: используйте автоперевод как черновик. Юридические формулировки в договорах, актах и счетах всё равно должен вычитать человек, знающий язык и терминологию. Сервисы перевода платные по своим тарифам, а данные отправляются во внешний сервис — учитывайте это, если в наименованиях есть коммерческая тайна.

Для своих разработок в БСП есть программный интерфейс перевода — общий модуль подсистемы перевода текста (в редакциях 3.1.x — ПереводТекстаНаДругиеЯзыки). Точные имена функций и параметры смотрите в описании программного интерфейса БСП вашей версии.

Что учитывать разработчику

Если вы дорабатываете печатные формы в конфигурации, где включены языки печатных форм, несколько правил помогут не сломать механизм:

  • Не пишите постоянный текст кодом. Строка Область.Параметры.Заголовок = "Счёт на оплату № " + Номер всегда будет на русском. Держите постоянный текст в макете, где его можно перевести, а в параметр выводите только данные.
  • Если текст всё же формируется в коде, используйте НСтр с вариантами для нужных языков и передавайте код языка вторым параметром:
1С
// Возвращает заголовок счёта на языке печатной формы.
Функция ЗаголовокСчета(НомерДокумента, КодЯзыка)

	Шаблон = НСтр("ru = 'Счёт на оплату № %1'; en = 'Invoice No. %1'", КодЯзыка);
	Возврат СтрШаблон(Шаблон, НомерДокумента);

КонецФункции
  • Наименования берите через механизмы БСП, а не прямым обращением к реквизиту Наименование: иначе переводы для печати не подставятся.
  • Новые макеты регистрируйте как положено (через модуль менеджера и подсистему «Печать»): только тогда они появятся в «Макетах печатных форм» и станут доступны для перевода.
  • Числа и даты. Формат даты и суммы прописью тоже зависят от языка. Для дат используйте Формат с параметром Л= (локализация), для сумм прописью — ЧислоПрописью с соответствующей локализацией, проверяя результат на каждом языке.

Типичные проблемы

  • В документе пустые поля — при переводе макета переименовали параметр.
  • Половина документа на русском — не заполнены наименования для печати или текст собирается в коде.
  • Нет выбора языка в окне печати — не добавлены языки печатных форм или версия БСП их не поддерживает.
  • После обновления пропал перевод изменённого макета — пользовательские макеты нужно сверять после обновлений: если поставщик изменил оригинал, БСП предложит проверить пользовательскую версию.
Мультиязычная печать — это не разовая настройка, а справочник переводов, который живёт вместе с номенклатурой. Без ответственного за переводы она быстро деградирует.

Настройку печатных форм на нескольких языках, перевод и адаптацию макетов делаю в рамках услуги печатные формы 1С; если нужно сначала разобраться, подходит ли ваша версия БСП, начните с консультации.

Коротко

  • Языки печатных форм БСП меняют только печатные формы, не интерфейс.
  • Порядок: добавить языки → перевести макеты → перевести наименования для печати → выбирать язык в окне печати.
  • Параметры в макетах не переводятся, только постоянный текст.
  • Автоперевод через внешние сервисы удобен как черновик, но требует вычитки и платного аккаунта.
  • В коде не собирайте постоянный текст строками без НСтр с кодом языка.