Составить карту тестирования функционала сохранения файла ms word

Обновлено: 07.07.2024

Исполняем обязанности по получению сведений о своих бенефициарных владельцах

Небольшая вводная

Начиная с 21 декабря 2016 года вступили изменения в ФЗ РФ «О противодействии легализации (отмыванию) доходов, полученных преступным путем, и финансированию терроризма», касательно обязанности юридического лица по раскрытию информации о своих бенефициарных владельцах. В связи с этим, многие компании направляют запросы по цепочке владения с целью выяснения своих бенефициарных владельцев. Кто-то формирует запросы на бумаге, кто-то рассылает электронные письма.

На наш взгляд, надлежащим доказательством исполнения обязанности «знай своего бенефициарного владельца» является наличие письма на бумаге с отметкой об отправке/вручении. Данные письма в идеале должны готовиться не реже одного раза в год. Если в ведении юриста находится всего несколько компаний, то составление писем не составляет особого труда. Но, если компаний больше 3-х десятков, составление писем превращается в уничтожающую позитив рутину. Дело усугубляется тем, что реквизиты писем постоянно меняются: подписанты увольняются, компании перерегистрируются, меняя адреса. Все это надо учитывать. Как здесь могут помочь навыки программирования на python?

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

Структура письма в word. Модуль python docxtpl

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

Текст письма от общества своему участнику/акционеру будет примерно следующим:


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

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


Сама программа будет иметь следующий вид:


Вначале мы импортируем модуль для работы с документами формата Word. Далее мы открываем шаблон, и в поле директор, которое бы обозначили ранее в самом шаблоне, вносим ФИО директора. В конце документ сохраняется под новым именем.

Таким образом, чтобы заполнить все поля в файле-шаблоне Word нам для начала необходимо определить все поля ввода в самом шаблоне скобками <> вместе с переменными и потом написать программу. Код будет примерно следующим:


На выходе при исполнении программы мы получим готовый заполненный документ.

можно открывать файл, вводя относительный путь к нему
еще могут быть фильтры на файлы. например, в диалоге открытия показываются только *.bmp файлы, а мы вводим существующий image.jpg - и он попытается открыться.
также есть сброс фильтра по *.* :)

Идеальный тестировщик - человек с золотыми руками, растущими из ж. Файлы в на китайском, арабском( отличные от англ. и русского)
Файл из архива. Файл длинной пути больше чем допустимая длина для WinXP

Файлы в на китайском, арабском( отличные от англ. и русского)

Угу, такой пунктик есть, в шаблончике он называется "I18N (name of the file and folder)"
Не совсем понял, если я укажу в диалоге "Open" файл : file.zip , то программа попробует его открыть.. Это имеется в виду?
То есть не разархивирует архив, давая возможность выбрать из списка файлов в архиве.. а просто попробует "file.zip" обработать как обычный файл.

Файл длинной пути больше чем допустимая длина для WinXP

Такой вот пунктик.. "The name of the file is long ( 16/32/64/128/256 symbols )" . Мммм, добавлю троеточие, чтобы было ясно, что 256 - это не предел :)
Идеальный тестировщик - человек с золотыми руками, растущими из ж. Идеальный тестировщик - человек с золотыми руками, растущими из ж. Можно добавить(если я не повторяюсь конечно):
Запароленые/шифрованные файлы(Оpen),
Файл с названием содержащим "проблемные" символы(Save As),
Файлы с галкой "только чтение", "скрытый"(Оpen),
Отмена сохранения (нажать сохранить как - затем прервать действие)(Save As),
Сохранить в папку в которую запрещена запись(Save As),
Сохранить заменой (заменить по совпадающему названию)(Save As),
Открыть несколько файлов подряд(Оpen) как вариант - открыть несколько одинаковых, затем разных.
Из почты(сайта) открыть файл (Оpen).

Отмена сохранения (нажать сохранить как - затем прервать действие)(Save As),

Идеальный тестировщик - человек с золотыми руками, растущими из ж. Идеальный тестировщик - человек с золотыми руками, растущими из ж. Не возможно открыть/сохранить файл - templates(file system).html.

