В процессе отладки программного кода на платформе 1С:Предприятие разработчики часто сталкиваются с необходимостью перенести путь к конкретному реквизиту или сложное вычисляемое выражение из окна отладчика непосредственно в текст модуля. Окно «Вычислить выражение» (вызываемое по Shift+F9) удобно для анализа данных, но стандартные механизмы копирования в нем не всегда очевидны. Разберем по шагам все доступные способы решения этой задачи: от базовых горячих клавиш до возможностей современных релизов платформы и сторонних инструментов.
Самый простой и быстрый метод, доступный в любой версии платформы, заключается в принудительном переводе поля ввода в режим редактирования. Часто пользователи пытаются выделить текст мышью, но окно перехватывает фокус или закрывается. Проанализируем правильный алгоритм действий:
Shift+F9.F2. Это действие переводит поле в режим правки, аналогично работе с ячейками в Excel или именами файлов в проводнике Windows.Ctrl+A и скопируем его, нажав Ctrl+C.Ctrl+V).Этот метод идеально подходит, если вам нужно скопировать само исходное выражение, которое вы только что написали или отредактировали в верхней строке окна.
Начиная с версий платформы 8.3.24 и 8.3.25, фирма «1С» значительно расширила функционал инструментов отладки. Теперь нам не нужно вручную собирать длинные цепочки реквизитов вида Объект.Товары[0].Номенклатура.Артикул. Рассмотрим, как воспользоваться новой функцией:
Эта функция помещает в буфер обмена полный программный путь к переменной от корня, который был указан в строке вычисления. Это избавляет от ошибок при ручном наборе длинных имен метаданных и ускоряет написание кода.
Если нам необходимо скопировать сразу несколько различных выражений или путей, использование модального окна «Вычислить выражение» может быть неудобным, так как оно требует постоянного открытия и закрытия. Разберем альтернативный подход через панель «Табло»:
Выясним причину, почему «Табло» удобнее: оно является немодальным окном, которое может быть закреплено в интерфейсе конфигуратора постоянно. Чтобы перенести выражение из окна Shift+F9 в Табло, достаточно нажать кнопку «В табло» в нижней части диалога. В Табло копирование текста из ячеек работает стабильнее — достаточно дважды кликнуть по значению или выражению.
Рассмотрим также возможность массового копирования. Если вывести список значений в табличный документ, мы сможем забрать сразу весь массив данных. Для этого в контекстном меню дерева значений можно выбрать команду вывода списка, что позволит работать с данными как с обычным текстом в таблице.
Часто проблема заключается в том, что нам нужно «надергать» из отладчика 5-10 разных путей к данным и только потом вставить их в код. Чтобы не прыгать между окнами каждый раз, рекомендуется использовать менеджеры истории буфера обмена. Проанализируем ситуацию на примере штатного средства Windows 10/11 и специализированного ПО:
Win+V и выбирайте нужные фрагменты для вставки.ClipAngel, позволяет сохранять историю копирования даже с учетом специфики 1С, предотвращая потерю данных при закрытии модальных окон.Для профессиональной разработки существуют инструменты, автоматизирующие рутину. Рассмотрим популярные решения:
1С. В нем реализованы специальные скрипты, которые позволяют копировать текущее вычисляемое значение или путь одной комбинацией клавиш, минуя стандартные ограничения платформы.AutoHotkey, который будет эмулировать последовательность нажатий F2 -> Ctrl+C -> Esc при нажатии одной горячей клавиши, что значительно ускорит процесс.Проанализируем, как эта задача решается в современной среде разработки 1C:Enterprise Development Tools (EDT), построенной на базе Eclipse. В EDT работа с переменными реализована более гибко:
Панель «Переменные» (Variables) позволяет в любой момент времени кликнуть правой кнопкой мыши по любому свойству объекта и выбрать Copy Variable Name (Копировать имя переменной) или Copy Expression (Копировать выражение). Поскольку EDT — это полноценная IDE, окно переменных не перекрывает редактор кода, что позволяет копировать данные «на лету» без закрытия окон отладки.
Важно помнить, что при копировании путей к данным через «Копировать путь» платформа учитывает контекст. Посмотрим на пример:
// В отладчике введено: Объект.Товары
// Мы раскрыли строку [0] и хотим скопировать путь к номенклатуре.
// Результат копирования пути будет: Объект.Товары[0].Номенклатура
Если же вы копируете значение типа Строка, Число или Дата, убедитесь, что вам нужно именно программное выражение, а не само значение. Для копирования значения (например, конкретной даты 01.01.2023 0:00:00) используйте двойной клик во второй колонке окна вычислений.
Таким образом, мы рассмотрели все основные способы эффективного копирования информации из отладчика. Выбор метода зависит от версии вашей платформы и объема данных, которые необходимо перенести в программный код.