Разработка и Конфигурация · 10 мин
Как сохранить табличный документ в 1С
Как сохранить табличный документ в 1С в форматы MXL, Excel, PDF: через меню «Файл», программно методом Записать, с выбором формата и проверкой результата.
Табличный документ в 1С — это универсальный формат представления данных: печатные формы документов, отчёты, прайс-листы и макеты выводятся именно в нём. Сохранить такой документ можно двумя способами: интерактивно, через стандартное меню «Файл», и программно — методом Записать() из встроенного языка.
Выбор способа зависит от задачи. Бухгалтеру, которому нужно отправить печатную форму контрагенту, достаточно пары кликов. Разработчику, настраивающему автоматическую рассылку отчётов, потребуется код с указанием формата, пути и параметров записи.
Важный нюанс: табличный документ существует только в памяти или в окне программы, пока его не записали в файл. Закрытие окна без сохранения приводит к потере результата, и восстановить его можно только повторным формированием отчёта или печатной формы.
Что такое табличный документ и какие форматы доступны
Табличный документ — объект платформы 1С:Предприятие, предназначенный для отображения и печати данных в виде таблицы с форматированием: объединёнными ячейками, рамками, шрифтами, картинками. Его внутренний «родной» формат — MXL, который платформа умеет открывать и редактировать без сторонних программ.
При сохранении доступны и другие форматы. Наиболее востребованные:
- MXL — внутренний формат 1С, сохраняет структуру и форматирование без потерь, открывается только в 1С;
- XLS / XLSX — для передачи данных тем, кто работает в Excel, и для дальнейших расчётов;
- PDF — для отправки контрагентам и архива: документ выглядит одинаково на любом устройстве и защищён от случайного редактирования;
- HTML — для публикации на веб-страницах;
- ODS — для пользователей OpenOffice и LibreOffice;
- TXT — только текст без форматирования, подходит для простых выгрузок.
Сохранение через интерфейс: меню «Файл»
Когда печатная форма или отчёт открыт на экране, сохранение занимает несколько секунд. Откройте меню «Файл» и выберите «Сохранить» — документ запишется в формате MXL в ранее указанное место. Если файл сохраняется впервые или нужен другой формат, используйте «Сохранить как».
В диалоге сохранения укажите папку, имя файла и тип файла в выпадающем списке. После нажатия «Сохранить» платформа создаст файл выбранного формата. Если документ многостраничный, в файл попадут все страницы.
- 1Сформируйте печатную форму или отчёт, чтобы табличный документ открылся на экране
- 2Откройте меню «Файл» и выберите «Сохранить как»
- 3Укажите папку и имя файла
- 4Выберите тип файла: MXL, Excel, PDF или другой
- 5Нажмите «Сохранить» и откройте файл для проверки
Сохранение копии печатной формы
В некоторых конфигурациях печатная форма открывается в специальном окне менеджера печати с собственной кнопкой сохранения. Там доступны те же форматы, а иногда — дополнительные действия: отправка по электронной почте прямо из окна, подписание, вывод на принтер. Кнопка обычно называется «Сохранить» или имеет значок дискеты.
Программное сохранение: метод Записать()
Для автоматизации используется метод Записать() объекта «ТабличныйДокумент». Минимальный вызов требует два параметра: полное имя файла и тип файла.
ТабДок = Новый ТабличныйДокумент;
// ... заполнение документа ...
ТабДок.Записать("C:\Отчеты\Остатки.xlsx",
ТипФайлаТабличногоДокумента.XLSX);
Перечисление ТипФайлаТабличногоДокумента содержит значения для всех поддерживаемых форматов: MXL, XLSX, XLS, PDF, HTML, ODS, TXT и другие. Имя значения должно соответствовать реальному расширению файла — иначе файл не откроется в целевой программе.
ТабДок.Записать("C:\Отчеты\Счет.pdf", ТипФайлаТабличногоДокумента.PDF);Сохранение на сервере и в фоновом задании
Если код выполняется на сервере (в толстом клиенте с серверным вызовом, в фоновом задании, в регламентной операции), путь в методе Записать() интерпретируется относительно сервера, а не компьютера пользователя. Учётная запись, под которой работает сервер 1С, должна иметь права на запись в указанный каталог.
Типовой приём — сохранить файл во временный каталог на сервере, поместить его во временное хранилище и уже на клиенте получить данные и предложить пользователю сохранить файл в удобное место. Для передачи используются функции работы с двоичными данными и ПоместитьВоВременноеХранилище().
Выбор формата под задачу
Формат определяет, что получатель сможет сделать с файлом. Ошибка выбора — частая причина переделок: например, отправка MXL контрагенту, у которого нет 1С, приводит к тому, что файл просто не открывается.
Сравнение форматов
Для обмена между пользователями 1С и хранения макетов. Не открывается без платформы 1С.
Для дальнейшей обработки данных в Excel. Форматирование может частично искажаться при сложной структуре.
Для отправки контрагентам и архива. Не редактируется, выглядит одинаково везде, но данные из него сложно переиспользовать.
Для публикации в интернете или вставки в письмо. Теряется часть настроек печати.
Практическое правило: внутри компании, где все работают в 1С, удобнее MXL — он сохраняет документ один в один. Наружу, контрагентам и в архив, — PDF. Если получатель будет считать что-то по вашим данным, — Excel.
Проверка результата и типичные ошибки
После сохранения откройте полученный файл в целевой программе. Для PDF проверьте, что все страницы на месте и текст не «уехал» за границы. Для Excel — что числа распознаны как числа, а не как текст, иначе формулы получателя работать не будут.
Как проверить результат
Файл открывается в целевой программе без ошибок и предупреждений о повреждении
Программа сообщает о неверном формате — расширение не совпадает с типом, указанным при записи
Числовые ячейки участвуют в суммах и сортировке как числа
Числа сохранены как текст — в ячейках был вывод с неразрывными пробелами или текстовым форматом
Все страницы документа присутствуют в файле
Сохранилась только видимая часть — проверьте область вывода и разрывы страниц
Ограничения и особенности
Метод Записать() недоступен в веб-клиенте для прямой записи на диск пользователя — браузер не даёт программе доступ к файловой системе. В веб-клиенте файл формируется на сервере и передаётся пользователю через механизм получения файлов, аналогично скачиванию.
Ещё одно ограничение — объём. Очень большие табличные документы (десятки тысяч строк) при сохранении в Excel могут формироваться заметное время и потреблять много памяти. Для массовых выгрузок данных лучше подходят другие механизмы — например, текстовые форматы или специализированные обработки обмена.
При сохранении в PDF учитывайте настройки размещения: параметры «Автомасштаб», ориентация и поля страницы берутся из свойств табличного документа. Если печатная форма настроена под альбомную ориентацию, а в PDF она вышла книжной, проверьте свойство ОриентацияСтраницы документа.
Автоматизация: рассылка и архив
Типовой сценарий автоматизации — регламентное задание, которое формирует отчёт, сохраняет его в PDF и отправляет по электронной почте или складывает в сетевую папку. Схема такая: сформировать табличный документ, записать его во временный файл, прикрепить файл к письму или переместить в архивный каталог, удалить временный файл.
Для архива удобно строить структуру каталогов по периодам и наименованиям документов, а имя файла формировать из даты, номера и контрагента. Это избавляет от ручного переименования и упрощает поиск. Перед внедрением проверьте на тестовой базе полный цикл: формирование, запись, отправку и открытие полученного файла.
Если печатная форма регулярно сохраняется в PDF для отправки контрагентам, имеет смысл сразу встроить в конфигурацию кнопку «Сохранить в PDF» или отправку по почте из формы печати. Ручное сохранение через «Файл → Сохранить как» при десятках документов в день отнимает заметное время и провоцирует ошибки в именах файлов.
Что важно запомнить
Интерактивно табличный документ сохраняется через «Файл → Сохранить как» с выбором формата. Программно — методом Записать() с указанием пути и ТипФайлаТабличногоДокумента. Следите за совпадением расширения и типа файла, учитывайте разницу путей на клиенте и сервере и всегда проверяйте полученный файл открытием в целевой программе.
Частые вопросы
В каком формате сохранить печатную форму для контрагента без 1С?
Оптимальный вариант — PDF: файл откроется на любом устройстве, сохранит внешний вид документа и не позволит случайно изменить содержимое. Если контрагент просит редактируемый формат для расчётов, сохраните копию в XLSX.
Почему файл, сохранённый программно, не открывается?
Чаще всего расширение имени файла не совпадает со значением ТипФайлаТабличногоДокумента, переданным в метод Записать(). Например, файл назван .xlsx, а записан как MXL. Приведите расширение и тип в соответствие и запишите заново.
Как сохранить табличный документ в веб-клиенте?
Напрямую на диск пользователя из веб-клиента записать нельзя. Файл формируется на сервере, затем передаётся пользователю через механизм получения файлов — он сохраняется как обычное скачивание из браузера.
Можно ли сохранить только часть табличного документа?
Да. Программно можно скопировать нужную область в новый табличный документ через метод ПолучитьОбласть() и записать уже его. Интерактивно — выделить область и использовать копирование в новый документ или в Excel.
Что делать, если при сохранении в Excel числа становятся текстом?
Причина обычно в том, что в ячейки табличного документа значения выведены как строки — например, с неразрывными пробелами в разрядах или через функцию Формат() с текстовым результатом. Исправьте заполнение макета: выводите в ячейки числовые значения, а форматирование задавайте через оформление ячейки.
Перезапишет ли метод Записать() существующий файл?
Да, перезапишет без предупреждения. Если нужно сохранять историю, формируйте уникальные имена файлов — например, добавляя дату и время формирования — или предварительно проверяйте существование файла и запрашивайте подтверждение у пользователя.