Длинное предисловие
Наиболее удобным местом хранения информации по настройкам является встроенная справка в 1с, но редактировать ее крайне неудобно.
Особенно напрягает, когда приходится вставлять много картинок. С текстом еще ладно, форматирование при копировании сохраняется более-менее нормально, а вот вставка картинки очень неудобна, особенно если картинка в буфере обмена. Для того, чтобы ее вставить – надо сохранить на диск, в справке вставить картинку, выбрать в диалоге вставки. В общем и целом жутко не удобно…
Раньше я периодически искал обходные пути редактирования справки, но нормальных способов как-то не попадалось. Везде затраты на выполняемые действия либо равнялись, либо превосходили ручной труд.
Но как известно – лень двигатель прогресса, и чем больше лень, тем мощнее двигатель ))
Попалась задача мне: сделать синхронизацию календаря в УПП и в Outlook через EWS + мобильное приложение.
Задачу сделал, написал подробную инструкцию, в ворде по мобильному приложению занимала 83 страницы, 57 картинок перемешано с текстом. Инструкция по синхронизации с EWS Outlook занимала 15 страниц +18 картинок.
Получилось круто и чтоб эту инструкцию по работе все подсистемы не потерять – решил ее встроить в справку плана обмена. Но как представил сколько придется проделать работы, чтобы перенести ее нормально в справку – такая лень одолела, что аж жуть.
Тут во мне как никогда заиграли гены инженера, вручную все это делать очень не хотелось, по примерной оценке – это 3-4 часа даром потраченного времени. Прошерстил интернет, нормального ничего не нашел, но получился час потраченного времени.
Решил сделать перерыв, мозг отдохнул и выдал гениальную идею: справку можно выгрузить в файлы, подменить ее и загрузить обратно.
Попробовал это сделать на внешней обработке – все получилось, но картинки сохранялись в «хранилище обработки», т.е. когда я код справки вставлял в план обмена – в конфигураторе все отлично показывалось до перезапуска, а в режиме предприятия были битые картинки.
Единственный путь дальше – это выгрузка всей конфигурации в файлы.
Для тестов создал пустую базу, добавил в ней объект и справку с небольшим текстом и картинкой для тестов, выгрузил, подменил, загрузил обратно и чудо: справка была с картинками в исходном форматировании и потратил я на это минут 10 от силы. Моей радости не было предела, инженер внутри ликовал!
Но следующая мысль омрачила радость: придется выгружать и загружать полностью всю конфигурацию, что является сильно большой проблемой, особенно для УПП, ERP, КА и т.п.
Еще один перерыв и снова гениальная мысль: можно создать пустую конфигурацию, создать в ней объект с нужным именем, сделать в нем тестовую справку, выгрузить в файлы, подменить справку, загрузить из файлов и потом сравнить и объединить с исходной конфигурацией, перенеся только справочную информацию.
Быстренько набросал тестовую справку, проделал эту операцию и справка после сравнения и объединения перенеслась со всеми картинками и форматированием, прекрасно отображалась и в конфигураторе и в режиме предприятия.
Радости было меньше, но все же ))
Подробное описание алгоритма переноса справки из ворда
Итак, для того, чтобы перенести текст, с картинками и форматированием в ворд необходимо этот ворд сохранить в html
Кстати говоря, не обязательно из ворда, наша задача получить html с картинками, который можно будет подменить в справке, т.е. можно взять и готовую html страницу и все что угодно, что можно сохранить в html.
Возьмем для примера какую-нибудь большую, но более обезличенную справку с другого проекта, с меньшим количеством персональных данных проекта )))
Далее я пытался сохранить это в html средствами ворда. Первоначально не подошло то, что ворд сохраняет html не так, как надо: он картинки отображает в imagedata, а 1С это не понимает.
Через настройки сохранения ворда удалось добиться сохранения картинок в теге IMG, который нужен для 1С, но напрягало обилие ненужной информации: определения стилей, ссылки на другие ресурсы, обилие комментариев. В общем читать и разбираться в этом html было не удобно.
Стал искать другие способы сконвертировать ворд в html, прошелся по разным онлайн сервисам в интернете. Где-то не очень сохраняло, где-то без картинок, где-то также как ворд.
Из всех – понравился только сервис https://document.online-convert.com
Он конвертировал ворд в простой до безобразия html нужной структуры.
Не обязательно использовать прямо этот сервис, может кто еще лучше найдет.
Переходим на страницу https://document.online-convert.com/ru/convert/docx-to-html
Загружаем нужный ворд и и нажимаем начать конвертирование. После завершении конвертирования сервис предложит сохранить архив с содержимым html.
Соглашаемся и сохраняем в папку, далее распаковываем архив. В нем будет один html и куча картинок, которые были у Вас в ворде.
По структуре html получился удивительно простым и понятным, ничего лишнего. Аж приятно глазу смотреть на него.
Далее необходимо создать пустую конфигурацию обязательно с режимом совместимости как в исходной базе и желательно на такой же версии платформы.
В новой конфигурации создаем один нужный нам объект. Я покажу на примере демо УПП, лучше скопировать имя из исходной конфигурации, так проще будет потом при сравнении объединении:
Далее, чтобы выгрузился пример справки – добавим в нее текст и картинку:
После чего сохраняем конфигурацию и выгружаем в файлы через Конфигурация – выгрузить конфигурацию в файлы.
Выбираем пустую папку и выгружаем, в папке находим наш справочник и его выгруженную справку.
Нам необходимо подготовить ранее сформированный html в таком же виде
Первое что делаем – копируем имя папки, создаем в папке, сконвертированным на сайте
и переносим в новую папку все файлы изображения
Теперь если открыть html «Инструкция МП склад.html», то в нем все изображения будут битые, потому что мы перенести файлы изображений, а пути не поменяли в самом файле html
Поэтому открываем файл «Инструкция МП склад.html» в любом текстовом редакторе.
Я предпочитаю Notepad++, т.к. в нем удобно и куча всяких разных плагинов есть.
Далее надо заменить путь к картинке, добавив папку:
Проще всего глобальным поиском заменить строку <IMG SRC=" на строку <IMG SRC="_files/
Так и сделаем, заменяем, сохраняем изменения в файле и открываем еще раз файл «Инструкция МП склад.html» в браузере, убеждаемся, что все картинки на месте
Папка с картинками готова, теперь необходимо переименовать файл «Инструкция МП склад.html» в ru.html
Далее удаляем файл ru.html и папку _files в выгруженной справки из пустой конфигурации.
И копируем на ее место подготовленные файлы.
Далее необходимо загрузить конфигурацию из файлов:
После чего в справке нашего объекта должен появиться текст с картинками из ворда:
Чтобы перенести эту справку в УПП – выгружаем cf пустой конфигурации в файл
Далее заходим в конфигуратор УПП и сравниваем с пустой конфигурацией:
Откроется окно сравнения и объединения конфигураций, в нем снимаем все галки, кроме справочной информации нужного объекта (для этого, кстати, мы и называли справочник в пустой конфигурации точно также, чтобы при сравнении они были сопоставлены по именам.
Нажимаем выполнить, после чего зайдем в справку нашего объекта и проверим ее:
Обновим конфигурацию базы данных и проверим справку в режиме предприятия
Ура!!! Все работает, громадная справка быстро и легко перенесена в конфигурацию!
Краткий алгоритм действий по переносу справки из ворд
1. Переходим на страницу https://document.online-convert.com/ru/convert/docx-to-html
Загружаем нужный ворд и и нажимаем начать конвертирование. После завершении конвертирования сервис предложит сохранить архив с содержимым html.
2. Распаковываем архив с сконвертированным файлом и видим один html и кучу файлов картинок.
3. Создаем пустую конфигурацию обязательно с режимом совместимости как в исходной базе и желательно на такой же версии платформы.
В пустой конфигурации создаем объект с таким же именем, в который надо поместит справку (в нашем примере Справочник.МойСправочникСоСправкой).
В справочнике заполняем справку небольшим текстом и одной или несколькими картинками.
Выгружаем пустую конфигурацию в ФАЙЛЫ через меню Конфигурация - Выгрузить конфигурацию в файлы.
Находим нашу справку в каталоге выгрузки конфигурации, в папке должны лежать файл ru.html и папка _files с изображениями справки
4. Идем в папку с сконвертированной справкой в пункте 2.
Создаем там папку с именем _files и переносим туда все картинки.
Открываем html сконвертированной справки в любом текстовом редакторе и заменяем строку <IMG SRC=" на строку <IMG SRC="_files/
Переименовываем файл html в ru.html
Запускам файл ru.html в браузере и убеждаемся, что все картинки и текст с нужным форматированием на месте
5. Удаляем файл ru.html и папку _files с изображениями в каталоге распакованной пустой конфигурации, полученной на шаге 3.
Копируем подготовленный файл ru.html и папку _files с изображениями из пункта 4 в каталог файлов распакованной конфигурации.
6. Загружаем конфигурацию из файлов через меню конфигурация - Загрузить конфигурацию из файлов.
7. Проверяем, что справка загрузилась в Справочник.МойСправочникСоСправкой корректно.
8. Сохраняем пустую конфигурацию с загруженной справкой в файл через меню Конфигурация - Сохранить конфигурацию в файл.
9. Открываем конфигуратор базы приемника, нажимаем меню Конфигурация - Сравнить, объединить с конфигурацией из файла.
10. В открывшемся окне сравнения конфигураций снимаем ВСЕ галки и оставляет только флажок на Справочной информации нужного объекта.
Объединяем.
11. Проверяем справку в конфигураторе, обновляем и проверяем справку в режиме предприятия.
12. Справка перенесена, радуемся!
Послесловие
p/s/ если не сложно – поддержите статью плюсом, пусть об этом способе узнают как можно больше народу.