Документ, отчёт или список из 1С — в файл Word: от кнопки «Сохранить» до шаблонов и COM
Содержание
Чтобы выгрузить из 1С в Word печатную форму или отчёт, откройте его на экране, нажмите кнопку с дискетой «Сохранить» и выберите формат Документ Microsoft Word 2007 (.docx). Платформа 1С:Предприятие 8.3 умеет записывать табличный документ в DOCX сама, установленный Word для этого не нужен.
Этого хватает для счёта, акта, договора по типовой форме или оборотно-сальдовой ведомости. Если нужен свой бланк Word с подставленными данными, массовая рассылка писем или выгрузка по кнопке без ручных шагов — понадобятся шаблоны, слияние или программная выгрузка. Все варианты ниже, от простого к сложному.
Какой способ выгрузки данных в Word выбрать
Сначала определите, что именно вы переносите и сколько раз. От этого зависит, хватит ли типовых кнопок.
| Задача | Способ | Нужен ли Word на компьютере | Нужен ли программист |
|---|---|---|---|
| Один документ или отчёт в файл | Сохранить печатную форму в DOCX | Нет | Нет |
| Таблица из журнала или справочника | Ещё → Вывести список…, затем сохранить | Нет | Нет |
| Кусок отчёта в готовое письмо | Копирование ячеек через буфер обмена | Да | Нет |
| Письма или уведомления сотням адресатов | Выгрузка в Excel + слияние в Word | Да | Нет |
| Свой бланк в фирменном стиле | Шаблон Word в макете печатной формы | Для правки шаблона | Иногда |
| Выгрузка по кнопке в готовый шаблон | Внешняя обработка с COM-соединением | Да | Да |
💡 Если документ нужен только для отправки и правки не предполагаются, сохраняйте в PDF. Вёрстка в PDF совпадает с экраном 1С один в один, а в DOCX ширина колонок иногда «плывёт».
1. Сохранение печатной формы и отчёта в DOCX штатными средствами
Это основной путь, и работает он одинаково в Бухгалтерии 3.0, ЗУП 3.1 и Управлении торговлей 11.
Печатная форма документа
- Откройте документ, например, «Реализация (акт, накладная, УПД)».
- Нажмите
Печатьи выберите нужную форму — откроется окно предпросмотра. - В верхней панели нажмите кнопку «Сохранить» (значок дискеты).
- В окне сохранения отметьте формат
Документ Microsoft Word 2007 (.docx). Можно отметить несколько форматов сразу — 1С запишет по файлу на каждый. - Выберите, куда сохранить: в папку на компьютере или присоединить файл к документу в базе.
- Нажмите
Сохранитьи укажите папку.
Если в окне печати открыто сразу несколько форм (например, акт и счёт-фактура), каждая сохранится отдельным файлом.
Отчёт
Отчёты (ОСВ, анализ счёта, расчётные листки) тоже выводятся табличным документом. Сформируйте отчёт, затем:
- 📄 нажмите кнопку с дискетой в командной панели отчёта, если она есть;
- 📄 или откройте главное меню (значок с тремя полосками в левом верхнем углу) →
Файл → Сохранить как…; - 📄 в поле «Тип файла» выберите
Документ Microsoft Word 2007 (*.docx).
Сохраняется то, что сейчас на экране. Свёрнутые группировки отчёта в файл попадут свёрнутыми — раскройте их до сохранения, если нужна детализация.
Список из журнала или справочника
Нужна таблица контрагентов, сотрудников или документов за период? Откройте список, настройте отбор и колонки, затем Ещё → Вывести список…. Отметьте нужные колонки и нажмите ОК — 1С сформирует табличный документ. Дальше его сохраняют в DOCX так же, как отчёт.
Через буфер обмена
Самый быстрый вариант для пары строк: выделите ячейки в табличном документе, нажмите Ctrl+C, перейдите в Word и вставьте Ctrl+V. Word примет фрагмент как таблицу. Для вставки только значений без оформления используйте в Word специальную вставку и вариант «Сохранить только текст».
2. Внешние отчёты и обработки для выгрузки в Word
Когда типовой печатной формы нет, а бланк нужен регулярно, его делают внешней печатной формой. Это файл .epf, который подключают к базе без изменения конфигурации — обновления потом ставятся спокойно.
Как подключить в Бухгалтерии 3.0:
Администрирование → Печатные формы, отчеты и обработки.- Включите флажок «Дополнительные отчеты и обработки» и перейдите по одноимённой ссылке.
- Нажмите
Добавить из файла…и выберите.epf. - На вкладке размещения укажите, у каких документов показывать форму.
- Запишите карточку. Новая форма появится в меню
Печатьвыбранного документа.
Результат такой формы — тот же табличный документ или сразу файл Word, если разработчик сделал её на шаблоне. В первом случае сохраняете через дискету, как в разделе выше.
Внешняя обработка выполняет произвольный код с вашими правами. Подключайте файлы только от проверенного разработчика. Платформа при добавлении покажет предупреждение о безопасности — это не формальность.
Внешний отчёт (.erf) подключается там же. Для выгрузки в Word он ничем не отличается от типового: сформировали, сохранили в DOCX.
3. Программная выгрузка из 1С в Word через COM-соединение
COM нужен, когда документ должен собираться по кнопке: открыть шаблон, подставить реквизиты, заполнить таблицу и сохранить файл . 1С при этом управляет запущенным Word как программой.
Ограничения, которые нужно знать заранее:
- 🖥️ работает только на Windows с установленным Microsoft Word;
- 🖥️ код выполняется на клиенте (
&НаКлиенте) — в тонком или толстом клиенте; в веб-клиенте и на Linux не работает ; - 🖥️ запускать Word на сервере 1С не стоит: Microsoft не поддерживает автоматизацию Office в серверном режиме, процессы зависают.
Пример: шаблон с метками и таблица товаров
Шаблон C:\Шаблоны\Письмо.docx содержит метки [Контрагент], [Дата], [Сумма]. Данные готовятся на сервере и передаются на клиент строками, потому что ссылки и объекты базы в COM не передаются.
&НаКлиенте
Процедура ВыгрузитьВWord(Команда)
Данные = ПолучитьДанныеНаСервере(Объект.Ссылка);
Word = Новый COMОбъект("Word.Application");
Word.Visible = Ложь;
Док = Word.Documents.Open("C:\Шаблоны\Письмо.docx");
ЗаменитьМетку(Док, "[Контрагент]", Данные.Контрагент);
ЗаменитьМетку(Док, "[Дата]", Данные.Дата);
ЗаменитьМетку(Док, "[Сумма]", Данные.Сумма);
// Таблица товаров в конце документа
Диапазон = Док.Paragraphs.Add().Range; // новый абзац в конце
Таблица = Док.Tables.Add(Диапазон, Данные.Товары.Количество() + 1, 3);
Таблица.Borders.Enable = Истина;
Таблица.Cell(1, 1).Range.Text = "Номенклатура";
Таблица.Cell(1, 2).Range.Text = "Количество";
Таблица.Cell(1, 3).Range.Text = "Сумма";
НомерСтроки = 1;
Для Каждого Строка Из Данные.Товары Цикл
НомерСтроки = НомерСтроки + 1;
Таблица.Cell(НомерСтроки, 1).Range.Text = Строка.Номенклатура;
Таблица.Cell(НомерСтроки, 2).Range.Text = Строка.Количество;
Таблица.Cell(НомерСтроки, 3).Range.Text = Строка.Сумма;
КонецЦикла;
Док.SaveAs("C:\Выгрузка\Письмо_" + Данные.Номер + ".docx");
Док.Close();
Word.Quit();
КонецПроцедуры
&НаКлиенте
Процедура ЗаменитьМетку(Док, Метка, Значение)
Поиск = Док.Content.Find;
// Аргументы: текст, регистр, слово целиком, подстановочные знаки,
// похожие звуки, все словоформы, вперёд, обтекание (1), формат,
// замена, режим замены (2 = заменить все)
Поиск.Execute(Метка, Ложь, Ложь, Ложь, Ложь, Ложь, Истина, 1, Ложь, Значение, 2);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьДанныеНаСервере(Ссылка)
Результат = Новый Структура;
Результат.Вставить("Номер", СокрЛП(Ссылка.Номер));
Результат.Вставить("Контрагент", Строка(Ссылка.Контрагент));
Результат.Вставить("Дата", Формат(Ссылка.Дата, "ДЛФ=D"));
Результат.Вставить("Сумма", Формат(Ссылка.СуммаДокумента, "ЧДЦ=2"));
Товары = Новый Массив;
Для Каждого СтрокаТЧ Из Ссылка.Товары Цикл
Товары.Добавить(Новый Структура("Номенклатура, Количество, Сумма",
Строка(СтрокаТЧ.Номенклатура),
Формат(СтрокаТЧ.Количество, "ЧГ=0"),
Формат(СтрокаТЧ.Сумма, "ЧДЦ=2")));
КонецЦикла;
Результат.Вставить("Товары", Товары);
Возврат Результат;
КонецФункции
Пример рассчитан на документ с табличной частью «Товары» и реквизитом «СуммаДокумента», как у реализации в Бухгалтерии 3.0. В другой конфигурации имена реквизитов проверьте в Конфигураторе.
💡 Метки ставьте в квадратных скобках или другим символом, которого нет в обычном тексте. Иначе замена «Дата» затронет и слово в шапке документа.
⚠️ Функция поиска и замены Word принимает строку замены длиной до 255 символов. Длинный текст (например, предмет договора) вставляйте иначе: найдите метку, а затем присвойте текст свойству Text найденного диапазона.
4. Шаблоны Word в макетах и слияние для массовых писем
Свой бланк в макете печатной формы
В типовых конфигурациях на библиотеке стандартных подсистем часть печатных форм хранится не как табличный документ, а как шаблон офисного документа. Найти и изменить макеты можно в Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.
Как работать с таким макетом:
- Найдите форму в списке по названию.
- Откройте её на изменение — шаблон откроется в установленном редакторе.
- Меняйте оформление, шрифты, логотип, текст. Служебные метки, куда 1С подставляет данные, не удаляйте и не переименовывайте.
- Сохраните файл и закройте редактор, затем подтвердите в 1С завершение редактирования.
Изменённый макет хранится в базе отдельно от типового. Обновление конфигурации его не затирает, а вернуть исходный вариант можно командой использования стандартного макета в том же списке.
Перед правкой сохраните копию исходного шаблона в отдельный файл. Если после изменения форма перестанет заполняться, будет с чем сравнить.
Слияние: одно письмо на сотню адресатов
Для рассылки уведомлений контрагентам или сотрудникам программировать ничего не нужно. Используйте слияние Word:
- В 1С откройте список контрагентов, отберите нужных,
Ещё → Вывести список…с колонками «Наименование», «ИНН», «Адрес», email. - Сохраните результат в
Лист Microsoft Excel 2007 (.xlsx). - Откройте файл в Excel и проверьте: первая строка — заголовки колонок, без объединённых ячеек и пустых строк сверху.
- В Word откройте шаблон письма, вкладка
Рассылки → Начать слияние → Письма. Выбрать получателей → Использовать существующий списоки укажите файл Excel.- Ставьте курсор в нужное место и через
Вставить поле слияниядобавляйте поля. Найти и объединить → Изменить отдельные документы— Word создаст по странице на каждого адресата.
Так за 10 минут готовится, например, 150 писем о смене реквизитов без единой строки кода.
5. Другие форматы: PDF, ODT, HTML и когда они удобнее Word
Иногда DOCX — не лучший выбор. Платформа сохраняет табличный документ в нескольких форматах, и под каждую задачу есть свой.
| Формат | Когда брать | Откроется в Word |
|---|---|---|
| DOCX | Нужно править текст, добавить абзацы | Да |
| Отправить контрагенту, распечатать, архив | Только на чтение или с конвертацией | |
| ODT | В организации LibreOffice или «Мой Офис» | Да, с мелкими расхождениями |
| XLSX | Нужно считать, сортировать, сливать | Через слияние или вставку |
| HTML | Вставить таблицу в письмо или на сайт | Да |
| MXL | Передать другому пользователю 1С | Нет |
Файл .mxl Word не открывает. Если коллега прислал такой файл, откройте его в 1С через Файл → Открыть… или в бесплатной программе просмотра файлов 1С, а уже оттуда сохраните в DOCX.
Программно табличный документ записывается в Word одной строкой, без COM и без установленного Word:
ТабДок.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.DOCX);
Этот вариант работает и на сервере, поэтому подходит для регламентных заданий: например, ночная выгрузка отчёта в общую папку.
6. Что делать, если выгрузка в Word не получается
Отдельно про печатные формы с объединёнными ячейками: товарная накладная или УПД при переводе в Word превращаются в таблицу с десятками мелких ячеек. Править такой файл неудобно. Для этих форм Word вообще плохой формат — в документообороте их передают в PDF или через ЭДО.