+7 (999) 881-15-11

PDF из 1С в Max без временного файла

Май 2026 · Редакция «Арете-ИТ»

Max не умеет получать объект ТабличныйДокумент из 1С. Перед отправкой печатную форму нужно превратить в PDF, получить двоичные данные и задать имя файла. После этого действует обычный сценарий файлового вложения.

Самый короткий путь — записать готовую печатную форму в ПотокВПамяти через ТипФайлаТабличногоДокумента.PDF. Так код не зависит от каталога временных файлов и не оставляет мусор на диске рабочего сервера.

Печатная форма в PDF без временного файла
// ПечатнаяФорма — уже сформированный ТабличныйДокумент.
// Команда и параметры получения формы зависят от конфигурации и вида документа.
Поток = Новый ПотокВПамяти;
ПечатнаяФорма.Записать(Поток, ТипФайлаТабличногоДокумента.PDF);
ДвоичныеДанные = Поток.ЗакрытьИПолучитьДвоичныеДанные();
ИмяФайла = "document.pdf";
Загрузить готовый PDF в Max
ОтправитьФайлВMax(
	ТокенБота,
	ИдПользователя,
	ДвоичныеДанные,
	"document.pdf",
	"Документ из 1С");

Получение самой печатной формы осталось за рамками примера: команды печати и их параметры зависят от конфигурации. Создавать пустой ТабличныйДокумент перед сохранением бессмысленно — сначала в нём должен появиться реальный макет документа или отчёта.

При выполнении на сервере все пути относятся к файловой системе сервера 1С, а не к компьютеру пользователя. Если потоковый вариант для конкретной формы недоступен, используйте временный файл на сервере и удаляйте его в блоке обработки исключения.

PDF загружается с type=file. Полный разбор HTTP-обмена находится в статье об отправке файла; там же приведён исходный код процедуры ОтправитьФайлВMax. Для прикладных деталей можно перейти к материалам про УПД или счёт на оплату.

PDF через «Арете — сервер мессенджеров, Max edition»

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

Готовые двоичные данные через АСМ_М
ИдПользователя = 123456789; // user_id из карточки получателя
СопроводительныйТекст = "Направляем документ из 1С.";

Параметры = Новый Структура;
Параметры.Вставить("user_id", ИдПользователя);
Параметры.Вставить("text", СопроводительныйТекст);
АСМ_М.ВложитьФайл(Параметры, ДвоичныеДанные, ИмяФайла);
АСМ_М.ОтправитьСообщение(Бот, Параметры);

Читать дальше