Квадратные, круглые и фигурные скобки в 1С без переключения раскладки

· 9 мин

Содержание

Круглые скобки в 1С ставятся сочетаниями Shift+9 и Shift+0 в любой раскладке. Квадратные [ ] и фигурные { } есть только в английской раскладке: это клавиши с буквами Х и Ъ, для фигурных — с Shift. Без переключения раскладки их вводят Alt-кодами: Alt+91 и Alt+93 на цифровом блоке.

Частое заблуждение — что в Конфигураторе есть «своя» клавиша для квадратных скобок в русской раскладке. В стандартной платформе 8.3 такой клавиши нет: ввод символов идёт через раскладку Windows. Зато есть шаблоны текста и внешние средства, которые решают задачу за один раз и навсегда.

Где на клавиатуре какие скобки: обычный ввод

Платформа 1С не меняет поведение клавиатуры. И в пользовательском режиме (поле формы, комментарий документа, табличный документ), и в Конфигураторе символы приходят из раскладки, которая сейчас включена в Windows.

СимволРусская раскладкаАнглийская раскладка
( и )Shift+9, Shift+0Shift+9, Shift+0
[ и ]нетклавиши Х и Ъ
{ и }нетShift+Х, Shift+Ъ
< и >нетShift+Б, Shift+Ю
| (вертикальная черта)нетShift+\

Отсюда типичная картина: программист набирает Массив[0], а в модуле появляется Массивх0ъ. Раскладка была русская, клавиша Х отдала букву.

Самый простой способ — переключиться на английский (Alt+Shift или Win+Пробел), поставить скобку и вернуться. Он работает везде, но при плотной работе с кодом раздражает: в коде на встроенном языке идентификаторы русские, и переключаться приходится на каждую скобку.

💡 Круглые скобки переключения не требуют. Если в модуле «не ставится» именно круглая скобка — причина не в раскладке, смотрите раздел про проблемы ниже.

Alt-коды и цифровой блок: скобки без смены раскладки

Windows умеет вводить символ по его коду. Зажмите левый Alt, наберите код на цифровом блоке справа, отпустите Alt. Для скобок коды лежат в базовой части таблицы ASCII, поэтому они одинаково работают и в русской, и в английской раскладке.

СимволAlt-код
(Alt+40
)Alt+41
<Alt+60
>Alt+62
[Alt+91
]Alt+93
{Alt+123
|Alt+124
}Alt+125
« и »Alt+0171, Alt+0187

Условия, без которых Alt-коды не срабатывают:

  • 🔢 включён NumLock — иначе цифровой блок работает как стрелки;
  • ⌨️ цифры набираются именно на цифровом блоке, а не в верхнем ряду;
  • 💻 на ноутбуке без цифрового блока нужен встроенный блок через Fn (если производитель его предусмотрел) или внешняя клавиатура.

Ёлочки «» пригодятся в пользовательском режиме: в наименованиях контрагентов, в комментариях, в текстах писем. В коде модулей строки пишутся в обычных двойных кавычках ".

Если Alt-коды неудобны, есть стандартная «Таблица символов» Windows: Win+R → charmap → выбрать символ → «Копировать» → вставить в 1С через Ctrl+V. Это вариант на один раз, для постоянной работы он медленный.

Парные скобки в Конфигураторе: автоподстановка и шаблоны текста

Автоматическая закрывающая скобка

В новых версиях платформы 8.3 в параметрах Конфигуратора появились настройки помощи при вводе текста модуля. Откройте Сервис → Параметры, вкладку Модули, и просмотрите флажки, связанные с автоматической вставкой и подсветкой парных конструкций. Набор флажков зависит от версии платформы: в более старых сборках автозакрытия скобок нет вовсе.

