При активной разработке в среде 1С:Предприятие 8 программисты часто сталкиваются с необходимостью одновременного доступа к дереву объектов основной конфигурации и списку расширений. По умолчанию эти окна могут открываться в свободном режиме или перекрывать друг друга, что замедляет работу. Разберем подробно, как настроить интерфейс Конфигуратора так, чтобы окно расширений всегда находилось под основным деревом конфигурации в левой части экрана.
Интерфейс Конфигуратора базируется на стандартных механизмах докируемых (прикрепляемых) окон. Рассмотрим по шагам, как заставить окна «прилипать» друг к другу в нужном порядке:
Конфигурация, и Расширения конфигурации — находятся в режиме «Прикрепленное». Чтобы это проверить, нажмем правой кнопкой мыши на заголовок окна или обратим внимание на кнопку с изображением канцелярской булавки в верхнем правом углу окна. Если булавка «нажата» (вертикально), окно готово к стыковке.Расширения конфигурации. Нам нужно расположить его именно под деревом объектов. Для этого потянем окно за заголовок в сторону уже закрепленной конфигурации. Важно: курсор мыши должен коснуться нижней границы окна конфигурации. В этот момент появится визуальный маркер (синяя область или рамка), указывающий, что окно расширений займет нижнюю часть левой панели.Часто возникает вопрос: как посмотреть код, который будет фактически выполняться, учитывая все аннотации &Перед, &После и &Вместо? В 1С нет единого текстового файла с «монолитным» кодом, но мы можем проанализировать ситуацию следующими методами:
Использование Глобального поиска
Проанализируем работу механизма через Ctrl+Shift+F. Если мы ищем конкретную процедуру (например, ПриЗаписи), система выдаст в результатах поиска все вхождения: и из основного модуля, и из всех подключенных расширений. Это лучший способ быстро сравнить логику в разных слоях системы. При необходимости можно воспользоваться инструментом для анализа зависимостей и связей объектов с учетом расширений.
Отладка как основной инструмент анализа
Выясним, как ведет себя код в динамике. Если установить точку останова в основной конфигурации, то при пошаговом выполнении (клавиша F11) отладчик будет автоматически переходить в модули расширений согласно их приоритетам и аннотациям. Например, если в расширении определена процедура:
&После("ПриЗаписи")
Процедура Расш1_ПриЗаписи(Отказ, ПараметрыЗаписи)
// Наша дополнительная логика
Сообщить("Данные успешно записаны с учетом расширения!");
КонецПроцедуры
Система сначала выполнит основной код, а затем автоматически перебросит фокус в это место расширения.
Рассмотрим несколько приемов, которые ускорят навигацию в Конфигураторе:
ОткрытьРасширенияКонфигурации.Бывают ситуации, когда окна «улетают» за пределы видимости или их расположение ломается так, что обычное перетаскивание не помогает. В этом случае проанализируем файл профиля пользователя 1cv8.pfl, который находится в папке настроек 1С (AppData). Если закрыть Конфигуратор и удалить этот файл (или конкретную секцию, отвечающую за AppFrame), настройки расположения всех окон сбросятся к заводским, и дерево объектов снова окажется прикрепленным слева по умолчанию.
При работе с несколькими расширениями важно учитывать их взаимное расположение в списке. Разберем, почему это критично. Окно расширений не просто показывает список, оно определяет приоритет исполнения. Если два расширения модифицируют один и тот же метод с аннотацией &После, то расширение, находящееся ниже в списке, будет выполнено последним. Это важно помнить при отладке конфликтов между разными доработками системы. Для этой задачи можно использовать инструмент для анализа доработок и пересечений объектов в расширениях.