Не возможно открыть/сохранить файл - templates(file system).html.

Ещё у кого-то не открывается? У меня вроде всё ОК.. ммм, Давайте я вам на мыло вышлю? мыло можно в личке.. и иным каким способом переслать ;)
Идеальный тестировщик - человек с золотыми руками, растущими из ж.

Отмена сохранения (нажать сохранить как - затем прервать действие)(Save As),

Как вариант сохранять оооочень объемный файл на флешку (дабы это действо заняло время) и выдернуть ее сразу после запуска процесса (чисто технический вариант). Только нужно быть очень быстрым и сохранять большой файл :)

Для внешних (Shared folder и Mapped disk) можно проверить что произойдет при сохранении/открытии файла:
* если машина физически недоступна,
* если администратор закрывает форсированно shared folder или прерывает сессию.

При сохранении (скачивании) файла с определенным расширением (обработчиком) возможна проблема, в том что файл исполняется вместо сохранения или наоборот.

Для внешних (Shared folder и Mapped disk) можно проверить что произойдет при сохранении/открытии файла:
* если машина физически недоступна,
* если администратор закрывает форсированно shared folder или прерывает сессию.

При сохранении (скачивании) файла с определенным расширением (обработчиком) возможна проблема, в том что файл исполняется вместо сохранения или наоборот.

MS Word регулярно подкидывает нам «сюрпризы»: «съехавшие» скриншоты, «плывущие» таблицы, пустые страницы при печати. Эта статья о том, как мы искали замену MS Word, (спойлер — не нашли), а нашли возможность глобально улучшить наш процесс работы с документацией.

В Uniscan Research мы делаем наукоёмкие приборы серийным продуктом. Компания работает в секторе B2G (business-to-government) и B2C (business-to-client).

Наш отдел разрабатывает конструкторскую и пользовательскую документацию на разрабатываемые изделия, документы для сертификации, маркетинговые материалы, дизайн и оформление офиса (навигация, таблички на двери).

C документами в секторе B2C есть свобода выбора формата, названия и содержания документации. В секторе B2G около 70% документации, которую мы разрабатываем, должна быть оформлена в соответствии с требованиями ЕСКД и представлена на согласование заказчику в формате DOCX.

Пользователю мы передаем всю эксплуатационную документацию в напечатанном виде, поэтому все документы проходят предпечатную подготовку. Целевых форматов у наших документов два: DOCX и PDF.

Для выполнения наших задач в отделе традиционно в течение многих лет использовался MS Word.

При каждой новой правке свёрстанного в MS Word документа примерно в половине случаев «съезжают» скриншоты, «плывут» таблицы с иконками, а при печати документа и вовсе внезапно появляются невидимые пустые страницы. Эти операции по вёрстке документа отнимают у автора документа не только время, но и желание заниматься творчеством — разработкой новых документов.

Во время очередного поиска невидимых пустых страниц в документе DOCX в нашем отделе появилась идея попробовать новый инструмент разработки документации. Мы хотели сократить время на вёрстку и предпечатную подготовку документа.

В итоге нам так и не удалось полностью уйти от использования MS Word, но в процессе поисков мы построили новую схему работы с документацией.

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

Выбор инструмента

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

  • Dita
  • DocBook XML
  • Confluence

Confluence с самого начала порадовал WYSIWYG-редактором. В среднем техническим писателям потребовалось около недели на освоение инструмента, вёрстка документов «не по ГОСТу» давалась проще.

В B2G-проектах нам важен PDF как формат для пользовательской документации. Поэтому мы сразу установили соответствующий плагин для Confluence — Scroll PDF Exporter. С его помощью мы попробовали создать пользовательские шаблоны с необходимыми параметрами. Результатами тестирования остались довольны: один из документов с большим количеством скриншотов и графических элементов мы верстали в MS Word около недели; в Confluence тот же самый документ у нас получилось сверстать за 2 дня и добиться при этом лучшего визуального представления.

