Просмотр и изменение значений

Отображение значений переменных в модуле

Значения локальных переменных, используемых в модуле, можно увидеть прямо в тексте модуля, если включена встроенная отладка.

Включить встроенную отладку

Нажмите (Встроенная отладка) в командной панели основного окна.

Изменить цвет текста

Нажмите Окно > Параметры... > V8 > Отладка > Цвет текста встроенной отладки в главном меню.

Просмотр значений переменных

Можно быстро просматривать значения переменных прямо в модуле. Наведите курсор на интересующий вас идентификатор, и его значение будет показано во всплывающем окне.

Объекты показываются в виде таблицы с деревом, которое позволяет раскрыть и просмотреть структуру объекта.

Переключить на представление в виде дерева

Нажмите Окно > Параметры... > V8 > Отладка > Вид наполнения всплывающего диалога отладки в главном меню.

Добавить в панель «Выражения встроенного языка»
  1. Выберите интересующее вас свойство;
  2. Нажмите Наблюдение в контекстном меню.
В панели Выражения встроенного языка можно отслеживать значение этого свойства в процессе отладки.
Копировать путь
  1. Выберите интересующее вас свойство;
  2. Нажмите Копировать путь к переменным в контекстном меню.

Это удобно для того, чтобы потом вставить этот путь в текст программы.

Вычисление выражений

Чтобы вычислить выражение:
  1. Выделите это выражение в модуле;
  2. Инспектировать в контекстном меню;

Объекты показываются в виде таблицы с деревом, которое позволяет раскрыть и просмотреть структуру объекта.

Добавить в панель «Выражения встроенного языка»
  1. Выберите интересующее вас свойство;
  2. Нажмите Наблюдение в контекстном меню.
В панели Выражения встроенного языка можно отслеживать значение этого свойства в процессе отладки.

Панель «Переменные»

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

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

Кроме этого в отдельной группе Свойства модуля эта панель показывает свойства локального контекста модуля. Например, в модуле объекта это будут свойства того объекта, которому принадлежит модуль.

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

Эта панель входит в стандартный состав перспективы Отладка.

Открыть панель «Переменные»

Нажмите Окно > Показать панель > Другое… > Отладка > Переменные в главном меню.

Структура информации в панели

Если переменная имеет примитивный тип (Число, Строка и т. д.), то она показывается одной строкой. В противном случае 1C:EDT показывает переменную деревом, ветки которого являются свойствами (если это объект) или элементами (если это объект, являющийся коллекцией значений).

Все переменные разделяются на три группы:

  • В корне показываются параметры и переменные текущего метода, в котором находится точка останова. Если переменная еще не инициализирована, то в качестве ее значения показывается Неопределено;
  • В группе Свойства модуля показывается локальный контекст модуля. Например, для модуля формы в этой группе будут собраны все реквизиты и свойства формы;
  • В группе Переменные модуля показываются явно объявленные переменные модуля;

Кроме этого при показе неименованных коллекций 1C:EDT использует группу Элементы. Эта группа не является свойством встроенного языка, это логическая группировка, которая содержит в себе элементы коллекции, обозначенные их индексами;

Под таблицей переменных расположена область сведений, в которой показывается текстовое представление значения той переменной, которая выделена в таблице. Область сведений удобна для просмотра длинных строковых значений.

Условные обозначения
  • — группы Свойства модуля и Переменные модуля;
  • тип Неопределено, а также в тех случаях, когда значение недоступно для чтения;
  • тип Число;
  • тип Строка;
  • тип Дата;
  • тип Булево;
  • объект встроенного языка;
  • неименованная коллекция (обращение к ее элементам возможно по индексам). Например, Массив;
  • именованная коллекция (обращение к ее элементам возможно по именам или по индексам). Например, Структура;
  • группа элементов коллекции.
Колонки
  • Имя — имя переменной или свойства;
  • Значение — значение переменной или свойства;
  • Фактический тип — тип переменной или свойства.
Примечание: Можно скрыть колонки Значение и Фактический тип. Этом случае 1C:EDT будет показывать всю информацию в виде дерева, содержащего имя, значение и, возможно, тип значения.
Клики мышью и перетаскивание
  • Одиночный клик на строке, содержащий коллекцию или объект показывает элементы коллекции в панели Значения. Для этого в панели Значения должна быть включена связь с панельюПеременные (стандартно она включена);
  • Одиночный клик на значении примитивного типа (колонка Значение) переводит ячейку в режим редактирования и позволяет изменить значение;
  • Двойной клик на коллекции или объекте (колонка Имя) раскрывает вложенный уровень свойств;
  • Перетаскивание колонки за заголовок меняет порядок колонок в панели.
