Сегодня больше про «случайную экспериментальность», которая всегда имеет тенденцию заканчиваться интересными открытиями. Впрочем, случайны ли случайности - это еще тот неоднозначный вопрос! Бывает, считаешь, что знаешь систему, строишь, исходя из этих знаний, гипотезы, которые точно должны решить поставленную задачу. А все мимо. И вдруг, рука дрогнула и курсор куда-то случайно нажал, на автомате занес некорректные данные, совершенно нелогично построил алгоритм и все… Все заработало.
Но перейдем к сути и поговорим про многострочный текст и его хранение в значениях переменных.
Для решения задачи необходимо было понять сколько и какого типа нужно переменных, чтобы ввести многострочный текст в поле ввода, которое поддерживает данный режим.
Давайте, сразу рассмотрим наглядный пример.
Есть поле ввода с многострочным режимом. В него надо ввести отрывок стихотворения в представленном виде:
Чтобы решить данную задачу, для начала стоит понять: какие шаги в сценариях тестирования инструмента «1С:Сценарное тестирование» позволяют заполнять многострочные поля ввода.
Явными оказались два действия: «Ввести текст» и «Установить значение» для шага «Элемент формы». В них текст сразу можно представлять в многострочном формате.
Еще есть действия «Ввести значение по строке» и «Ввести значение по строке и нажать Enter». На первый взгляд, ими нельзя ввести многострочный формат, так как поле «Значение» не поддерживает данный режим. На практике это так же подтверждается. Копируем отрывок стихотворения в поле «Значение» и получаем следующий результат:
Но есть неявный способ «заставить» данные действия работать так как нам нужно:
- Сначала выбираем в шаге действие «Ввести текст» или «Установить значение», указываем текст в многострочном формате. Сохраняем.
- Затем переключаем действие на «Ввести значение по строке» или «Ввести значение по строке и нажать Enter» и сохраняем.
Многострочный режим активирован.
Это как раз и есть «случайная эксперементальность», о которой я упомянул в начале статьи. Случайно переключил команду и узнал, что так можно активировать многострочный режим для данных действий.
Но несмотря на такую особенность, я бы использовал действия «Ввести текст» или «Установить значение» для многострочного режима.
Итак, как вводится многострочный текст в поля ввода, поддерживающий данный режим, стало понятно. Теперь нужно вернутся к переменным и понять сколько их нужно и какого типа, чтобы хранить в их значениях такого вида текст.
Конструкция из строковых переменных
Первое, что подумалось: если в шагах можно сразу вводить многострочный текст, то почему бы не попробовать ввести несколько переменных.
Подготовили семь переменных с типом «Строка» и каждой присвоили свою строку из текста.
Указали в значении шага имена переменных в многостроковом формате. И это сработало корректно.
Можно даже использовать шесть переменны, а не семь. Убрать переменную, значением которой является пустая строка. И добавить пустую строку непосредственно в значении шага.
Когда такой способ может пригодиться?
Когда количество переменных фиксированно. Именно в этом случае, имеет смысл выстраивать конструкции из переменных в значении шага с действием «Ввести текст» или «Установить значение». Значения данных переменных могут быть известны заранее или появляться по мере прохождения сценарного автотеста.
Вычисляемая переменная
А если нужна компактность и хранение всего текста в одной переменной? Здесь поможет только вычисляемая переменная, в значении которой надо задать нужную формулу. Для нашего примера она будет выглядеть так:
"Эдуард Асадов. Отрывок из стихотворения «О том, чего терять нельзя»"+Символы.ПС+""+Символы.ПС+"Я — всем сердцем за технику и прогресс!"+Символы.ПС+"Только пусть не померкнут слова и краски,"+Символы.ПС+"Пусть хохочет в лесах берендеевский бес,"+Символы.ПС+"Ведь экстракт из хвои не заменит лес,"+Символы.ПС+"И радар никогда не заменит сказки!»
Где «Символы.ПС» - это конструкция встроенного языка 1С со специальным символом перехода на следующую строку «ПС».
Соответственно, если весь текст хранится в одной переменной, то ее уже можно использовать в шаге с любым из действий: «Ввести текст», «Установить значение», «Ввести значение по строке» или «Ввести значение по строке и нажать Enter». И не нужно выстраивать многострочные конструкции из переменных.
Да, если вдруг у Вас появился экспериментаторский задор, и Вы решили проверить возможность комбинации строковых и вычисляемых переменных для действий «Ввести текст» и «Установить значение», например, для уменьшения количества самих переменных, то скажу, что уже провел данный эксперимент.
Комбинация на данный момент не работает. Как только в значении шага переменных становится больше одной, то вычисляемые переменные начинают восприниматься как строковые.
Итог:
В большинстве случаев, удобнее использовать одну переменную и хранить в ее значении весь многострочный текст. Но все всегда зависит от требований к решаемой задаче. Потому альтернативный вариант использования переменных для многострочных полей ввода тоже может найти применение. К примеру, когда одна и та же часть многострочного текста может использоваться в разных полях формы в разных форматах. Тогда точно понадобится разбивать строки по переменным или, даже, дублировать какие-то строки в разных переменных.