Цвета в модуле 1С: что означает подсветка кода и как её поменять
Содержание
Подсветка синтаксиса в 1С — это раскраска текста модуля по типам лексем: ключевые слова одним цветом, строки другим, комментарии третьим. Редактор не выполняет код и не «понимает» его смысл, он разбирает текст на слова и красит каждое по своему классу. Поэтому цвет — это быстрая подсказка о том, как платформа прочитала написанное. Не гарантия, что код верный.
Частое заблуждение: «если всё покрасилось, ошибок нет». Нет. Раскраска не заменяет проверку синтаксиса, а часть ошибок цвет вообще не показывает. Зато неправильный цвет в нужном месте выдаёт опечатку раньше, чем вы запустите проверку.
Зачем в редакторе модуля цветовое выделение
Код на встроенном языке читают намного чаще, чем пишут. Когда процедура на двести строк, цвет помогает глазу цепляться за структуру: где начинается условие, где закончилась строка, где закомментирован кусок старой логики.
Что даёт подсветка на практике:
- 👀 Быстрое чтение. Границы блоков
Если … КонецЕсли,Для … КонецЦиклавидны без построчного разбора. - 🔎 Ловля опечаток. Написали
КонецЕслис ошибкой в букве — слово не окрасится как ключевое. - 💬 Видно комментарии. Закомментированный блок сразу отличается от рабочего кода, и его не спутаешь с действующим.
- 🧵 Видны незакрытые кавычки. Если забыли закрыть строку, окраска «строки» уезжает на остаток строки.
- 📋 Меньше усталости. Однородный чёрный текст утомляет сильнее, чем текст с понятной палитрой.
Подсветка работает и в Конфигураторе, и в окнах, где вы редактируете текст модуля у объектов конфигурации. Тот же принцип применяется в консоли запросов и встроенном тексте запроса: язык запросов окрашивается по своим правилам.
Если вы только знакомитесь с разработкой в 1С, начните с привычки читать цвета: через неделю вы заметите ошибку в слове ещё до того, как нажмёте проверку.
Что какой цвет означает: классы элементов
Редактор делит текст модуля на классы. У каждого класса свой цвет и, при желании, свой стиль начертания. Точные оттенки по умолчанию зависят от версии платформы и от темы, поэтому ориентируйтесь на логику классов, а не на конкретный оттенок.
| Класс | Что это | Пример |
|---|---|---|
| Ключевое слово | Слова языка, управляющие конструкции | Процедура, Если, Возврат, Новый |
| Строковый литерал | Текст в двойных кавычках | "Документ проведён" |
| Комментарий | Всё после // до конца строки | // проверка остатка |
| Число и дата | Числовые и временные литералы | 100, '20260101' |
| Директива и инструкция препроцессора | Компиляционные директивы, условия сборки | &НаСервере, #Если Клиент Тогда |
| Идентификатор | Имена переменных и процедур | ТекущаяСтрока |
| Встроенные функции и объекты | Методы и типы платформы | Сообщить, Строка(…) |
Для языка запросов набор другой: ключевые слова ВЫБРАТЬ, ИЗ, ГДЕ, СГРУППИРОВАТЬ ПО выделяются как служебные, а параметры, начинающиеся с &, получают отдельный вид.
Отдельные случаи, которые путают
Строка с переносом. Многострочный текст в кавычках с вертикальной чертой | в начале каждой следующей строки красится целиком как строка. Если вы убрали одну черту, продолжение строки внезапно становится «кодом», и цвет сразу это показывает.
Директивы компиляции. Строки с &НаКлиенте, &НаСервере красятся как директивы. Если вместо директивы цвет выглядит как у обычного идентификатора, проверьте, нет ли лишнего пробела или опечатки в слове.
Комментарий внутри строки. Двойной слеш внутри кавычек комментарием не является. Текст "http://адрес" останется строкой, и это нормально, цвет здесь работает правильно.
Как цвет подсказывает ошибки в коде
Подсветка ловит класс ошибок, которые связаны с лексикой, то есть с написанием слов и знаков. Это не компилятор, но подсказка полезная.
Что цвет показывает хорошо
- Опечатка в ключевом слове.
КонецЦыклавместоКонецЦиклаостаётся обычным идентификатором. Слово не окрашено как ключевое — смотрите на него внимательнее. - Незакрытая кавычка. После забытой закрывающей кавычки остаток строки красится как текст, хотя вы рассчитывали, что дальше идёт код.
- Случайно закомментированный фрагмент. Лишний
//перед операцией, и вся строка цвета комментария, хотя вы ждали рабочий код. - Лишний символ в директиве. Директива компиляции теряет «директивный» цвет.
Что цвет не показывает
- ❌ Обращение к несуществующей переменной или процедуре. Для редактора это просто идентификатор.
- ❌ Неверное количество параметров при вызове.
- ❌ Логические ошибки: неправильное условие, пропущенный
Возврат. - ❌ Ошибки, которые видны только при выполнении, например обращение к полю пустой ссылки.
Для первых двух пунктов служит синтаксический контроль модуля. В Конфигураторе это команда проверки синтаксиса модуля в меню Конфигурация либо сочетание клавиш, указанное в меню рядом с командой. Результат выводится в окне сообщений, где двойной щелчок переводит на строку с ошибкой.
Раскраска и проверка — разные механизмы. Не считайте код рабочим только потому, что он красиво подсвечен. Прогоните проверку синтаксиса и запустите сам сценарий в тестовой базе.
//, но чаще это текст, в котором // стоит перед нужной строкой. Найдите его и уберите. Если нужно временно отключить сразу блок, выделите строки и воспользуйтесь командой «Закомментировать» из контекстного меню или панели редактора модуля, потом так же раскомментируйте.e или o внутри русского слова выглядит так же, но редактор не видит в нём ключевое слово. Перепечатайте слово целиком.Настройка цветовой схемы редактора
Настройки внешнего вида текста модуля находятся в параметрах самого Конфигуратора, а не в конфигурации. Поэтому изменения касаются только вашего рабочего места и не попадают в хранилище или в базу.
Где искать
Откройте Конфигуратор, в главном меню выберите пункт Сервис, затем Параметры. В окне параметров есть вкладки, относящиеся к редактору текста: там задаются шрифты и цвета для различных типов элементов. Названия вкладок могут чуть отличаться между релизами платформы, но логика одна: выбираете класс элемента из списка и задаёте для него цвет и начертание.
Порядок действий:
- Откройте
Сервис → Параметры. - Перейдите на вкладку со шрифтами и цветами текстового редактора.
- В списке элементов выберите нужный класс, например комментарий или строку.
- Задайте цвет текста и, если нужно, цвет фона, а также начертание: обычное, жирное, курсив.
- Закройте окно кнопкой подтверждения и посмотрите результат в открытом модуле.
Изменения применяются к новым и уже открытым окнам редактора. Если какое-то окно осталось со старым видом, закройте и откройте его заново.
Что менять, а что лучше оставить
Не перекрашивайте всё подряд. Достаточно скорректировать то, что мешает:
- 🌑 Тёмный фон. Если работаете в тёмной теме, поменяйте фон редактора и подберите светлые цвета для класса «идентификатор». Тёмный фон при стандартной палитре даёт плохо читаемые сочетания.
- 💬 Комментарии. Сделайте их спокойнее, чтобы не рябили, но не настолько бледными, чтобы терялись.
- 🔑 Ключевые слова. Оставьте контрастными: именно по ним строится чтение структуры.
- 🔤 Шрифт. Выбирайте моноширинный: столбцы выравниваются, отступы читаются честно. Размер подбирайте так, чтобы строка на 100 символов помещалась на экран.
Запишите свои значения в заметку. Если переустановите платформу или перейдёте на другой компьютер, настройки Конфигуратора придётся задавать заново.
Интерфейс разработчика в EDT
Если вы работаете в 1C:Enterprise Development Tools, подсветка настраивается там же, где настройки остальных редакторов среды: в окне параметров цветов и шрифтов самой среды разработки. Принцип прежний: класс элемента, цвет, начертание. Точные пункты зависят от версии EDT, поэтому проверяйте их в своём окне параметров.
Как подсветка помогает работать быстрее
Эффект от цвета не волшебный, но он накапливается. Он заметен там, где вы читаете чужой код или возвращаетесь к своему через месяц.
Три сценария, где подсветка экономит время:
- Разбор чужого модуля. Первое, что вы видите, — структура: блоки, комментарии, строки. До чтения слов уже понятно, где основной алгоритм, а где обёртка.
- Правка запроса внутри строки. Запрос в кавычках с переносами красится как строка, поэтому сложнее заметить ошибку в тексте. Для такой работы пользуйтесь конструктором запроса или консолью запросов, где язык запросов раскрашен по-своему.
- Код ревью. Закомментированные «хвосты» сразу видны. Их стоит убирать до передачи доработки: мёртвый код в модуле сбивает следующего человека.
Сколько времени это экономит, точно не измерить. Практики сходятся в одном: если цвет настроен под вас, меньше устают глаза при длинной работе и реже пропускаются опечатки в служебных словах. Цифр «ускорение на столько-то процентов» без измерений приводить не будем.
Подсветка не тормозит работу
Раскраска строится при отображении текста и не влияет на скорость выполнения кода: на запущенную конфигурацию она не влияет вообще. В очень большом модуле на тысячи строк прокрутка может чуть притормаживать, но причина обычно в размере модуля, а не в раскраске. Если модуль разросся, разделите его на несколько общих модулей по смыслу.
Подсветка в других местах платформы
Цвет встречается не только в модулях.
| Где | Что подсвечивается |
|---|---|
| Консоль запросов (внешняя обработка) | Язык запросов, параметры, комментарии |
| Конструктор запроса, закладка с текстом запроса | Ключевые слова языка запросов |
| Окно сообщений при проверке | Строки с ошибками обозначены значком и ссылкой |
| Отладчик | Текущая строка выполнения и точки останова выделяются цветом фона |
Подсветка в режиме предприятия, если разработчик подключил консоль кода из внешней обработки, зависит от того, как написана сама обработка, и от настроек этой обработки. Универсальных правил здесь нет.
Разбор на живом примере
Возьмите короткую процедуру и пройдитесь по ней глазами, как это делает редактор.
&НаСервере
Процедура ПроверитьОстаток(Номенклатура)
// берём остаток из регистра
Если Номенклатура.Пустая() Тогда
Возврат;
КонецЕсли;
Текст = "Остаток не найден: " + Строка(Номенклатура);
Сообщить(Текст);
КонецПроцедуры
Что вы должны увидеть:
- Директива
&НаСервереокрашена отдельно от остального кода. Процедура,Если,Тогда,Возврат,КонецЕсли,КонецПроцедуры— одним цветом ключевых слов.- Строка с
//целиком цвета комментария, включая русский текст. - Литерал в кавычках после
Текст =— цветом строки, аСтрока(Номенклатура)— уже вне кавычек, то есть как вызов функции.
Теперь уберите закрывающую кавычку после двоеточия. Всё, что идёт дальше по строке, включая + Строка(Номенклатура);, станет цветом строки. Это и есть тот самый сигнал: цвет сдвинулся не там, где вы ожидали.
Второй опыт: допишите лишний пробел в КонецЕсли или замените русскую «е» на латинскую. Слово потеряет цвет ключевого, и вы увидите опечатку без запуска проверки.
Привычки, которые делают подсветку полезной
Сама по себе палитра работает слабо, если не поддерживать порядок в тексте. Несколько приёмов, которые усиливают эффект:
- ✂️ Короткие процедуры. Чем меньше экран кода, тем лучше цвет показывает структуру. Длинная «простыня» сливается в пёстрый фон.
- 🧹 Не оставляйте закомментированный старый код. Он занимает место цветом комментария и мешает видеть живую логику. Для истории есть хранилище конфигурации.
- 🏷️ Единый стиль имён. Идентификаторы, написанные по одной схеме, читаются спокойнее на фоне ключевых слов.
- 🔁 Проверка синтаксиса перед сохранением в хранилище. Раскраску дополняет формальная проверка модуля, а не заменяет её.
- 🖥️ Одинаковые настройки на всех рабочих местах команды. Скриншоты и разбор кода вместе проще, когда все видят один и тот же набор цветов.
Частые вопросы
Можно ли отключить подсветку совсем?
Подсветка слетела, весь модуль чёрный. Что делать?
Настройки цвета сохраняются в конфигурации?
Почему в одном модуле цвета правильные, а в другом нет?
//. Редактор красит текст последовательно, и одна ошибка сдвигает окраску всего оставшегося.