Идеи по тестированию печатных форм с помощью инструмента Vanessa Automation
Добрый день. В этой статье хочу порассуждать о тестировании печатных форм на платформе 1С с помощью инструмента Vanessa Automation.
Надеюсь — эта статья окажется полезной. Конечно хочется, чтобы вы поделитесь своими идеями, опытом и предложениями. Лично мне очень интересно получить обратную связь.
Что интересного в печатных формах?
На своем опыте могу сказать следующее — печатные формы (ПФ) очень разнообразны. Выражается это в разных форматах дат, различных данных таблиц, строковых данных и пр. Все эти данные можно разделить на динамические и статические. Для проверки статичных данных нам нужен только шаблон. А для проверки динамических можно использовать переменные. Либо использовать для проверки символ звездочка и проверять печатную форму по шаблону. Для примера подготовил следующий пример.

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

Создание шаблона печатной формы
Получится следующее.

Полученный шаблон печатной формы
Что можно сделать дальше? Какие проблемы могут встречаться?
Думаю, что критическая ошибка — та ошибка, которую нужно сразу детектировать. И для этого вполне будет достаточно примера, описанного выше, т.к. она появится сразу при открытии окна ПФ.

Критическая ошибка
Но, конечно можно обойтись командой открытия ПФ. Это команда тоже справится с обнаружением данной ошибки.
Но, все же предлагаю идти вперед и заменить динамические данные на символ звездочка и проверять ПФ по шаблону. Для примера заменил номер и дату в строке 41.

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

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

Шаблон с переменными
С каким шаблоном ПФ удобнее работать?
Тут можно использовать 2 варианта.
Первый — это макет, который хранится в отдельном файле.
Второй — то шаблон, который хранится в самом .feature файле.
В первом варианте — сценарий становится довольно удобным и читаемым, но для его редактирования нужно открывать отдельный файл и делать изменения в нем.
Во втором варианте — шаблон хранится в .feature файле и может быть довольно объемным. Поэтому сам сценарий становится менее читаемым. Зато все в одном месте — более удобно поддерживать и редактировать.
Печатные формы формируются в основном из документов, также справочников и других элементов конфигурации. И поэтому для проверки всех печатных форм документа можно использовать один .feature файл. В первом сценарии заполняем и проводим документ. А в следующих сценариях проверяем отдельно печатные формы. Структурно получается такой сценарий.
В каждом сценарии на проверку ПФ проверяем существование глобальной переменной — ссылки на документ. Если не она существует — то сразу вызываем исключение, потому что сценарий по созданию документа не дошел до сохранения переменной, а значит завершился с ошибкой. И получается, что нет смысла выполнять проверку печатных форм. Если же переменная со ссылкой на документ существует, то открываем нужный документ.

Структура .feature файла
А далее идут пункты, которые уже были рассказаны выше. Получается всего 4 структурных блока.
Проверка на возможность выполнения сценария
Создание необходимых переменных
Открытие печатной формы
Проверка печатной формы
Единственное, что еще можно добавить — это удаление глобальной переменной перед выполнением сценария. Когда в коллекции становится много сценариев, то есть вероятность, что перед выполнением сценария будет существовать такая же переменная из предыдущего сценария. Что может привести к ошибке в сценарии. Поэтому на всякий случай их стоит удалять.
То, что все сценарии по проверке ПФ имеют одинаковый формат — я считаю плюсом. Потому что с этим удобнее работать и поддерживать.
На этом все — если у вас используется какой-то другой формат проверки, либо есть интересные предложения по улучшению существующего, то обязательно пишите.