Командная панель
  • (Показать имена типов)перед именем переменной 1C:EDT показывает имя типа ее значения. Команда доступна тогда, когда колонки Значение и Фактический тип скрыты;
  • (Показать логическую структуру)не используется при разработке приложений «1С:Предприятия»;
  • (Свернуть все)сворачивает все уровни иерархии, существующие в панели, до первого уровня;
  • (Показать меню)открывает выпадающее меню, в котором содержатся дополнительные команды для панели;
    • Макетподменю содержит следующие команды:
      • По вертикалипоказывает область сведений под таблицей переменных;
      • По горизонталипоказывает область сведений справа от таблицы переменных;
      • Автоматическийрасположение области сведений выбирается автоматически (снизу или справа) в зависимости от размеров панели;
      • Только просмотр переменныхесли нажата, область сведений не показывается. Если отжата — область сведений показывается;
      • Показать столбцыесли нажата, показываются колонки Значение и Фактический тип. Если отжата — эти колонки не показываются;
      • Выбрать столбцы...открывает диалог, который позволяет вам выбрать, какие колонки будут показаны в таблице переменных;
Контекстное меню таблицы переменных
  • Выбрать всевыделяет все переменные в панели для их последующего копирования;
  • Копировать переменныекопирует выделенные имена, значения и типы переменных в буфер обмена;
  • Найти...ищет переменные и свойства по именам среди тех переменных и свойств, которые показаны в панели;
  • Изменить значение...открывает диалог для изменения значения переменной. Можно ввести новое значение для примитивных типов (Число, Строка, Булево, Дата) или вычислить значение любого типа, используя модификацию на основе выражений. Например, Новый Структура("ключ1, ключ2", "значение1", "значение2");
  • Показать в значенияхпоказывает содержимое коллекции в панели Значения. Эту команду удобно использовать в том случае, когда в панели Значения отключена связь с панелью Переменные;
  • Наблюдениепомещает переменную в панель Выражения — ее значение будет отслеживаться при пошаговой отладке. В панели Выражения можно отредактировать отслеживаемое выражение и, например, вместо переменной ДатаВыполнения отслеживать НачалоМесяца(ДатаВыполнения);
Контекстное меню области сведений
  • Присвоить значениев области сведений можно написать выражение на встроенном языке например, Новый Структура("ключ1, ключ2", "значение1", "значение2"). Эта команда присвоит значение этого выражения той переменной, значение которой было показано в области сведений;
  • Помощник по содержимомуоткрывает окно контекстной подсказки;
  • Вырезатькопирует выделенный фрагмент в буфер обмена и удаляет его из области сведений;
  • Копироватькопирует выделенный фрагмент из области сведений в буфер обмена;
  • Вставитьвставляет фрагмент из буфера обмена в область сведений;
  • Выбрать все выбирает весь текст в области сведений;
  • Найти/Заменить...открывает диалог, который позволяет вам найти в области сведений и заменить некоторое выражение;
  • Переносить текстесли флажок установлен, длинные строки в области сведений будут переноситься на следующую строку так, чтобы их просмотр был возможен без горизонтальной прокрутки. Если флажок снят, длинные строки переноситься не будут и для их просмотра необходимо использовать горизонтальную прокрутку;
  • Максимальная длина текста...устанавливает максимальную длину текста, который будет показан в области сведений. Стандартно длина текста не ограничена;

Панель «Выражения встроенного языка»

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

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

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

Эта панель входит в стандартный состав перспективы Отладка.

Открыть панель «Выражения встроенного языка»

Нажмите Окно > Показать панель > Другое… > 1С:Предприятие > Выражения встроенного языка в главном меню.

Создать отслеживаемое выражение
Создать отслеживаемое выражение можно разными способами:
  • Выделить выражение в модуле и нажать Наблюдение в контекстном меню;
  • Выделить выражение в модуле и перетащить его в открытую панель Выражения встроенного языка;
  • Вычислить выражение и нажать Shift+F9;
  • В панели Переменные раскрыть объект, выбрать его свойство и нажать Наблюдение в контекстном меню;
  • Добавить выражение непосредственно в панель Выражения встроенного языка нажав:
    • Добавить выражение» в таблице или
    • (Создать новое отслеживаемое выражение) в командной панели.
