Как реализовать печать счетов на английском и русском языках в 1С:Бухгалтерия 3.0

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При ведении внешнеэкономической деятельности бухгалтерия часто сталкивается с необходимостью выставления счетов (Invoices) на иностранном языке. При этом возникает дилемма: согласно российскому законодательству, первичные документы для внутреннего учета должны быть на русском языке, а иностранному контрагенту и банку для валютного контроля требуется английская версия. Рассмотрим, как эффективно решить эту задачу в 1С:Бухгалтерия предприятия 3.0 (БП 3.0), сохранив конфигурацию типовой и обеспечив удобство работы пользователей.

Стратегия хранения данных: где держать переводы?

Прежде чем приступать к разработке печатной формы, нам необходимо определить, где система будет брать названия товаров, услуг и контрагентов на английском языке. Разберем наиболее эффективный метод — использование механизма Дополнительных реквизитов. Это стандартный функционал 1С, который позволяет добавлять новые поля к объектам без изменения структуры конфигурации.

Проанализируем шаги по настройке хранения данных:

  1. Перейдем в раздел Администрирование — Общие настройки — Дополнительные реквизиты и сведения.
  2. Для справочника Номенклатура создадим новый реквизит с наименованием "Наименование (англ.)" и типом значения "Строка".
  3. Аналогичные действия выполним для справочников Контрагенты, Организации и Договоры контрагентов.

Такой подход позволяет пользователям самостоятельно заполнять переводы прямо в карточке товара или партнера, не дожидаясь помощи программиста.

Выбор механизма реализации: ВПФ или Расширение

Существует два основных способа внедрения мультиязычной формы:

  1. Внешняя печатная форма (ВПФ): Это отдельный файл (обработка), который подключается через справочник "Дополнительные отчеты и обработки". Идеально подходит, если нужно добавить новую форму печати, не затрагивая стандартные алгоритмы.
  2. Расширение конфигурации: Более современный метод. Позволяет не только добавить форму, но и, например, внедрить кнопку "Печать на английском" непосредственно в командную панель документа СчетНаОплатуПокупателю.

Рассмотрим вариант с ВПФ как наиболее безопасный для последующих обновлений программы. В программном коде обработки нам потребуется извлекать данные из созданных ранее дополнительных реквизитов.

Программное извлечение англоязычных наименований

Для получения данных из дополнительных реквизитов в коде 1С удобно использовать типовые функции БСП (Библиотеки стандартных подсистем). Проанализируем пример кода, который позволяет получить значение свойства:


Функция ПолучитьАнглийскоеНаименование(ОбъектСсылка, ИмяРеквизита) Экспорт
    Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ИмяРеквизита);
    Если Свойство.Пустая() Тогда
        Возврат Строка(ОбъектСсылка);
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ДополнительныеРеквизиты.Значение КАК Значение
        |ИЗ
        |   Справочник.Номенклатура.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты
        |ГДЕ
        |   ДополнительныеРеквизиты.Ссылка = &Ссылка
        |   И ДополнительныеРеквизиты.Свойство = &Свойство";
    
    Запрос.УстановитьПараметр("Ссылка", ОбъектСсылка);
    Запрос.УстановитьПараметр("Свойство", Свойство);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        Возврат ?(ЗначениеЗаполнено(Выборка.Значение), Выборка.Значение, Строка(ОбъектСсылка));
    КонецЕсли;
    
    Возврат Строка(ОбъектСсылка);
КонецФункции

В данном примере мы сначала ищем описание свойства, а затем через запрос получаем его значение для конкретного объекта. Если перевод не заполнен, функция возвращает стандартное русское наименование, что предотвращает появление пустых строк в счете.

Создание билингвального макета

Опытные разработчики рекомендуют создавать билингвальные (двуязычные) печатные формы. Это снимает вопрос о том, какую форму подшивать для налоговой инспекции. В таком макете заголовки колонок и реквизиты сторон указываются через слэш или в две строки (например, "Продавец / Seller").

Выясним, на что стоит обратить внимание при проектировании макета:

Сумма прописью на английском языке

Одной из самых трудоемких задач является перевод суммы прописью. Стандартная функция 1С ЧислоПрописью() умеет работать только с языками, встроенными в платформу (обычно это русский, украинский и несколько других). Для английского языка (Amount in words) потребуется написать собственную функцию или использовать готовую математическую логику перевода чисел.

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

Автоматизация с помощью расширений и API

Если номенклатура компании насчитывает тысячи позиций, ручной ввод переводов становится проблемой. Проанализируем возможность автоматизации. С помощью расширения конфигурации можно интегрировать вызов API переводчиков (например, Яндекс.Переводчик). При записи новой карточки номенклатуры система может автоматически отправлять запрос и заполнять дополнительный реквизит "Наименование (англ.)".

Кроме того, использование расширений позволяет переопределить стандартное меню печати. Это значит, что бухгалтер не будет искать "Внешнюю печатную форму" в отдельном списке, а увидит пункт "Счет на оплату (English)" в общем списке команд печати документа.

Итоги и рекомендации

Для реализации счетов на английском языке в 1С:БП 3.0 наиболее сбалансированным решением является сочетание Внешней печатной формы и Дополнительных реквизитов. Это обеспечивает:

При реализации не забудьте уделить внимание мелочам: валютным кодам (USD, EUR вместо руб.), условиям поставки (Инкотермс) и корректному выводу подписей ответственных лиц на английском языке.

← На главную