Вычислить выражение 1с не активно

Обновлено: 07.07.2024

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

В этой статье мы рассмотрим, каким образом осуществляется отработка логических условий в 1С 8.3.

Оператор Если

Основным оператором условий в языке программирования в 1С, по средством которого осуществляется отработка условий, является оператор Если.

В самом просто случае этот оператор имеет следующий синтаксис:

В том случае, если логическое условие принимает значение Истина, то выполняются операторы после ключевого слова Тогда. Если же это условие не выполняется, то следуют операторы после ключевого слова КонецЕсли.

То есть, может быть, такой вариант.

Или, такой вариант.

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

В этом случае операторы 1 выполняться тогда, когда логическое условие будет Истина, а операторы 2 выполняться, когда логическое условие будет Ложь.

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

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

В этом случае введено новое ключевое слово ИначеЕсли. Условие, которое установлено после ключевого слова ИначеЕсли будет проверяться тогда, когда условия после ключевого слова Если и после предыдущих ключевых слов ИначеЕсли (при их наличие) не выполняются (возвращается Ложь).

Причем, в этой конструкции ключевое условие Иначе не обязательно к использованию.

В этом случае решение предыдущего примера (с числом) будет выглядеть так:

Или мы можем отработать такое условие.

Обращаю внимание, что проверка условий идет с верху в низ, т.е. сначала проверяется выполнение условий после ключевого слова Если, и если условие выполняются , то отрабатываются операторы, которые идут после этого ключевого слова, потом проверяется выполнении условий после первого условия ИначеЕсли, и выполняются его операторы и т.д. И если ни одно условие не отработалось, то выполняются операторы после ключевого слова Иначе (при его наличии).

Вычислить выражение по условию

В 1С 8.3. в качестве оператора условия можно использовать ни только оператор Если, но также оператор ?(вычислить выражение по условию). Этот оператор имеет следующий синтаксис.

Если логическое выражение Условие принимает значение Истина, то выполняется выражение 1, а иначе выполняется выражение 2.

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

Как вы видите, при помощи этого оператора можно упрощать написание кода, по сути можно писать условие одной строкой.


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

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

image001

Приведём краткую инструкцию пользования обработкой:

  1. Открываем внешнюю обработку «Вычисление выражений» через пункт меню «Файл ? Открыть…».
  2. На вкладке «Код» в текстовом поле пишем код, который нам необходимо протестировать. При написании отдельные слова начинают подсвечиваться разным цветом, как и в конфигураторе, в зависимости от их назначения. Для отображения результата в теле кода нужно использовать переменную «Результат», которая может принимать произвольный тип.

image003

  1. На вкладке «Параметры» можно объявлять необходимые переменные, задавать им значения и использовать при написании кода 1С. Это удобно, т.к. не приходится прописывать код, который бы искал конкретные значения, хранящиеся в информационной базе.

image005

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

image007

  1. Можно сохранить как написанный код, нажав на кнопку «Сохранить» (в файл XML), так и полученную таблицу в формате табличного документа MXL или в формате Microsoft Excel (XSL).

image009

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


Эта панель входит в стандартный состав перспективы Отладка . Если вы закрыли эту панель, или находитесь в другой перспективе, вы можете открыть эту панель из главного меню основного окна, нажав Окно > Показать панель > Прочие… > 1С:Предприятие > Выражения .

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

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

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

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

Условные обозначения

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

Выражение. Тип Неопределено , а также в тех случаях, когда значение недоступно для чтения. Тип Число . Тип Строка . Тип Дата . Тип Булево . Объект встроенного языка. Неименованная коллекция (обращение к ее элементам возможно по индексам). Например, Массив . Именованная коллекция (обращение к ее элементам возможно по именам или по индексам). Например, Структура . Группа элементов коллекции. Эта группа не является свойством встроенного языка, это логическая группировка, которая содержит в себе элементы коллекции, обозначенные их индексами.

Колонки

Имя Выражение, имя переменной или свойства. Значение Значение выражения, переменной или свойства. Фактический тип Тип значения выражения, переменной или свойства.

Клики мышью

Одиночный клик На выражении: Переводит ячейку Имя в режим редактирования и позволяет изменить выражение.

Командная панель


Показать имена типов Перед именем переменной 1C:EDT показывает имя типа ее значения. Команда доступна тогда, когда колонки Значение и Фактический тип скрыты. Показать логическую структуру Не используется при разработке прикладных решений «1С:Предприятия 8». Свернуть все Сворачивает все уровни иерархии, существующие в панели, до первого уровня. Добавить отслеживаемое выражение. Открывает диалог для добавления нового выражения. Удалить Удаляет выделенные выражения. Удалить все Удаляет все выражения. Показать дополнительные команды Открывает выпадающее меню, в котором содержатся дополнительные команды для панели. Макет > Подменю содержит следующие команды: По вертикали Показывает область сведений под таблицей выражений. По горизонтали Показывает область сведений справа от таблицы выражений. Размер столбца по умолчанию: Расположение области сведений выбирается автоматически (снизу или справа) в зависимости от размеров панели. Expressions View Only Если нажата, область сведений не показывается. Если отжата — область сведений показывается. Показать столбцы Если нажата, показываются колонки Значение и Фактический тип . Если отжата — эти колонки не показываются. Выбрать столбцы. Открывает диалог, который позволяет вам выбрать, какие колонки будут показаны в таблице выражений.