Когда автозакрытие включено, после ввода ( курсор встаёт между скобками. Закрывающую скобку при этом набирать не нужно — иначе получится лишняя.

Шаблоны текста: квадратные скобки по короткому слову

Надёжный приём, который работает на любой платформе 8.3, — шаблоны текста Конфигуратора. Шаблон разворачивается по слову-сокращению, а маркер <?> в его тексте задаёт, где окажется курсор.

  1. Откройте Сервис → Шаблоны текста.
  2. В дереве шаблонов создайте свою группу, например «Мои», чтобы не путать с типовыми.
  3. Добавьте шаблон: имя «Квадратные скобки», строка автозамены кв.
  4. В текст шаблона впишите [<?>] (набрать один раз можно через Alt-коды).
  5. Сохраните. Шаблоны хранятся в файле .st, его можно перенести на другой компьютер.

Теперь в модуле наберите кв и нажмите Ctrl+Q — появится [], курсор встанет внутрь. Если включена автоматическая замена при вводе, шаблон подхватится и без Ctrl+Q.

По той же схеме полезно завести шаблоны:

  • фг → {<?>} для фигурных скобок в запросах СКД;
  • вч → |<?> для вертикальной черты в многострочных строках;
  • зн → Структура["<?>"] для обращения к структуре по ключу.

💡 Короткие слова выбирайте так, чтобы они не встречались как начало идентификаторов. кв безопасно, а ст будет мешать при наборе слова «Структура».

EDT

В 1С:Enterprise Development Tools редактор построен на Eclipse. Автозакрытие скобок и кавычек там включено по умолчанию, настраивается в Окно → Параметры (Window → Preferences) в ветке редактора встроенного языка. Шаблоны тоже есть, они работают через Ctrl+Пробел.

Квадратные и фигурные скобки в запросах и выражениях

Квадратные скобки в 1С встречаются чаще, чем кажется, поэтому вопрос «как их ввести» всплывает именно у тех, кто пишет код.

Во встроенном языке квадратные скобки — оператор обращения по индексу или имени:

Первый = Массив[0];
Сумма = СтруктураДанных["Сумма"];
Объект["Комментарий"] = "Исправлено";
Значение = Выборка["Количество"];

Индексы массивов начинаются с нуля: у массива из трёх элементов последний — Массив[2].

В тексте запроса круглые скобки задают параметры виртуальных таблиц и вложенные запросы:

Запрос.Текст =
"ВЫБРАТЬ
|	Остатки.Номенклатура,
|	Остатки.КоличествоОстаток
|ИЗ
|	РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, ) КАК Остатки";

Круглые скобки в условиях запроса задают порядок вычисления. Оператор И выполняется раньше ИЛИ, поэтому условие без скобок часто отбирает лишнее:

// Отберёт все проданные услуги, даже не за этот склад
ГДЕ Продажи.Склад = &Склад И Продажи.Номенклатура.ВидНоменклатуры = &Вид1 ИЛИ Продажи.Номенклатура.Услуга

// Правильно: сначала ИЛИ, потом И
ГДЕ Продажи.Склад = &Склад И (Продажи.Номенклатура.ВидНоменклатуры = &Вид1 ИЛИ Продажи.Номенклатура.Услуга)

Та же логика действует во встроенном языке: в выражении Если А И Б ИЛИ В Тогда лучше явно поставить скобки, даже если порядок совпадает с задуманным. Код читается быстрее, а при правке условие не сломается.

Вертикальная черта | в начале каждой строки продолжает многострочный строковый литерал. Её тоже нет в русской раскладке — выручает Alt+124 или шаблон.

Фигурные скобки относятся к языку запросов системы компоновки данных. В запросе набора данных СКД ими обозначают необязательные части, которые компоновщик включает только при использовании соответствующих полей или отборов:

ВЫБРАТЬ
	Продажи.Номенклатура,
	Продажи.СуммаОборот
ИЗ
	РегистрНакопления.Продажи.Обороты({&НачалоПериода}, {&КонецПериода}, , ) КАК Продажи
{ГДЕ
	Продажи.Номенклатура.*}

В выражениях СКД (вычисляемые поля, условное оформление, пользовательские поля) квадратные скобки обрамляют путь к полю, если в нём есть пробелы, точки в нестандартном месте или имя совпадает с ключевым словом. Конструктор выражений подставляет такие скобки сам при выборе поля из дерева — проще выбирать поле мышью, чем набирать.

⚠️ Пара скобок без закрывающей ломает компиляцию модуля и запроса. Если после правки Конфигуратор выдаёт синтаксическую ошибку в строке запроса, первым делом посчитайте открывающие и закрывающие скобки: проверка синтаксиса (Ctrl+F7) обычно показывает строку, где парность нарушилась.