Ещё мы попытались настроить шаблон для Scroll Word Exporter таким образом, чтобы на выходе получить документ, оформленный по всем правилам ЕСКД. Спустя два дня чтения справочников Confluence и Scroll PDF Exporter и попыток настроить действующий шаблон технических условий, мы поняли, что этот инструмент не подходит для разработки документов, оформляемых в соответствии с требованиями ЕСКД.

Так, например, у нас не получилось сделать нумерованные нежирные заголовки второго уровня, чтобы текст был не заголовком, а абзацем. Приходилось вручную писать номер пункта и использовать стиль «абзац». Нельзя было оформить маркированные списки с тире (только круги, квадраты), нумерованные списки оформлялись без точки, а буквенные — только с латинскими буквами. Абзацные отступы настраивались только вручную.

Спустя несколько месяцев после того, как мы начали осваивать Confluence, разработчики инструмента реализовали функцию редактирования документов в их исходном формате. Это позволило нам хранить наши «гостовские» документы и создавать новые документы, не требующие строгого оформления, в одном и том же месте. Файлы MS Word хранятся в Confluence как вложения, при редактировании открываются и сохраняются в MS Word на ПК пользователя, а при сохранении новая версия автоматически заливается в Confluence.

Так у нас появилась идея использовать Confluence в качестве инструмента, который одновременно бы решал три задачи:

  1. Создание базы знаний.
  2. Разработка, хранение и актуализация документации, разрабатываемой не по ГОСТу.
  3. Хранение и актуализация документации, разрабатываемой по ГОСТу.

Потенциал Confluence

Наши ожидания от функционала Confluence оправдались не полностью, но после завершения тестирования сформировалось в целом положительное отношение к этому инструменту. Ниже мы сформулировали его основные плюсы для нашего отдела:

  1. Настройка и поддержка инструмента своими силами.
  2. Простота освоения.
  3. Возможность организовать базу знаний о продуктах компании и хранить всю свёрстанную документацию в DOCX и PDF в одном месте.
  4. Поддержка версионности документов.
  5. Возможность использования технологии единого источника.
  6. Возможность совместной работы разработчиков и технических писателей над документами.
  7. Хранение рабочих документов и информации в одном месте.
  8. Возможность разрабатывать документы в любое время из любой точки мира.

Внедрение

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

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

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

Технические проблемы

Внедрение Confluence в целом проходило достаточно гладко, но были и проблемы.

Вёрстка и предпечатная подготовка документов

«Раньше я делал это в MS Word за пару секунд. Как сделать то же самое в Confluence?» — такой вопрос мы задавали себе каждый день в течение всего времени тестирования.

Так, было совсем неочевидно, как выровнять содержимое таблицы по вертикали или назначить иконке размер меньше 16 px.

Действительно, базовый набор функций форматирования страниц в WYSIWYG-редакторе Confluence в значительной степени проигрывает MS Word, однако функционал можно значительно расширить, если зайти в режим редактирования исходного кода и работать напрямую с HTML-кодом.

Мы читали статьи, смотрели обучающие видеоролики по HTML-вёрстке и обменивались найденными решениями. Мы создали отдельную страницу в Confluence, куда разместили полезную информацию по работе с этим инструментом.

image

Обновление версии Confluence и плагинов

После первого обновления основного плагина Scroll PDF Exporter слетело 80% макросов и поехала структура страниц в Confluence. Позже выяснилось, что случилось так из-за нового функционала плагина. Всем отделом мы восстанавливали структуру документов несколько дней. После этого мы составили план обновления на будущее, которого придерживаемся до сих пор:

  1. Проводите обновление в пятницу, когда выполнен основной пласт работ за неделю, чтобы иметь возможность устранить возможные проблемы на выходных.
  2. Сделайте рассылку всем пользователям системы, чтобы сообщить им о времени запланированного обновления.
  3. Перед обновлением выполните резервное копирование сервера.
  4. Обновите версию Confluence.
  5. Протестируйте сервер, убедитесь, что вся информация на месте, работают ссылки на внешние и внутренние ресурсы.
  6. При необходимости обновить плагины снова выполните резервное копирование сервера.
  7. Проводите обновление плагинов по принципу один плагин за раз.
  8. Тестируйте работу плагина сразу после обновления.