Контекстное меню таблицы выражений


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

Контекстное меню области сведений



Присвоить значение В области сведений вы можете написать выражение на встроенном языке например, Новый Структура("ключ1, ключ2", "значение1", "значение2") . Эта команда присвоит значение этого выражения той переменной, значение которой было показано в области сведений. Помощник по содержимому Открывает окно контекстной подсказки. Вырезать Копирует выделенный фрагмент в буфер обмена и удаляет его из области сведений. Копировать Копирует выделенный фрагмент из области сведений в буфер обмена. Вставить Вставляет фрагмент из буфера обмена в область сведений. Выбрать все Выбирает весь текст в области сведений. Найти и заменить. Открывает диалог, который позволяет вам найти в области сведений и заменить некоторое выражение. Переносить текст Если флажок установлен, длинные строки в области сведений будут переноситься на следующую строку так, чтобы их просмотр был возможен без горизонтальной прокрутки. Если флажок снят, длинные строки переноситься не будут и для их просмотра необходимо использовать горизонтальную прокрутку. Максимальная длина текста Устанавливает максимальную длину текста, который будет показан в области сведений. Стандартно длина текста не ограничена.

В этой статье разберем основы работы с отладкой в конфигураторе 1С. Что это такое, и для чего нужна отладка в 1С? Очень часто необходимо понять, как работает тот или другой кусок кода, и какие значения содержат различные переменные. Конфигуратор 1С для этих целей имеет механизм отладки. В этой статье мы разберем основные моменты работы с отладкой.

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

Установка точки останова используя главное меню конфигуратора 1С

Или используя контекстное меню

Установка точки останова используя контекстное меню конфигуратора 1С

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

Обращаю Ваше внимание, что точку останова необходимо устанавливать на том месте кода, где написан какой-нибудь оператор. Либо объявлены неявно переменные.

Пять эффективных инструмента отладки

Что делать дальше?

Есть несколько вариантов, рассмотрим их все по отдельности.

Первый вариант, можно просто идти по коду, не заходя ни в какие процедуры и функции. Для этого используем кнопку «Шагнуть через» или клавишу F10.

Точка останова, шагнуть через, клавиша отладки F10

Имейте в виду, что если отладка передает управление какой-нибудь интерактивной функции, где требуется вмешательство пользователя, то либо сразу Вас программа перекинет на 1С Предприятие, либо отладка зависнет, и тогда в 1С Предприятие придется перейти самостоятельно.

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

Точка останова, шагнуть В, клавиша F11

Если нам необходимо выйти из какой-то процедуры или функции, не дожидаясь её выполнения, то необходимо нажать кнопку «Шагнуть из» или держа клавишу Shift нажать клавишу F11.

Точка останова, шагнуть из, клавиши Shift + F11

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

Точка останова, кнопка продолжить отладку, клавиша F5

Второй способ: установить курсор на нужную и нажать на кнопку «Идти до курсора», либо держа клавишу Shift нажать клавишу F10.

Точка останова, кнопка идти до курсора, клавиши Shift + F5

Если работая с кодом Вы заблудились в нём и хотите быстро вернуться к текущей строке отладки, то достаточно нажать кнопку «Текущая строка»

очка останова, кнопка текущая строка

Как двигаться по коду в отладке мы узнали. Теперь самое главное, как узнать значения переменных? В этом нам поможет табло.

Открыть его можно несколькими способами.

Первый: используя главное меню.

Главное меню – отладка - табло

Второй: используя панель «Отладка конфигурации».

Табло в панели отладка конфигурации

Третий: используя комбинацию клавиш Ctrl + Alt + W.

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

Примитивные переменные в табло отладки 1С

Кроме переменных примитивных типов у Вас есть возможность вносить в выражение переменные объектных типов, и посмотреть их состав этой переменной (если Вы не отлаживаете выполнение кода на тонком клиенте в управляемом приложении).

Переменная объектного типа в табло отладки 1С

В табло можно вносить и функции (как собственные, так и глобального контекста), чтобы узнать, что они будут возвращать.

Использование функций в табло отладки 1С

Узнать значение переменной можно и без использования табло. Достаточно выделить эту переменную и нажать на кнопку «Вычислить выражение» (комбинация клавиш Shift + F9).

Вызов окна Вычислить выражение

Вызов окна Вычислить выражение

Окно Вычислить выражение

Посмотрите наглядную работу с отладкой в этом видео.

Оценка производительности работы кода в 1С


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

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным


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

можно оплатить вручную:

Читайте также: