Конвертер Markdown для 1С: Word, PDF, HTML, TXT - таблицы, формулы, картинки
Разработка - Инструментарий разработчика
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
ИИ пишет в Markdown - бизнес работает в Word и PDF
ИИ-ассистенты прочно вошли в подготовку рабочей документации: регламенты, должностные инструкции, описания процессов, технические задания и статьи всё чаще сначала рождаются в диалоге с моделью, а до согласования доходят уже в переработанном виде. Форматом "по умолчанию" для такого текста стал Markdown - его отдают ChatGPT, Claude, Cursor и другие ассистенты, на нём ведутся вики, README и документация проектов. Однако внутри организаций документооборот живёт в Word и PDF: согласование, замечания рецензентов, печати и фирменные бланки требуют именно doc-файл или pdf, а не текст с решётками и звёздочками.
Копирование через буфер обмена теряет разметку: заголовки превращаются в обычные строки, таблицы разваливаются, код теряет моноширинный шрифт. Онлайн-конвертеры решают задачу, но требуют отправлять текст на внешний сервис - это неприемлемо для документов под NDA и для закрытых контуров. Держать на рабочем месте стороннюю утилиту неизвестной судьбы тоже не всякий ИТ-отдел позволит, особенно когда речь идёт об отчётности, содержащей данные организации.
Предлагаемая обработка закрывает этот разрыв: вставьте Markdown-текст (или загрузите файл.md), при необходимости поправьте оформление - и одним нажатием кнопки получите готовый документ Word или PDF (общий вид - на рис. 1).
Конвертация выполняется локально, на компьютере пользователя, через установленный Word: никаких внешних компонентов, библиотек и тем более интернет-сервисов. Для быстрой демонстрации в обработку встроена кнопка "Вставить тестовый текст", которая заполняет поле приёмочным примером со всеми поддерживаемыми элементами разметки.
Рис. 1. Обработка в работе: слева - форма с Markdown-текстом, справа - результат конвертации.
Что умеет конвертер
Парсер написан на встроенном языке 1С и не зависит от внешних библиотек, поэтому обработку можно подключить к любой конфигурации на управляемых формах и получить предсказуемый результат. Поддерживается полный набор блоков, из которых на практике состоит рабочая документация: от заголовков шести уровней и таблиц до блоков кода, цитат и формул. Разбор внутристрочной разметки выполняется посимвольно с корректной обработкой экранирования, поэтому "цена* 5 долларов" с незамкнутой звёздочкой останется текстом, а не превратится в курсив.
Недоступная картинка тоже не станет сбоем: она выводится альтернативным текстом в квадратных скобках, а некорректный адрес ссылки остаётся обычным текстом.
Таблица 1. Поддерживаемые элементы Markdown и результат конвертации
| Элемент Markdown | Результат в Word/PDF | Чем управляется |
| Заголовки: # ... ###### (шесть уровней) | Настоящие стили Word: встроенные "Заголовок 1–6" или стили из шаблона .dotx | Таблица стилей заголовков |
| **жирный**, *курсив*, ~~зачёркнутый~~ | Полужирное курсивное и з |
- |
| `строчный код` | Моноширинный шрифт (по умолчанию Consolas) | Шрифт и размер кода |
| Списки: -, *, +, 1. | Настоящие списки Word или текстовые маркеры с собственной нумерацией уровней |
Режим списков, отступы, пробелы на уровень |
| Таблицы, включая экранирование | | Таблица с границами; жирная шапка с заливкой; разметка внутри ячеек | Цвет шапки |
| ``` блоки кода ``` | Моноширинный шрифт, отступ, фоновая заливка | Шрифт, отступ, цвет фона |
| > Цитаты | Курсив, левая линия-граница, фоновая заливка | Отступ, курсив, цвета |
| Картинки:  | Вставка с ограничением максимальной ширины; относительные пути - от базового каталога | Базовый каталог, максимальная ширина |
| Ссылки: [текст](адрес) | Настоящие гиперссылки Word | - |
| Формулы: $...$ и $$...$$ | Unicode-символы, под- и надстрочные знаки | - |
| Линии: --- | Горизонтальная линия | - |

