Добрый день! В этой статье хочу порассуждать о тестировании печатных форм на платформе 1С с помощью инструмента Vanessa Automation.
Надеюсь - эта статья окажется полезной. Конечно хочется, чтобы вы поделитесь своими идеями, опытом и предложениями. Лично мне очень интересно получить обратную связь.
Что интересного в печатных формах?
На своем опыте могу сказать следующее - печатные формы (ПФ) очень разнообразны. Выражается это в разных форматах дат, различных данных таблиц, строковых данных и пр. Все эти данные можно разделить на динамические и статические. Для проверки статичных данных нам нужен только шаблон. А для проверки динамических можно использовать переменные. Либо использовать для проверки символ звездочка "*" и проверять печатную форму по шаблону. Для примера подготовил следующий пример.
Как видно, печатная форма всего на одну страницу и большая часть данных статична - т.е. не будет меняться.
К динамическим данным можно отнести даты, номера договоров и доверенностей, ФИО сотрудников, названия подразделений.
С помощью этой команды сделаем себе шаблон печатной формы.
Получится следующее.
Что можно сделать дальше? Какие проблемы могут встречаться?
Думаю, что критическая ошибка - та ошибка, которую нужно сразу детектировать. И для этого вполне будет достаточно примера, описанного выше, т.к. она появится сразу при открытии окна ПФ.
Но, конечно можно обойтись командой открытия ПФ. Это команда тоже справится с обнаружением данной ошибки.
Но, все же предлагаю идти вперед и заменить динамические данные на символ "*" и проверять ПФ по шаблону. Для примера заменил номер и дату в строке 41.
Этот вариант - довольно просто сделать. И в некоторых случаях это наилучшее решение.
Но, предлагаю пойти еще немного дальше и использовать переменные для проверки.
Как я писал выше, в печатной форме используются различные варианты дат. Для этого воспользуемся функцией Формат(). Будет очень удобно сделать отдельные переменные на день, месяц и год. Комбинирую их мы получим нужные варианты.
Для склонения падежей ФИО можно использовать функцию ПросклонятьФИО(). В ней достаточно в первом параметре передавать ФИО, а во втором порядковый номер необходимого падежа. Получится следующий код.
Остальные данные - такие как номер договора или акта, можно запомнить из экранной формы. Или запросом - смотря, что будет удобнее. Получается следующий шаблон.
С каким шаблоном ПФ удобнее работать?
Тут можно использовать 2 варианта.
Первый - это макет, который хранится в отдельном файле.
Второй - то шаблон, который хранится в самом .feature файле.
В первом варианте - сценарий становится довольно удобным и читаемым, но для его редактирования нужно открывать отдельный файл и делать изменения в нем.
Во втором варианте - шаблон хранится в .feature файле и может быть довольно объемным. Поэтому сам сценарий становится менее читаемым. Зато все в одном месте - более удобно поддерживать и редактировать.
Печатные формы формируются в основном из документов, также справочников и других элементов конфигурации. И поэтому для проверки всех печатных форм документа можно использовать один .feature файл. В первом сценарии заполняем и проводим документ. А в следующих сценариях проверяем отдельно печатные формы. Структурно получается такой сценарий.
В каждом сценарии печатной формы проверяем существование глобальной переменной - ссылки на документ. Если не она существует - то сразу вызываем исключение, потому что сценарий по созданию документа не дошел до сохранения переменной, а значит завершился с ошибкой. И получается, что нет смысла выполнять проверку печатных форм. Если же переменная со ссылкой на документ существует, то открываем нужный документ.
А далее идут пункты, которые уже были рассказаны выше. Получается всего 4 структурных блока.
Проверка на возможность выполнения сценария
Создание необходимых переменных
Открытие печатной формы
Проверка печатной формы
Единственное, что еще можно добавить - это удаление глобальной переменной перед выполнением сценария. Когда в коллекции становится много сценариев, то есть вероятность, что перед выполнением сценария будет существовать такая же переменная из предыдущего сценария. Что может привести к ошибке в сценарии. Поэтому на всякий случай их стоит удалять.
То, что все сценарии по проверке ПФ имеют одинаковый формат - я считаю плюсом. Потому что с этим удобнее работать и поддерживать.
На этом все - если у вас используется какой-то другой формат проверки, либо есть интересные предложения по улучшению существующего, то обязательно пишите!