Цвета в модуле 1С: что означает подсветка кода и как её поменять

· 9 мин

Содержание

Подсветка синтаксиса в 1С — это раскраска текста модуля по типам лексем: ключевые слова одним цветом, строки другим, комментарии третьим. Редактор не выполняет код и не «понимает» его смысл, он разбирает текст на слова и красит каждое по своему классу. Поэтому цвет — это быстрая подсказка о том, как платформа прочитала написанное. Не гарантия, что код верный.

Частое заблуждение: «если всё покрасилось, ошибок нет». Нет. Раскраска не заменяет проверку синтаксиса, а часть ошибок цвет вообще не показывает. Зато неправильный цвет в нужном месте выдаёт опечатку раньше, чем вы запустите проверку.

Зачем в редакторе модуля цветовое выделение

Код на встроенном языке читают намного чаще, чем пишут. Когда процедура на двести строк, цвет помогает глазу цепляться за структуру: где начинается условие, где закончилась строка, где закомментирован кусок старой логики.

Что даёт подсветка на практике:

  • 👀 Быстрое чтение. Границы блоков Если … КонецЕсли, Для … КонецЦикла видны без построчного разбора.
  • 🔎 Ловля опечаток. Написали КонецЕсли с ошибкой в букве — слово не окрасится как ключевое.
  • 💬 Видно комментарии. Закомментированный блок сразу отличается от рабочего кода, и его не спутаешь с действующим.
  • 🧵 Видны незакрытые кавычки. Если забыли закрыть строку, окраска «строки» уезжает на остаток строки.
  • 📋 Меньше усталости. Однородный чёрный текст утомляет сильнее, чем текст с понятной палитрой.

Подсветка работает и в Конфигураторе, и в окнах, где вы редактируете текст модуля у объектов конфигурации. Тот же принцип применяется в консоли запросов и встроенном тексте запроса: язык запросов окрашивается по своим правилам.

Если вы только знакомитесь с разработкой в 1С, начните с привычки читать цвета: через неделю вы заметите ошибку в слове ещё до того, как нажмёте проверку.

Что какой цвет означает: классы элементов

Редактор делит текст модуля на классы. У каждого класса свой цвет и, при желании, свой стиль начертания. Точные оттенки по умолчанию зависят от версии платформы и от темы, поэтому ориентируйтесь на логику классов, а не на конкретный оттенок.

КлассЧто этоПример
Ключевое словоСлова языка, управляющие конструкцииПроцедура, Если, Возврат, Новый
Строковый литералТекст в двойных кавычках"Документ проведён"
КомментарийВсё после // до конца строки// проверка остатка
Число и датаЧисловые и временные литералы100, '20260101'
Директива и инструкция препроцессораКомпиляционные директивы, условия сборки&НаСервере, #Если Клиент Тогда
ИдентификаторИмена переменных и процедурТекущаяСтрока
Встроенные функции и объектыМетоды и типы платформыСообщить, Строка(…)

Для языка запросов набор другой: ключевые слова ВЫБРАТЬ, ИЗ, ГДЕ, СГРУППИРОВАТЬ ПО выделяются как служебные, а параметры, начинающиеся с &, получают отдельный вид.

Отдельные случаи, которые путают

Строка с переносом. Многострочный текст в кавычках с вертикальной чертой | в начале каждой следующей строки красится целиком как строка. Если вы убрали одну черту, продолжение строки внезапно становится «кодом», и цвет сразу это показывает.

Директивы компиляции. Строки с &НаКлиенте, &НаСервере красятся как директивы. Если вместо директивы цвет выглядит как у обычного идентификатора, проверьте, нет ли лишнего пробела или опечатки в слове.

Комментарий внутри строки. Двойной слеш внутри кавычек комментарием не является. Текст "http://адрес" останется строкой, и это нормально, цвет здесь работает правильно.

Как цвет подсказывает ошибки в коде

Подсветка ловит класс ошибок, которые связаны с лексикой, то есть с написанием слов и знаков. Это не компилятор, но подсказка полезная.

