Русский и английский синтаксис: два расчёта одного заказа

Учебные задачи

Две собственные функции выполняют одинаковое правило диапазона количества и возвращают одинаковые суммы. Одна написана русскими ключевыми словами, другая — английскими.

Где и как запускать

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

Подготовка

  1. В отдельной учебной базе 8.5.1.1343 создайте общий модуль УчебныйЯзык: Сервер=Истина, Глобальный=Ложь, ВызовСервера=Ложь, Привилегированный=Ложь. Клиентские и внешнее соединение отключены; ПовторноеИспользованиеВозвращаемыхЗначений=НеИспользовать.

  2. Вставьте весь приведённый текст в этот общий модуль. ВыполнитьПример — экспортная точка входа; остальные процедуры и функции располагаются рядом, а не внутри неё.

  3. В своей внешней учебной обработке создайте управляемую форму, команду Выполнить и кнопку. Клиентский обработчик Выполнить(Команда) вызывает свою процедуру ВыполнитьНаСервере(); она имеет директиву &НаСервереБезКонтекста и одну строку УчебныйЯзык.ВыполнитьПример();. Это серверный вызов общего модуля, а не разрешение клиенту прямо обращаться к серверной библиотеке.

  4. Все товары, количества и строки придуманы в этом модуле. Запись документов, подключение к чужой базе, файлы, сеть и печать не используются. В рабочие общие модули текст не вставляйте.

  5. 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

Разбор по шагам

  1. Собственный массив содержит границы и обычное количество: 0,1,3,10,11. Цена в обеих функциях 250.

  2. Русская функция использует Функция/Если/Или/Тогда/Возврат/КонецЕсли/КонецФункции. Английская соответствует Function/If/Or/Then/Return/EndIf/EndFunction.

  3. При выходе за 1–10 обе функции возвращают учебный код -1. Это заранее выбранный контракт исключительно этой демонстрации, не универсальное правило обработки ошибок.

  4. В диапазоне обе функции возвращают произведение. Сравнить результаты для всех пяти собственных чисел.

  5. Английское имя TrainingAmount придумано автором, а не автоматически получено из УчебнаяСуммаРус. Это две функции с разными пользовательскими именами.

  6. Русские и английские ключевые слова можно смешивать, но для рабочего модуля обычно выбирают единый понятный стиль. Строковые данные, имена реквизитов метаданных и внешние JSON-ключи сами не переводятся.

Как проверить результат

  1. Восемь проверок Истина: пять совпадений, сумма 750 для трёх книг и два кода -1 вне диапазона.

  2. Смените цену только в английской функции на 300: проверки совпадения для 1,3,10 станут Ложь. Разница вызвана разными правилами, а не разными языками ключевых слов.

Ожидаемый результат

Двуязычность изучена на двух полностью определённых алгоритмах с совпадающими исходными данными и проверяемыми границами.

На что обратить внимание

  1. Переводятся системные имена, у которых документирован английский вариант. Пользовательскому имени функции второй вариант платформа сама не добавляет.

  2. Общие типы значений и доступность API не меняются от выбора русских или английских ключевых слов.

  3. Функции принимают только собственные числовые значения этого урока. Отрицательный код здесь намеренный учебный выбор; для публичного расчёта с неизвестным вводом лучше явная типовая защита и согласованный контракт ошибки.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.