Добрый день! В этой статье хочу порассуждать о тестировании печатных форм на платформе 1С с помощью инструмента Vanessa Automation.

Надеюсь - эта статья окажется полезной. Конечно хочется, чтобы вы поделитесь своими идеями, опытом и предложениями. Лично мне очень интересно получить обратную связь.

Что интересного в печатных формах?

На своем опыте могу сказать следующее - печатные формы (ПФ) очень разнообразны. Выражается это в разных форматах дат, различных данных таблиц, строковых данных и пр. Все эти данные можно разделить на динамические и статические. Для проверки статичных данных нам нужен только шаблон. А для проверки динамических можно использовать переменные. Либо использовать для проверки символ звездочка "*" и проверять печатную форму по шаблону. Для примера подготовил следующий пример.

Печатная форма
Печатная форма

Как видно, печатная форма всего на одну страницу и большая часть данных статична - т.е. не будет меняться.

К динамическим данным можно отнести даты, номера договоров и доверенностей, ФИО сотрудников, названия подразделений.

С помощью этой команды сделаем себе шаблон печатной формы.

Создание шаблона печатной формы
Создание шаблона печатной формы

Получится следующее.

Полученный шаблон печатной формы
Полученный шаблон печатной формы

Что можно сделать дальше? Какие проблемы могут встречаться?

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

Критическая ошибка
Критическая ошибка

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

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

Шаблон с заменой динамических данных на символ звездочка
Шаблон с заменой динамических данных на символ звездочка

Этот вариант - довольно просто сделать. И в некоторых случаях это наилучшее решение.

Но, предлагаю пойти еще немного дальше и использовать переменные для проверки.

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

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

Пример по созданию переменных
Пример по созданию переменных

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

Шаблон с переменными
Шаблон с переменными

С каким шаблоном ПФ удобнее работать?

Тут можно использовать 2 варианта.

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

Второй - то шаблон, который хранится в самом .feature файле.

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

Во втором варианте - шаблон хранится в .feature файле и может быть довольно объемным. Поэтому сам сценарий становится менее читаемым. Зато все в одном месте - более удобно поддерживать и редактировать.

Печатные формы формируются в основном из документов, также справочников и других элементов конфигурации. И поэтому для проверки всех печатных форм документа можно использовать один .feature файл. В первом сценарии заполняем и проводим документ. А в следующих сценариях проверяем отдельно печатные формы. Структурно получается такой сценарий.

Структура .feature файла
Структура .feature файла

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

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

  • Проверка на возможность выполнения сценария

  • Создание необходимых переменных

  • Открытие печатной формы

  • Проверка печатной формы

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

То, что все сценарии по проверке ПФ имеют одинаковый формат - я считаю плюсом. Потому что с этим удобнее работать и поддерживать.

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

Комментарии (0)