Горячие клавиши и скрипты для тех, кто пишет код каждый день

Шаблоны требуют двух действий. Если квадратные скобки нужны десятки раз в час, удобнее переназначить клавиши так, чтобы скобка ставилась в русской раскладке одним сочетанием.

Скрипт AutoHotkey только для окна 1С

AutoHotkey — бесплатная программа для переназначения клавиш в Windows. Скрипт ниже (синтаксис версии 2) ставит [ и ] по правому Alt с клавишами Х и Ъ, а | — по правому Alt с \. Срабатывает только в окнах процесса 1cv8.exe — это Конфигуратор и толстый клиент.

#Requires AutoHotkey v2.0

#HotIf WinActive("ahk_exe 1cv8.exe")
>!vkDB::SendText "["
>!vkDD::SendText "]"
>!+vkDB::SendText "{"
>!+vkDD::SendText "}"
>!vkDC::SendText "|"
#HotIf

Клавиши указаны виртуальными кодами (vkDB — клавиша Х, vkDD — Ъ, vkDC — \), поэтому скрипт не зависит от текущей раскладки. Для тонкого клиента добавьте условие с 1cv8c.exe.

💡 Положите ярлык скрипта в папку автозагрузки (Win+R → shell:startup), чтобы он запускался вместе с Windows.

Раскладка с символами на правом Alt

Второй путь — поставить раскладку, где скобки уже вынесены на правый Alt. Популярный вариант — типографская раскладка Ильи Бирмана: русские буквы остаются на месте, а [ ] и другие символы добавляются на правый Alt. Плюс — работает во всех программах, а не только в 1С. Минус — нужно ставить на каждый компьютер и сервер терминалов.

Свою раскладку можно собрать бесплатной утилитой Microsoft Keyboard Layout Creator: взять стандартную русскую и добавить скобки на сочетания с правым Alt.

СпособКогда подходитОграничения
Переключение раскладкиизредка, в любом окнелишние нажатия
Alt-кодыбез установки программнужен цифровой блок и NumLock
Шаблоны текстатолько Конфигуратордва действия на скобку
AutoHotkeyпостоянная работа с кодомнужна установка, на сервере может быть запрещено
Своя раскладкавсе программыставить на каждое рабочее место

Скобки не печатаются или печатается не то: разбор причин

Диагностика: выберите симптом

Ещё несколько ситуаций, которые встречаются реже:

  • 🐧 Linux. Alt-коды Windows там не работают. В большинстве окружений на базе GTK символ вводится как Ctrl+Shift+U, затем шестнадцатеричный код и Enter: 5b для [, 5d для ]. Надёжнее держать вторую раскладку.
  • 🔒 Залипание клавиш. Если Shift пять раз нажат подряд, Windows предлагает включить залипание. После этого Shift+9 ведёт себя странно. Отключается в параметрах специальных возможностей.
  • 🖥 Сервер терминалов. Раскладка в сеансе может отличаться от локальной. Языковую панель сеанса проверяйте отдельно, а скрипт AutoHotkey запускайте внутри сеанса, а не на своём компьютере.

Частые вопросы

Работают ли Alt-коды в веб-клиенте 1С?
Да, если браузер запущен в Windows: символ вводит система, а не 1С. Шаблоны Конфигуратора в веб-клиенте недоступны — это инструмент разработчика.
Как поставить квадратные скобки в табличном документе или в комментарии?
Так же, как в любом поле: английская раскладка или Alt+91 и Alt+93. Особых настроек табличный документ не требует.
Можно ли поставить скобку в наименование номенклатуры или контрагента?
Можно, наименование — обычная строка. Ограничение бывает только у полей с маской ввода, например у ИНН или телефона.
Почему в коде видны скобки, а при печати формы — нет?
Если скобки стоят внутри текста макета в параметре вида [Имя], печатная форма воспринимает их как подстановку параметра. Чтобы вывести скобку буквально, задавайте её в значении параметра, а не в шаблоне ячейки.
Как быстро найти пару к скобке в длинном выражении?
Поставьте курсор рядом со скобкой: Конфигуратор подсвечивает парную. Если подсветки нет, проверьте синтаксис модуля — ошибка покажет строку с нарушенной парностью.