Структура информации в панели

Если значение выражения имеет примитивный тип (Число, Строка и т. д.), то 1C:EDT показывает такое значение одной строкой. В противном случае 1C:EDT показывает значение деревом, ветки которого являются свойствами (если это объект) или элементами (если это объект, являющийся коллекцией значений).

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

Условные обозначения
  • — выражение;
  • тип Неопределено, а также в тех случаях, когда значение недоступно для чтения;
  • тип Число;
  • тип Строка;
  • тип Дата;
  • тип Булево;
  • объект встроенного языка;
  • неименованная коллекция (обращение к ее элементам возможно по индексам). Например, Массив;
  • именованная коллекция (обращение к ее элементам возможно по именам или по индексам). Например, Структура;
  • группа элементов коллекции.
Колонки
  • Имя — выражение, имя переменной или свойства. Если выражение является коллекцией значений, то после имени в квадратных скобках 1C:EDT показывает количество элементов в коллекции;
  • Значение — значение выражения, переменной или свойства;
  • Фактический тип — тип значения выражения, переменной или свойства.
Клики мышью

Одиночный клик на выражении выделяет строку.

Двойной клик переводит ячейку Имя в режим редактирования и позволяет изменить выражение или добавить новое.

Командная панель
  • (Показать имена типов)перед именем переменной 1C:EDT показывает имя типа ее значения. Команда доступна тогда, когда колонки Значение и Фактический тип скрыты;
  • (Показать логическую структуру)не используется при разработке приложений «1С:Предприятия»;
  • (Свернуть все)сворачивает все уровни иерархии, существующие в панели, до первого уровня;
  • (Создать новое отслеживаемое выражение) открывает диалог для добавления нового выражения;
  • (Удалить выбранные выражения)удаляет выделенные выражения;
  • (Удалить все выражения)удаляет все выражения;
  • (Показать меню)открывает выпадающее меню, в котором содержатся дополнительные команды для панели;
    • Макетподменю содержит следующие команды:
      • По вертикалипоказывает область сведений под таблицей выражений;
      • По горизонталипоказывает область сведений справа от таблицы выражений;
      • Автоматическийрасположение области сведений выбирается автоматически (снизу или справа) в зависимости от размеров панели;
      • Только просмотр выраженийесли нажата, область сведений не показывается. Если отжата — область сведений показывается;
      • Показать столбцыесли нажата, показываются колонки Значение и Фактический тип. Если отжата — эти колонки не показываются;
      • Выбрать столбцы...открывает диалог, который позволяет вам выбрать, какие колонки будут показаны в таблице выражений;
Контекстное меню таблицы выражений
  • Найти...ищет выражения, переменные и свойства по именам среди тех выражений, переменных и свойств, которые показаны в панели;
  • Вычислить отслеживаемое выражениевычисляет выражение. Команда полезна в том случае, когда отслеживаемое выражение выключено и автоматически не вычисляется;
  • Показать в значенияхПоказывает содержимое коллекции в панели Значения. Эту команду удобно использовать в том случае, когда в панели Значения отключена связь с панелью Выражения;
Контекстное меню области сведений
  • Присвоить значениев области сведений можно написать выражение на встроенном языке например, Новый Структура("ключ1, ключ2", "значение1", "значение2"). Эта команда присвоит значение этого выражения той переменной, значение которой было показано в области сведений;
  • Помощник по содержимомуоткрывает окно контекстной подсказки;
  • Вырезатькопирует выделенный фрагмент в буфер обмена и удаляет его из области сведений;
  • Копироватькопирует выделенный фрагмент из области сведений в буфер обмена;
  • Вставитьвставляет фрагмент из буфера обмена в область сведений;
  • Выбрать всевыбирает весь текст в области сведений;
  • Найти/Заменить...открывает диалог, который позволяет вам найти в области сведений и заменить некоторое выражение;
  • Переносить текстесли флажок установлен, длинные строки в области сведений будут переноситься на следующую строку так, чтобы их просмотр был возможен без горизонтальной прокрутки. Если флажок снят, длинные строки переноситься не будут и для их просмотра необходимо использовать горизонтальную прокрутку;
  • Максимальная длина текста...устанавливает максимальную длину текста, который будет показан в области сведений. Стандартно длина текста не ограничена;

