При ведении внешнеэкономической деятельности бухгалтерия часто сталкивается с необходимостью выставления счетов (Invoices) на иностранном языке. При этом возникает дилемма: согласно российскому законодательству, первичные документы для внутреннего учета должны быть на русском языке, а иностранному контрагенту и банку для валютного контроля требуется английская версия. Рассмотрим, как эффективно решить эту задачу в 1С:Бухгалтерия предприятия 3.0 (БП 3.0), сохранив конфигурацию типовой и обеспечив удобство работы пользователей.
Прежде чем приступать к разработке печатной формы, нам необходимо определить, где система будет брать названия товаров, услуг и контрагентов на английском языке. Разберем наиболее эффективный метод — использование механизма Дополнительных реквизитов. Это стандартный функционал 1С, который позволяет добавлять новые поля к объектам без изменения структуры конфигурации.
Проанализируем шаги по настройке хранения данных:
Номенклатура создадим новый реквизит с наименованием "Наименование (англ.)" и типом значения "Строка".Контрагенты, Организации и Договоры контрагентов.Такой подход позволяет пользователям самостоятельно заполнять переводы прямо в карточке товара или партнера, не дожидаясь помощи программиста.
Существует два основных способа внедрения мультиязычной формы:
СчетНаОплатуПокупателю.Рассмотрим вариант с ВПФ как наиболее безопасный для последующих обновлений программы. В программном коде обработки нам потребуется извлекать данные из созданных ранее дополнительных реквизитов.
Для получения данных из дополнительных реквизитов в коде 1С удобно использовать типовые функции БСП (Библиотеки стандартных подсистем). Проанализируем пример кода, который позволяет получить значение свойства:
Функция ПолучитьАнглийскоеНаименование(ОбъектСсылка, ИмяРеквизита) Экспорт
Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ИмяРеквизита);
Если Свойство.Пустая() Тогда
Возврат Строка(ОбъектСсылка);
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДополнительныеРеквизиты.Значение КАК Значение
|ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК ДополнительныеРеквизиты
|ГДЕ
| ДополнительныеРеквизиты.Ссылка = &Ссылка
| И ДополнительныеРеквизиты.Свойство = &Свойство";
Запрос.УстановитьПараметр("Ссылка", ОбъектСсылка);
Запрос.УстановитьПараметр("Свойство", Свойство);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат ?(ЗначениеЗаполнено(Выборка.Значение), Выборка.Значение, Строка(ОбъектСсылка));
КонецЕсли;
Возврат Строка(ОбъектСсылка);
КонецФункции
В данном примере мы сначала ищем описание свойства, а затем через запрос получаем его значение для конкретного объекта. Если перевод не заполнен, функция возвращает стандартное русское наименование, что предотвращает появление пустых строк в счете.
Опытные разработчики рекомендуют создавать билингвальные (двуязычные) печатные формы. Это снимает вопрос о том, какую форму подшивать для налоговой инспекции. В таком макете заголовки колонок и реквизиты сторон указываются через слэш или в две строки (например, "Продавец / Seller").
Выясним, на что стоит обратить внимание при проектировании макета:
SWIFT, а вместо номера счета — IBAN (если актуально). Эти данные также можно хранить в доп. реквизитах банковского счета организации.12-Aug-2024.Формат() с параметром ЧРД='.'.Одной из самых трудоемких задач является перевод суммы прописью. Стандартная функция 1С ЧислоПрописью() умеет работать только с языками, встроенными в платформу (обычно это русский, украинский и несколько других). Для английского языка (Amount in words) потребуется написать собственную функцию или использовать готовую математическую логику перевода чисел.
Пример упрощенного подхода: создание соответствия числительных и их английских эквивалентов. Однако в профессиональных решениях чаще подключают специальные модули, которые учитывают правила построения фраз в английском языке (например, использование "and" между сотнями и десятками в британском варианте).
Если номенклатура компании насчитывает тысячи позиций, ручной ввод переводов становится проблемой. Проанализируем возможность автоматизации. С помощью расширения конфигурации можно интегрировать вызов API переводчиков (например, Яндекс.Переводчик). При записи новой карточки номенклатуры система может автоматически отправлять запрос и заполнять дополнительный реквизит "Наименование (англ.)".
Кроме того, использование расширений позволяет переопределить стандартное меню печати. Это значит, что бухгалтер не будет искать "Внешнюю печатную форму" в отдельном списке, а увидит пункт "Счет на оплату (English)" в общем списке команд печати документа.
Для реализации счетов на английском языке в 1С:БП 3.0 наиболее сбалансированным решением является сочетание Внешней печатной формы и Дополнительных реквизитов. Это обеспечивает:
При реализации не забудьте уделить внимание мелочам: валютным кодам (USD, EUR вместо руб.), условиям поставки (Инкотермс) и корректному выводу подписей ответственных лиц на английском языке.