Как отлаживать и редактировать модули 1С 7.7 без постоянного перезапуска платформы

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Разработчики, которым приходится поддерживать и развивать конфигурации на платформе 1С:Предприятие 7.7, часто сталкиваются с серьезной потерей времени при отладке. Если информационная база объемная, а при старте системы выполняются тяжелые процедуры инициализации (например, проверка прав, загрузка актуальных курсов валют, проверка обновлений или загрузка внешних компонент), то каждый запуск предприятия для проверки одной строчки кода превращается в мучение. В этой статье мы подробно разберем, как кардинально ускорить этот процесс и организовать удобную отладку форм и модулей «на лету» без постоянного перезапуска «1С:Предприятие».

Способ 1. Штатный механизм динамической загрузки через директиву #ЗагрузитьИзФайла

Начнем с классического штатного механизма, который заложен в саму платформу 1С 7.7, но о котором знают далеко не все разработчики. Платформа поддерживает специальную директиву препроцессора, которая позволяет заменить весь исполняемый код модуля внешней ссылкой на текстовый файл.

Для реализации этого подхода выполним следующие шаги:

  1. Выгрузим весь текст отлаживаемого модуля (например, модуля формы документа или отчета) в отдельный текстовый файл на диске. Назовем его, к примеру, document_module.txt.
  2. В самом конфигураторе 1С 7.7 полностью очистим тело этого модуля и в самой первой строчке с первой позиции пропишем директиву динамической загрузки.

Синтаксис этой директивы выглядит следующим образом:

#ЗагрузитьИзФайла C:\1C_Bases\DebugFiles\document_module.txt

Как это работает на практике: Теперь каждый раз, когда пользователь в режиме «1С:Предприятие» открывает форму данного документа или запускает отчет, платформа обращается к указанному физическому пути на диске, считывает содержимое файла document_module.txt, компилирует его в оперативную память и выполняет. Нам больше не нужно закрывать пользовательский режим! Достаточно просто внести изменения во внешний текстовый файл, сохранить его в любом редакторе и заново открыть форму в 1С.

Однако у этого способа есть несколько технических ограничений и нюансов, которые необходимо учитывать:

Настройка встроенного конфигуратора 1С 7.7 для редактирования внешних файлов

Чтобы комфортно править выгруженные файлы прямо во встроенном конфигураторе, не прибегая к сторонним редакторам, выполним простую настройку:

  1. Откроем Конфигуратор 1С 7.7.
  2. Перейдем в меню Сервис -> Параметры.
  3. Выберем вкладку Редактор.
  4. Установим флажок или выберем режим, указывающий, что внешние текстовые файлы по умолчанию должны открываться как код 1С (режим автоопределения или принудительная подсветка кода).

После этой настройки при открытии любого файла с расширением .txt или .1с через меню «Файл -> Открыть» конфигуратор автоматически применит к нему правила подсветки синтаксиса встроенного языка.

Способ 2. Прокачка конфигуратора: OpenConf и sciColorer

Штатный редактор конфигуратора 1С 7.7 крайне аскетичен. В нем по умолчанию нет возможности сворачивать и разворачивать процедуры и функции (так называемый code folding, или «плюсики»). Для решения этой проблемы продвинутые разработчики используют легендарный набор расширений.

Разберем подробнее ключевые компоненты этой связки:

Именно благодаря sciColorer в стареньком конфигураторе «семерки» появляются долгожданные функции:

  1. Удобная и настраиваемая цветовая разметка кода.
  2. «Плюсики» слева от строк для быстрого сворачивания и разворачивания тел процедур, функций, условий Если...КонецЕсли и циклов.
  3. Автодополнение кода (интеллектуальный ввод, аналог IntelliSense).

Для установки этого решения достаточно скачать дистрибутив OpenConf, распаковать его файлы в каталог установленной платформы 1С 7.7 (в папку BIN) и подключить плагин sciColorer согласно инструкции разработчика. Это вдохнет новую жизнь в стандартную среду разработки и сделает работу с внешними файлами модулей максимально комфортной.

Способ 3. Использование утилиты TurboMD для «горячей» замены «на лету»

Если вам требуется еще более продвинутый уровень отладки, при котором вообще не нужно модифицировать конфигурацию директивами #ЗагрузитьИзФайла, обратим внимание на специализированную компоненту TurboMD.

Проанализируем принцип работы этого инструмента:

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

Преимущества использования TurboMD:

Способ 4. Решение проблем с кодировками (CP1251 vs UTF-8) в Notepad++

Если вы решили использовать для редактирования популярный внешний редактор Notepad++, то наверняка столкнетесь с проблемой нарушения кодировки при переносе кода через буфер обмена (Copy-Paste).

Выясним причину этой проблемы. Платформа 1С 7.7 является классическим non-Unicode (ANSI) приложением. При работе с буфером обмена операционная система Windows определяет текущую активную раскладку клавиатуры. Если в момент копирования текста (нажатия комбинации Ctrl+C) в редакторе Notepad++ у вас была включена английская раскладка клавиатуры, система попытается передать текст через кодовую страницу CP1252 (Western). При вставке в Конфигуратор 1С этот текст превратится в нечитаемый набор символов.

Разберем два надежных решения этой проблемы:

Решение А. Правило активной раскладки

Возьмем за железное правило: перед копированием и перед вставкой русскоязычного кода всегда переключайте раскладку клавиатуры на русскую (RU) как в Notepad++, так и в Конфигураторе 1С.

Решение Б. Системное исправление кодовых страниц через реестр Windows

Чтобы раз и навсегда избавить операционную систему от проблем неверной интерпретации буфера обмена для старых программ, выполним следующую системную настройку:

  1. Откроем редактор реестра Windows (нажмем Win+R, введем regedit и нажмем Enter).
  2. Перейдем по следующему пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage

  1. Найдем строковый параметр с именем 1252. По умолчанию его значение указывает на файл локали западной Европы (c_1252.nls).
  2. Дважды кликнем по параметру 1252 и изменим его значение на:

c_1251.nls

После перезагрузки компьютера операционная система Windows будет автоматически транслировать западноевропейскую кодировку в стандартную кириллическую CP1251. Это полностью решает проблему «кракозябр» при копировании исходных кодов 1С 7.7 через любые внешние редакторы.

Резюме и рекомендации

Мы подробно проанализировали различные варианты настройки рабочего места разработчика 1С 7.7. Подведем итоги:

← На главную