Идиомы
Идиомы — это общепринятые способы написания кода, которые поддерживают принципы языка и являются его лучшими практиками. Они включают примеры решения распространенных задач, низкоуровневые шаблоны проектирования, записи алгоритмов и структуры данных. Использование идиом позволяет избежать распространенных ошибок и улучшить понимание кода.
В данной статье представлены наиболее часто используемые в «1С:Шине» идиомы.
Общие действия
Указание значений по умолчанию для параметров метода
При создании метода вы можете указать для его параметров значения по умолчанию. При вызове метода такие параметры можно пропустить.
метод РассчитатьЦенуСоСкидкой(Цена: Число, Скидка: Число = 10): Число
возврат Цена - Цена * Скидка / 100
;
метод РассчитатьСтоимость()
// Цена рассчитывается со скидкой по умолчанию — 10 %
знч ФинальнаяЦена = РассчитатьЦенуСоСкидкой(Цена = 1000) // 900
// ...
;
Вызов цепочки методов
Вы можете использовать цепочки методов, чтобы упростить чтение кода. Каждый метод в цепочке возвращает текущий объект, который затем используется для вызова следующего метода. Это позволяет вызывать несколько методов последовательно, один за другим, как если бы это был один оператор.
метод НайтиФайлы(Каталог: Строка): ЧитаемыйМассив<Файл>
знч НастройкиПоиска = новый НастройкиПоискаФайлов()
.ИсключитьКаталоги(Истина)
.ИсключитьСсылки(Истина)
.ИмяСодержит("xml")
возврат Файлы.Найти(Каталог, НастройкиПоиска)
;
Интерполяция строк
Чтобы вставить значение переменной в строку, используйте следующий синтаксис:
%имя-переменнойили$имя-переменной,%{выражение}или${выражение},${выражение|формат}.
знч НомерЗаказа = 753
знч Дата = Дата{2025-06-25}
знч Количество = 10
знч Цена = 5000
знч Сообщение = "Заказ №$НомерЗаказа от ${Дата|дд ММММ гггг} г. на сумму ${Количество * Цена} руб."
// Результат: "Заказ №753 от 25 июня 2025 г. на сумму 50 000 руб."
Обработка исключений
Для обработки исключений используйте конструкцию попытка-поймать.
Ниже показан пример обработки исключения при работе с закрываемыми ресурсами. Поток записи в файл автоматически закрывается в блоке попытка, что позволяет предотвратить утечку ресурсов.
метод ЗаписатьВФайл(Содержимое: Строка)
попытка
пер Файл = Файлы.Создать("C:\\Temp\\test.txt")
исп ПотокЗаписи = Файл.ОткрытьПотокЗаписи()
ПотокЗаписи.Записать(Содержимое)
поймать ИсключениеЗаписи: Исключение
// Получение информации об ошибке
знч Ошибка = ИсключениеЗаписи.Описание
// Обработка исключения...
// Здесь поток записи уже закрыт
;
;