Что цвет показывает хорошо

  1. Опечатка в ключевом слове. КонецЦыкла вместо КонецЦикла остаётся обычным идентификатором. Слово не окрашено как ключевое — смотрите на него внимательнее.
  2. Незакрытая кавычка. После забытой закрывающей кавычки остаток строки красится как текст, хотя вы рассчитывали, что дальше идёт код.
  3. Случайно закомментированный фрагмент. Лишний // перед операцией, и вся строка цвета комментария, хотя вы ждали рабочий код.
  4. Лишний символ в директиве. Директива компиляции теряет «директивный» цвет.

Что цвет не показывает

  • ❌ Обращение к несуществующей переменной или процедуре. Для редактора это просто идентификатор.
  • ❌ Неверное количество параметров при вызове.
  • ❌ Логические ошибки: неправильное условие, пропущенный Возврат.
  • ❌ Ошибки, которые видны только при выполнении, например обращение к полю пустой ссылки.

Для первых двух пунктов служит синтаксический контроль модуля. В Конфигураторе это команда проверки синтаксиса модуля в меню Конфигурация либо сочетание клавиш, указанное в меню рядом с командой. Результат выводится в окне сообщений, где двойной щелчок переводит на строку с ошибкой.

Раскраска и проверка — разные механизмы. Не считайте код рабочим только потому, что он красиво подсвечен. Прогоните проверку синтаксиса и запустите сам сценарий в тестовой базе.

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

Настройка цветовой схемы редактора

Настройки внешнего вида текста модуля находятся в параметрах самого Конфигуратора, а не в конфигурации. Поэтому изменения касаются только вашего рабочего места и не попадают в хранилище или в базу.

Где искать

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

Порядок действий:

  1. Откройте Сервис → Параметры.
  2. Перейдите на вкладку со шрифтами и цветами текстового редактора.
  3. В списке элементов выберите нужный класс, например комментарий или строку.
  4. Задайте цвет текста и, если нужно, цвет фона, а также начертание: обычное, жирное, курсив.
  5. Закройте окно кнопкой подтверждения и посмотрите результат в открытом модуле.

Изменения применяются к новым и уже открытым окнам редактора. Если какое-то окно осталось со старым видом, закройте и откройте его заново.

Что менять, а что лучше оставить

Не перекрашивайте всё подряд. Достаточно скорректировать то, что мешает:

  • 🌑 Тёмный фон. Если работаете в тёмной теме, поменяйте фон редактора и подберите светлые цвета для класса «идентификатор». Тёмный фон при стандартной палитре даёт плохо читаемые сочетания.
  • 💬 Комментарии. Сделайте их спокойнее, чтобы не рябили, но не настолько бледными, чтобы терялись.
  • 🔑 Ключевые слова. Оставьте контрастными: именно по ним строится чтение структуры.
  • 🔤 Шрифт. Выбирайте моноширинный: столбцы выравниваются, отступы читаются честно. Размер подбирайте так, чтобы строка на 100 символов помещалась на экран.

Запишите свои значения в заметку. Если переустановите платформу или перейдёте на другой компьютер, настройки Конфигуратора придётся задавать заново.

Интерфейс разработчика в EDT

Если вы работаете в 1C:Enterprise Development Tools, подсветка настраивается там же, где настройки остальных редакторов среды: в окне параметров цветов и шрифтов самой среды разработки. Принцип прежний: класс элемента, цвет, начертание. Точные пункты зависят от версии EDT, поэтому проверяйте их в своём окне параметров.

Как подсветка помогает работать быстрее

Эффект от цвета не волшебный, но он накапливается. Он заметен там, где вы читаете чужой код или возвращаетесь к своему через месяц.

Три сценария, где подсветка экономит время:

  • Разбор чужого модуля. Первое, что вы видите, — структура: блоки, комментарии, строки. До чтения слов уже понятно, где основной алгоритм, а где обёртка.
  • Правка запроса внутри строки. Запрос в кавычках с переносами красится как строка, поэтому сложнее заметить ошибку в тексте. Для такой работы пользуйтесь конструктором запроса или консолью запросов, где язык запросов раскрашен по-своему.
  • Код ревью. Закомментированные «хвосты» сразу видны. Их стоит убирать до передачи доработки: мёртвый код в модуле сбивает следующего человека.

Сколько времени это экономит, точно не измерить. Практики сходятся в одном: если цвет настроен под вас, меньше устают глаза при длинной работе и реже пропускаются опечатки в служебных словах. Цифр «ускорение на столько-то процентов» без измерений приводить не будем.