Рис. 2. Таблица этапов из тестового документа: жирная шапка с заливкой, разметка внутри ячеек
Отдельно стоит сказать о сохранении результата: конвертер пишет не только DOCX, но и DOC, DOCM, RTF, PDF, XPS, HTML и TXT - формат выбирается расширением файла результата. Если путь не указан, документ просто открывается для просмотра.
Это удобно для цепочки "посмотрел - поправил - сохранил как PDF для рассылки": одна и та же настройка оформления годится и для рабочего файла на согласование, и для финальной версии на публикацию. При массовом формировании файлов показ документа отключается, а формат задаётся расширением: pdf - для рассылки, rtf - для обмена; для старых версий Office остался резервный вызов сохранения. Так, таблица этапов из тестового примера превращается в аккуратную сетку с жирной шапкой (рис. 2), а ссылки, картинки и блок кода bsl - в живые гиперссылки, вставленные изображения и моноширинный код (рис. 3).
Рис. 3. До и после: в разметке - гиперссылка, картинка и блок кода bsl; в документе - живая ссылка, вставленная схема и моноширинный код
Архитектура: клиентский COM вместо серверного
Конвертация выполняется на компьютере пользователя - обработка запускает установленный Word через COM и строит документ. На сервере ничего настраивать не нужно: ни DCOM, ни доступных серверу путей, ни Office на сервере приложений. Обратная сторона - веб-клиент не поддерживается. Весь конвейер (замены, разбор, вывод) собран в модуле формы, и при желании его легко доработать.
Работа без интернета и обратная связь (только по желанию)
Конвейер конвертации - от замен до сохранения файла - не выполняет никаких сетевых вызовов. Обработка полностью пригодна для закрытых контуров: недоступность сети никак не влияет на конвертацию.
Для связи с автором в обработке есть две необязательные кнопки: "Регистрация" и "Обратная связь".
-
Страница портала открывается во встроенном поле HTML - это просто просмотр, никакие данные при этом не отправляются.
-
Отзыв отправляется только после того, как пользователь сам нажмет кнопку "Отправить отзыв". В этом случае на сервер разработчика уходят: текст отзыва, постоянный идентификатор установки (GUID в хранилище общих настроек) и, для авторизованных на портале, e-mail с токеном сессии.
Исходный текст документа никогда не покидает компьютер пользователя - ни при конвертации, ни при использовании обратной связи.
Требования к среде
Обработка рассчитана на типовое рабочее место бухгалтера, аналитика или разработчика: Windows с локально установленным офисным пакетом и подключение к базе через тонкий либо толстый клиент. Никаких изменений конфигурации, дополнительных ролей или расширений не требуется - обработка открывается через "Файл - Открыть" как обычная внешняя обработка.
Таблица 2. Требования к среде
| Компонент | Требование |
| Операционная система | Windows - конвертация выполняется через COM-автоматизацию |
| Microsoft Word | 2010+, установленный на рабочем месте пользователя |
| Платформа 1С | 1С:Предприятие 8.3.10+ |
| Режим запуска | Толстый или тонкий клиент |
| Веб-клиент | Не поддерживается: COM-объекты в веб-клиенте недоступны |
| Конфигурация | Любая на управляемых формах; зависимости от БСП нет |
| Интернет | Не требуется: конвертация полностью локальна; сеть нужна только необязательной обратной связи с автором |
Установка
Изменений в конфигурации не требуется, подключение возможно двумя способами.
Разовый запуск - "Файл - Открыть" в любой конфигурации на управляемых формах: подходит для знакомства и разовой конвертации. При первом открытии платформа предупредит о внешней обработке: если она будет запущена в безопасном режиме, создание COM-объекта Word окажется заблокировано - безопасный режим для этой обработки должен быть отключён.
Постоянное использование - "Администрирование - Печатные формы, отчеты и обработки - Дополнительные отчеты и обработки" в конфигурациях со встроенной БСП: обработка сама формирует сведения для регистрации (вид, команду открытия формы, версию), кнопка "Добавить из файла" заполняет их автоматически, а безопасный режим уже отключён в сведениях - как того требует COM-автоматизация.
Настройка без правки кода
Вся настройка выполняется в форме обработки и не требует изменения кода: на вкладках "Замены", "Стили заголовков" и "Оформление" (рис. 4) значения по умолчанию подобраны под типовой офисный документ, а от них удобно отступать в сторону корпоративных стандартов. Кнопка "Сбросить настройки" возвращает форму к исходному состоянию после экспериментов. Состав настраиваемых блоков следующий.
Таблица 3. Блоки настроек конвертера
| Блок | Что настраивается |
| Замены перед разбором | Таблица "шаблон → значение": обычные строки и регулярные выражения, флаги "регулярное" и "учитывать регистр" |
| Стили заголовков | Маппинг "уровень Markdown → стиль Word": код встроенного стиля или имя стиля из шаблона |
| Шаблон документа | Путь к .dotx/.dot - фирменный бланк со стилями и колонтитулами организации |
| Шрифты и цвета | Шрифты текста и кода, фоны блока кода, цитат и шапки таблиц (строка вида "242, 242, 242") |
| Списки | Режим: настоящие списки Word или текстовые маркеры; отступы, пробелы на уровень вложенности |
| Прочее | Интервал после абзаца, максимальная ширина картинок, показ документа после конвертации |
Из коробки работает набор типографских замен: "ёлочки" приводятся к прямым кавычкам, длинное тире - к дефису, записи (c), (r) и (tm) превращаются в ©, ® и ™, а альтернативная запись жирного через двойное подчёркивание __текст__ нормализуется к каноническим звёздочкам регулярным выражением. Замены применяются к тексту до разбора, поэтому ими же удобно вводить доменную лексику - например, расшифровывать внутренние сокращения.
Стили заголовков задаются кодом встроенного стиля (wdStyleHeading1 ... wdStyleHeading6) - такие коды языконезависимы, поэтому обработка одинаково работает в английском и русском Word. Если же указать имя стиля из шаблона .dotx, документ сразу получит фирменное оформление: шрифты, цвета, нумерацию разделов и колонтитулы останутся на совести шаблона, а конвертер лишь корректно разложит по ним контент.
Рис. 4. Вкладка "Оформление": шрифты текста и кода, цвета заливки, режим списков, интервалы и максимальная ширина картинок
Под капотом: инженерные решения
Для читателя, который захочет доработать обработку под себя или просто проверить аккуратность реализации, ниже разобраны решения, которые обычно и решают судьбу подобных конвертеров на практике.
Автозамены Word
При посимвольном выводе текста Word стремится "помочь" пользователю: превращает прямые кавычки в типографские, дефисы - в тире, самовольно создаёт маркированные списки и границы таблиц. Для конвертера это катастрофа, ведь оформление задаём мы, а не текстовый редактор. Поэтому перед выводом отключаются восемь автозамен "при вводе": их прежние значения сохраняются и после конвертации восстанавливаются. Настройки пользователя на его же компьютере не страдают - это принципиальный момент для инструмента, который раздают людям на рабочие места.
Кодировки и загрузка файлов
Загружаемый файл читается на сервере, а не на клиенте: сначала кодировка определяется по BOM (UTF-8, UTF-16LE/BE), затем выполняется побайтовая валидация UTF-8, и только если она не проходит, принимается ANSI. Побайтовая проверка надёжнее эвристик и не ломает файлы без BOM, которых в мире Markdown большинство. Базовый каталог при загрузке устанавливается в каталог файла - относительные пути картинок в Markdown находят свои файлы без вмешательства пользователя. Сетевые пути (http, file:, UNC-адреса) передаются в Word как есть.
Флэнкинг-правила и экранирование
Звёздочки курсива и жирного анализируются с проверкой окружающих пробелов - по образцу классических правил Markdown. Незамкнутая звезда остаётся текстом, а внутристрочные формулы не разбираются в строчном коде. Обратная косая черта работает как символ экранирования, поэтому в ячейках таблиц можно вывести вертикальную черту, а в тексте - саму звёздочку. Эти мелочи незаметны, пока не встретишь конвертер, который ими пренебрегает: половина регламентной документации как раз состоит из "звёздочек не по делу".
Формулы
Формулы в $...$ и $$...$$ поддерживаются на уровне подмножества LaTeX: команды заменяются на Unicode-символы (греческий алфавит, операторы отношений, стрелки), конструкции с индексами и степенями выводятся под- и надстрочным гарнитурой Word. Замены выполняются в порядке "длинные шаблоны раньше коротких": например, \leftarrow обрабатывается раньше \le, иначе короткая команда "съедала" бы начало длинной. Обёртки \text{...} и \mathrm{...} снимаются, оставляя только содержимое. Результат - на рис. 5: формулы тестового примера с символом умножения и подстрочными индексами.
Рис. 5. Формулы из тестового документа: Unicode-символы и подстрочные индексы
Встроенный приёмочный тест
Кнопка "Вставить тестовый текст" заполняет поле сценарием из чек-листа ревью: кавычки и автозамены, незамкнутая звезда, нумерация вида "1. 1. 1.", вложенность двумя пробелами, экранированная вертикальная черта в ячейке, пустая ячейка, инлайн-разметка в ячейках, картинка-заглушка и блок кода, в котором автозамены не должны сработать. Незакрытый блок кода в конце текста тоже выводится как блок - ни одна строка не теряется. Один клик - и перед глазами все граничные случаи, на которых обычно и ломаются конвертеры. Этот же сценарий удобно приложить к публикации как демо-файл.
Ограничения
У обработки есть границы применимости, и перечислить их честно - полезнее, чем дождаться комментариев читателей. Список ниже не призван отпугнуть: он помогает сразу понять, подходит ли инструмент под ваш сценарий, и наметить, что можно доработать силами своей команды.
- Только Windows с установленным Word; веб-клиент не поддерживается - COM-объекты в нём недоступны.
- Не поддерживаются: сноски, чек-боксы задач, вложенные таблицы, HTML-вставки и диаграммы Mermaid.
- Пересекающиеся и несимметричные комбинации маркеров (например,
**жирный*закрытие) могут дать неверную вложенность - осознанное ограничение простого парсера без стека разделителей. - Замены "до разбора" действуют на весь текст, включая блоки кода, - это задокументированная особенность конвейера. Для замен, которые не должны трогать код, используйте контекст в шаблоне регулярного выражения (например,
(?m)^(?!```)(.*)$). - Настройки не сохраняются между сеансами: при каждом запуске форма заполняется значениями по умолчанию.
- Формулы - подмножество LaTeX: команды переводятся в Unicode-символы, полноценного рендеринга нет; сложные конструкции рекомендуется выносить картинками.
- Внутритабличная разметка в Word ограничена самим текстовым процессором: многострочные ячейки и вложенность не воспроизводятся один в один.
Первые два пункта - фундаментальные, остальные - вопрос развития. Код конвейера разбит на области по этапам (замены, разбор, вывод), поэтому точечные доработки не требуют понимания всей системы целиком.
Какие из этих ограничений закрывать в первую очередь - подскажут ваши предложения: оставляйте их в комментариях или отправляйте через "Обратную связь" из самой обработки.
Требования: 1С 8.3.10+, Windows, Word 2010+; изменений в конфигурации не нужно.
Связанные публикации
Другие публикации и разработки автора
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.208.14
Вступайте в нашу телеграмм-группу Инфостарт