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