Подсветка не тормозит работу

Раскраска строится при отображении текста и не влияет на скорость выполнения кода: на запущенную конфигурацию она не влияет вообще. В очень большом модуле на тысячи строк прокрутка может чуть притормаживать, но причина обычно в размере модуля, а не в раскраске. Если модуль разросся, разделите его на несколько общих модулей по смыслу.

Подсветка в других местах платформы

Цвет встречается не только в модулях.

ГдеЧто подсвечивается
Консоль запросов (внешняя обработка)Язык запросов, параметры, комментарии
Конструктор запроса, закладка с текстом запросаКлючевые слова языка запросов
Окно сообщений при проверкеСтроки с ошибками обозначены значком и ссылкой
ОтладчикТекущая строка выполнения и точки останова выделяются цветом фона

Подсветка в режиме предприятия, если разработчик подключил консоль кода из внешней обработки, зависит от того, как написана сама обработка, и от настроек этой обработки. Универсальных правил здесь нет.

Разбор на живом примере

Возьмите короткую процедуру и пройдитесь по ней глазами, как это делает редактор.

&НаСервере
Процедура ПроверитьОстаток(Номенклатура)
    // берём остаток из регистра
    Если Номенклатура.Пустая() Тогда
        Возврат;
    КонецЕсли;
    Текст = "Остаток не найден: " + Строка(Номенклатура);
    Сообщить(Текст);
КонецПроцедуры

Что вы должны увидеть:

  1. Директива &НаСервере окрашена отдельно от остального кода.
  2. Процедура, Если, Тогда, Возврат, КонецЕсли, КонецПроцедуры — одним цветом ключевых слов.
  3. Строка с // целиком цвета комментария, включая русский текст.
  4. Литерал в кавычках после Текст = — цветом строки, а Строка(Номенклатура) — уже вне кавычек, то есть как вызов функции.

Теперь уберите закрывающую кавычку после двоеточия. Всё, что идёт дальше по строке, включая + Строка(Номенклатура);, станет цветом строки. Это и есть тот самый сигнал: цвет сдвинулся не там, где вы ожидали.

Второй опыт: допишите лишний пробел в КонецЕсли или замените русскую «е» на латинскую. Слово потеряет цвет ключевого, и вы увидите опечатку без запуска проверки.

Привычки, которые делают подсветку полезной

Сама по себе палитра работает слабо, если не поддерживать порядок в тексте. Несколько приёмов, которые усиливают эффект:

  • ✂️ Короткие процедуры. Чем меньше экран кода, тем лучше цвет показывает структуру. Длинная «простыня» сливается в пёстрый фон.
  • 🧹 Не оставляйте закомментированный старый код. Он занимает место цветом комментария и мешает видеть живую логику. Для истории есть хранилище конфигурации.
  • 🏷️ Единый стиль имён. Идентификаторы, написанные по одной схеме, читаются спокойнее на фоне ключевых слов.
  • 🔁 Проверка синтаксиса перед сохранением в хранилище. Раскраску дополняет формальная проверка модуля, а не заменяет её.
  • 🖥️ Одинаковые настройки на всех рабочих местах команды. Скриншоты и разбор кода вместе проще, когда все видят один и тот же набор цветов.

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

Можно ли отключить подсветку совсем?
Полностью отключить раскраску нельзя, но можно сделать все классы элементов одного цвета в параметрах Конфигуратора. Тогда текст станет однотонным.
Подсветка слетела, весь модуль чёрный. Что делать?
Закройте и снова откройте окно модуля. Если не помогло, перезапустите Конфигуратор и проверьте параметры: возможно, цвет текста совпал с цветом фона.
Настройки цвета сохраняются в конфигурации?
Нет. Они хранятся в пользовательских настройках Конфигуратора и действуют на вашем рабочем месте. В хранилище конфигурации и в базу они не попадают.
Почему в одном модуле цвета правильные, а в другом нет?
Скорее всего, в другом модуле где-то выше потерялась кавычка или стоит лишний //. Редактор красит текст последовательно, и одна ошибка сдвигает окраску всего оставшегося.
Одинаково ли выглядит код у разных разработчиков?
Нет, у каждого свои параметры Конфигуратора. На скриншотах в чате и в инструкциях цвета могут отличаться, это нормально.