Массовые уведомления

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

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

Вдобавок к этому Confluence любезно делал еженедельную рассылку пользователям с перечислением самых популярных страниц Confluence. К счастью, эта проблема уже широко была освещена в интернете. Решение — отключить соответствующие уведомления в настройках системы:

image

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

Стабильность сервера

image

Для тестирования Confluence мы развернули Windows-сервер. На первоначальных этапах сервер часто «падал». Часть проблемы оказалась в недостаточном объёме оперативной памяти на сервере (рекомендованный объём 11-12 ГБ). Оставшиеся проблемы ушли, когда мы включили рекомендованные в таких случаях настройки системы.

Сейчас сервер работает достаточно стабильно — нарушение в работе случаются примерно 1 раз в 2 месяца. В случае сбоя достаточно перезагрузки для его восстановления.

Управление документацией в Confluence

На сегодняшний день в Confluence совместно работают технические писатели, программисты, электронщики, QA.

Мы планировали полностью отказаться от MS Word, разрабатывать документы исключительно в Confluence и преобразовывать их в DOCX и PDF. В реальности оказалось, что можно обойтись без длительного процесса переноса всей существующей документации в новый формат и последующей настройки шаблонов в Scroll PDF/Word Exporter. По нашим оценкам нам потребовалось бы на это около полугода. Гораздо проще оказалось перенести все разработанные документы в формате MS Word в Confluence и поддерживать их там же.

Мы решили не ждать от Confluence чудесного форматирования по всем требованиям ЕСКД и просто разделили все пользовательские документы условно на документы для «госзаказчика» и документы для «не госзаказчика».

Первые мы создаём в формате DOCX, храним и актуализируем в Confluence. Вторые разрабатываем прямо в Confluence, экспортируем в PDF при необходимости.

Благодаря встроенным макросам мы используем технологию единого источника в пользовательской документации — теперь не приходится вручную менять один параметр в нескольких версиях документов.

Удобный WYSIWYG-редактор позволяет легче вносить изменения в готовый документ — скриншоты, иконки и графические элементы остаются на месте.

image

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

Для работы вне офиса не нужно настраивать удалённый доступ. Чтобы иметь возможность поработать из дома, нужен только интернет.

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

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

Что ещё хочется сделать

В настоящий момент мы настраиваем процесс согласования страниц Confluence с помощью плагина Comala Workflow. Однако, этот плагин не работает с вложениями MS Word. Такие документы мы согласовываем с помощью комментариев к версиям. Сейчас мы рассматриваем варианты настройки автоматического согласования вложений DOCX. Хочется, чтобы процесс согласования и утверждения можно было одновременно использовать как со страницами Confluence, так и с вложениями формата DOCX.

Когда настроим автоматическое согласование вложений, попробуем сделать быструю конвертацию из MS Word в PDF. А дальше — отправку документов на наш сервер печатной продукции, откуда документы забирает в печать типография.

Инструкция по работе с внезапными находками

Мы так и не сумели отказаться от MS Word, но в процессе поисков замены мы внезапно нашли нечто большее. Confluence объединил разработчиков разных отделов, сформировал базу знаний компании и стал хранилищем всех документов компании, независимо от их формата.

У нас в компании есть принцип: в любой непонятной ситуации принимай решения системно. Мы считаем, что решение, которое опирается на модель — лучше, чем то, что основывается на мнении экспертов или интуиции.

В случае с Confluence нам пригодилась модель Эрика Риса из «The Lean Startup». В продуктовой разработке она помогает делать pivot, менять направление развития продукта. А в задаче поиска замены MS Word — примерять новый инструмент шире, находить смежную пользу.

Значительная часть текстовых документов сегодня создаётся и редактируется в программе Microsoft Word. Наличие этой программы практически на каждом компьютере даёт возможность автоматизировать печать, обработку и экспорт текстовых документов в PDF, используя API Microsoft Word.


