Квадратные, круглые и фигурные скобки в 1С без переключения раскладки
Содержание
Круглые скобки в 1С ставятся сочетаниями Shift+9 и Shift+0 в любой раскладке. Квадратные [ ] и фигурные { } есть только в английской раскладке: это клавиши с буквами Х и Ъ, для фигурных — с Shift. Без переключения раскладки их вводят Alt-кодами: Alt+91 и Alt+93 на цифровом блоке.
Частое заблуждение — что в Конфигураторе есть «своя» клавиша для квадратных скобок в русской раскладке. В стандартной платформе 8.3 такой клавиши нет: ввод символов идёт через раскладку Windows. Зато есть шаблоны текста и внешние средства, которые решают задачу за один раз и навсегда.
Где на клавиатуре какие скобки: обычный ввод
Платформа 1С не меняет поведение клавиатуры. И в пользовательском режиме (поле формы, комментарий документа, табличный документ), и в Конфигураторе символы приходят из раскладки, которая сейчас включена в Windows.
| Символ | Русская раскладка | Английская раскладка |
|---|---|---|
( и ) | Shift+9, Shift+0 | Shift+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, — шаблоны текста Конфигуратора. Шаблон разворачивается по слову-сокращению, а маркер <?> в его тексте задаёт, где окажется курсор.
- Откройте
Сервис → Шаблоны текста. - В дереве шаблонов создайте свою группу, например «Мои», чтобы не путать с типовыми.
- Добавьте шаблон: имя «Квадратные скобки», строка автозамены
кв. - В текст шаблона впишите
[<?>](набрать один раз можно через Alt-коды). - Сохраните. Шаблоны хранятся в файле
.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С?
Как поставить квадратные скобки в табличном документе или в комментарии?
Alt+91 и Alt+93. Особых настроек табличный документ не требует.Можно ли поставить скобку в наименование номенклатуры или контрагента?
Почему в коде видны скобки, а при печати формы — нет?
[Имя], печатная форма воспринимает их как подстановку параметра. Чтобы вывести скобку буквально, задавайте её в значении параметра, а не в шаблоне ячейки.