Две собственные функции выполняют одинаковое правило диапазона количества и возвращают одинаковые суммы. Одна написана русскими ключевыми словами, другая — английскими.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте общий модуль УчебныйЯзык: Сервер=Истина, Глобальный=Ложь, ВызовСервера=Ложь, Привилегированный=Ложь. Клиентские и внешнее соединение отключены; ПовторноеИспользованиеВозвращаемыхЗначений=НеИспользовать.
Вставьте весь приведённый текст в этот общий модуль. ВыполнитьПример — экспортная точка входа; остальные процедуры и функции располагаются рядом, а не внутри неё.
В своей внешней учебной обработке создайте управляемую форму, команду Выполнить и кнопку. Клиентский обработчик Выполнить(Команда) вызывает свою процедуру ВыполнитьНаСервере(); она имеет директиву &НаСервереБезКонтекста и одну строку УчебныйЯзык.ВыполнитьПример();. Это серверный вызов общего модуля, а не разрешение клиенту прямо обращаться к серверной библиотеке.
Все товары, количества и строки придуманы в этом модуле. Запись документов, подключение к чужой базе, файлы, сеть и печать не используются. В рабочие общие модули текст не вставляйте.
HTML только показывает BSL. Код в 1С не запускался; перечисленные результаты и отрицательные опыты проверяйте самостоятельно в собственном стенде.
Процедура ВыполнитьПример() Экспорт
Количества = Новый Массив;
Количества.Добавить(0);
Количества.Добавить(1);
Количества.Добавить(3);
Количества.Добавить(10);
Количества.Добавить(11);
Для Каждого Количество Из Количества Цикл
Сообщить(УчебнаяСуммаРус(Количество) = TrainingAmount(Количество));
КонецЦикла;
Сообщить(TrainingAmount(3) = 750);
Сообщить(УчебнаяСуммаРус(0) = -1);
Сообщить(TrainingAmount(11) = -1);
КонецПроцедуры
Функция УчебнаяСуммаРус(Знач Количество)
Если Количество < 1 Или Количество > 10 Тогда
Возврат -1;
КонецЕсли;
Возврат Количество * 250;
КонецФункции
Function TrainingAmount(Val Quantity)
If Quantity < 1 Or Quantity > 10 Then
Return -1;
EndIf;
Return Quantity * 250;
EndFunctionРазбор по шагам
Собственный массив содержит границы и обычное количество: 0,1,3,10,11. Цена в обеих функциях 250.
Русская функция использует Функция/Если/Или/Тогда/Возврат/КонецЕсли/КонецФункции. Английская соответствует Function/If/Or/Then/Return/EndIf/EndFunction.
При выходе за 1–10 обе функции возвращают учебный код -1. Это заранее выбранный контракт исключительно этой демонстрации, не универсальное правило обработки ошибок.
В диапазоне обе функции возвращают произведение. Сравнить результаты для всех пяти собственных чисел.
Английское имя TrainingAmount придумано автором, а не автоматически получено из УчебнаяСуммаРус. Это две функции с разными пользовательскими именами.
Русские и английские ключевые слова можно смешивать, но для рабочего модуля обычно выбирают единый понятный стиль. Строковые данные, имена реквизитов метаданных и внешние JSON-ключи сами не переводятся.
Как проверить результат
Восемь проверок Истина: пять совпадений, сумма 750 для трёх книг и два кода -1 вне диапазона.
Смените цену только в английской функции на 300: проверки совпадения для 1,3,10 станут Ложь. Разница вызвана разными правилами, а не разными языками ключевых слов.
Ожидаемый результат
Двуязычность изучена на двух полностью определённых алгоритмах с совпадающими исходными данными и проверяемыми границами.
На что обратить внимание
Переводятся системные имена, у которых документирован английский вариант. Пользовательскому имени функции второй вариант платформа сама не добавляет.
Общие типы значений и доступность API не меняются от выбора русских или английских ключевых слов.
Функции принимают только собственные числовые значения этого урока. Отрицательный код здесь намеренный учебный выбор; для публичного расчёта с неизвестным вводом лучше явная типовая защита и согласованный контракт ошибки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.