Этот код выглядит очень просто. Но для автоматизации печати списка документов следует учесть ряд нюансов:

Доработанный вариант нашей программы будет выглядеть так:


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

1. Этот код не будет работать, если входной файл имеет атрибут «Read only».
2. Производительность вашей программы можно увеличить в несколько раз, если открывать и закрывать только документы, а приложение Microsoft Word оставлять открытым.
3. Многим пользователям нужна возможность печати только заданного диапазона страниц, а не всего документа целиком, а так же возможность напечатать несколько копий документа.
4. Этот код не будет работать, если ваша программа запущена из Windows Tasks Scheduler или от имени Windows Service.

В этой статье я не стану рассказывать о том, как решить эти четыре задачи, что бы не делать жизнь моих читателей слишком скучной. Скажу лишь, что в программах Print Conductor, FolderMill и 2Printer они были мной успешно решены.

Для конвертирования документа в PDF нужно заменить функцию PrintOut на ExportAsFixedFormat. После этого наш код будет выглядеть так:


Этот пример будет работать, если на вашем компьютере Microsoft Word 2007 SP2 или его более новая версия.

Функция ExportAsFixedFormat не будет работать, если на компьютере не установлено ни одного принтера. Либо если один из установленных принтеров не назначен в качестве system default printer.

Код экспорта документов в PDF можно улучшить, реализовав возможность экспорта части страниц документа, а так же возможность экспорта документов в PDF/A. Обе эти возможности компания Microsoft реализовала в функции ExportAsFixedFormat.

Примеры коммерческих приложений, использующих этот код для конвертирования документов в PDF: DocuFreezer и FolderMill.

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

Сохранение изменений в виде нового файла

Для сохранения нового документа в виде файла или существующего документа в виде нового файла (с другим именем и/или в другой папке) выполните следующие действия.

Сохранение файла в другом формате

По умолчанию все файлы сохраняются в том же формате, в котором были открыты. Новые документы и файлы Word 2007 сохраняются в формате Документ Word, файлы предыдущих версий - в формате Документ Word 97-2003, файлы RTF - как Текст в формате RTF и т.д.

При сохранении можно изменить формат файла. Для этого в окне Сохранение документа щелкните по кнопке с указанием типа файла и в появившемся меню выберите необходимый тип (рис. 2.17).

Сохранение файла в другом формате

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

Особенности сохранения файлов предыдущих версий Word в формате Word 2007

При сохранении файлов Word 97, Word 2000, Word 2002, Word 2003 в формате Документ Word 2007 можно включить режим совместимости с предыдущими версиями, т.е. отключить новые возможности Word 2007. Это необходимо сделать в том случае, если файл в последующем будет сохраняться для пользователей, не имеющих Word 2007. Для отключения новых возможностей в окне Сохранение документа (рис. 2.18) установите флажок Поддерживать совместимость с Word 97-2003.

Отключение новых возможностей Word 2007 при сохранении документа


увеличить изображение
Рис. 2.18. Отключение новых возможностей Word 2007 при сохранении документа

Предупреждение о возможных изменениях в документе


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

Особенности сохранения документов Word 2007 в формате предыдущих версий Word

Если документ был создан в Word 2007, а сохраняется в формате Документ Word 97-2003, в нем автоматически будут произведены некоторые изменения.

Некоторые данные в стандартных блоках документа, а также элементах автотекста могут быть утеряны.

Ссылки и списки литературы будут преобразованы в статический текст и перестанут автоматически обновляться.

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

Формулы будут преобразованы в изображения. Их редактирование будет невозможным, пока документ не будет преобразован в новый формат файла.

Рисунки SmartArt будут преобразованы в один объект, который нельзя редактировать.

Положение некоторых надписей изменится.

Для проверки совместимости текущего документа с предыдущими версиями Word нажмите кнопку Office, выберите команду Подготовить и в появившемся подчиненном меню – команду Проверка совместимости.

В окне результатов проверки совместимости (рис. 2.20) будет отображен список несовместимых элементов. Для продолжения работы нажмите кнопку Продолжить.

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