Панель «Значения»

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

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

Эта панель входит в стандартный состав перспективы Отладка.

Открыть панель «Значения»

Нажмите Окно > Показать панель > Другое… > 1С:Предприятие > Значенияв главном меню.

Добавить значение в панель

Чтобы значение стало отображаться в этой панели, выделите переменную, содержащую коллекцию значений, в панели Переменные или Выражения встроенного языка.

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

Отключить синхронизацию панелей

Стандартно в панели включена связь с панелями Переменные и Выражения встроенного языка, поэтому 1C:EDT автоматически показывает в ней состав той коллекции, которая выделена в этих панелях. Чтобы отключить эту синхронизацию, нажмите (Связать с Переменные/Выражения) в командной панели.

Условные обозначения
  • тип Неопределено, а также в тех случаях, когда значение недоступно для чтения;
  • тип Число;
  • тип Строка;
  • тип Дата;
  • тип Булево;
  • объект встроенного языка;
  • неименованная коллекция (обращение к ее элементам возможно по индексам). Например, Массив;
  • именованная коллекция (обращение к ее элементам возможно по именам или по индексам). Например, Структура;
  • группа элементов коллекции.
Клики мышью

Одиночный клик на строке, являющейся коллекцией, показывает эту коллекцию в панели Значения, полностью заменяя все данные, которые содержались в панели.

Командная панель
  • (Связать с Переменные/Выражения)включает или выключает связь панели Значения с панелью Выражения. Если связь включена, выражение или коллекция, выбранная в панели Выражения автоматически показывается в панели Значения;
Контекстное меню
  • Показать в Переменные — выделяет выбранную переменную в панели Переменные. Эту команду удобно использовать в том случае, когда в панели Значения отключена связь с панелью Переменные;

Изменение значений переменных и свойств

В процессе пошаговой отладки можно изменять значения переменных. Используйте для этого панель Переменные:

  1. Выделите строку, в которой находится значение, которое нужно изменить;
  2. Нажмите на ячейку Значение в этой строке.
Значения примитивных типов

Значения примитивных типов (Число, Строка, Дата, Булево) можно изменять прямо в таблице, кликнув на ячейку Значение.

Объекты

Значения, являющиеся объектами, можно изменять с помощью области сведений или с помощью диалога, который открывается командой Изменить значение... в контекстном меню панели Переменные.

Изменить значение объекта с помощью области сведений
  • В панели Переменные выделите переменную или свойство;
  • В области сведений напишите выражение, результат выполнения которого имеет нужный вам тип. Контекстная подсказка здесь недоступна. Например:
    Справочники.Контрагенты.НайтиПоКоду("000000015")
  • В контекстном меню области сведений нажмите Присвоить значение;
    Новое значение будет установлено для выбранной переменной или свойства.
Изменить значение объекта с помощью диалога
  • В панели Переменные выделите переменную или свойство;
  • Нажмите Изменить значение... в контекстном меню;
  • Выберите пункт Модификация на основе выражений;
  • В поле Свойства модификации напишите выражение, результат выполнения которого имеет нужный вам тип. При написании выражения можно использовать контекстную подсказку. Например:
    Справочники.Контрагенты.НайтиПоКоду("000000015")
  • Нажмите ОК;
    Новое значение будет установлено для выбранной переменной или свойства.
Системные перечисления и системные наборы значений

Значения, имеющие тип системного перечисления или системного набора значений, можно изменить с помощью выражений, как и объектные значения. Только в этом случае достаточно будет написать тип и через точку выбрать нужное значение:

Ограничения при изменении значений

Некоторые свойства объектов недоступны для записи. При попытке их изменения будет показана ошибка «Поле объекта недоступно для записи (<имя свойства>)».

Значения переменных и значения нетипизированных свойств (например, значение элемента структуры — КлючИЗначение.Значение) можно изменять на значения любых типов.

Значения типизированных свойств можно изменять на значения того же типа.

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

Значения типа Строка можно менять на значения любого другого типа. Фактически при этом тип существующего значения меняться не будет, а в качестве значения будет присваиваться строковое представление нового значения.

Переход по стеку

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

Для того, чтобы проанализировать значения переменных в вызывающих методах, можно перемещаться по стеку вызовов в панели Отладка.

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