Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
UKVED
Комплексные IT решения
для вашего бизнеса
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
Сопровождение 1С
  • Внедрение 1С
  • Обновление 1С
  • Обслуживание 1С
  • Поддержка 1С
  • Разработка 1C
Аренда 1С (1С:ФРЕШ)
Бухгалтерское сопровождение
Аренда сервера
  • Выделенный сервер 1C
  • Аренда сервера для 1C
  • Почтовые серверы
  • Backup серверы
Распознавание документов в 1С
Разработка мобильных приложений
Наши мобильные приложения
AmoCRM
  • Внедрение AmoCRM
  • Интеграция AmoCRM
  • Разработка виджетов AmoCRM
Системное администрирование
  • Обслуживание компьютеров
  • Обслуживание локальной сети
  • Обслуживание телефонии
IP телефония
Каталог товаров
  • 1С отчетность
  • Лицензии 1С
    • Комплексное управление ресурсами предприятия (ERP)
    • Клиентские лицензии
    • Серверные лицензии
    • Бухгалтерский и налоговый учет
    • ЗУП и кадровый учет (HRM)
    • Управление складом, логистикой и продажами
  • ТСД Клеверенс
  • ИТС
  • Тарифы ИТС
  • Наши решения
Наши внедрения
Статьи
Контакты
Комплексные IT решения
для вашего бизнеса
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Распознавание документов в 1С
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
1СFranch.pngmintsifryi_1С.png
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
UKVED
Телефоны
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
UKVED
  • Сопровождение 1С
    • Сопровождение 1С
    • Внедрение 1С
    • Обновление 1С
    • Обслуживание 1С
    • Поддержка 1С
    • Разработка 1C
  • Аренда 1С (1С:ФРЕШ)
  • Бухгалтерское сопровождение
  • Аренда сервера
    • Аренда сервера
    • Выделенный сервер 1C
    • Аренда сервера для 1C
    • Почтовые серверы
    • Backup серверы
  • Распознавание документов в 1С
  • Разработка мобильных приложений
  • Наши мобильные приложения
  • AmoCRM
    • AmoCRM
    • Внедрение AmoCRM
    • Интеграция AmoCRM
    • Разработка виджетов AmoCRM
  • Системное администрирование
    • Системное администрирование
    • Обслуживание компьютеров
    • Обслуживание локальной сети
    • Обслуживание телефонии
  • IP телефония
  • Каталог товаров
    • Каталог товаров
    • 1С отчетность
    • Лицензии 1С
      • Лицензии 1С
      • Комплексное управление ресурсами предприятия (ERP)
      • Клиентские лицензии
      • Серверные лицензии
      • Бухгалтерский и налоговый учет
      • ЗУП и кадровый учет (HRM)
      • Управление складом, логистикой и продажами
    • ТСД Клеверенс
    • ИТС
    • Тарифы ИТС
    • Наши решения
  • Наши внедрения
  • Статьи
  • Контакты
  • 0 Корзина
  • +7 906 045 2827
    • Телефоны
    • +7 906 045 2827
  • г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
  • sale@ukved.ru
  • Пн. – Пт.: с 9:00 до 18:00
1СFranch.pngmintsifryi_1С.png
Главная
—
Статьи
—
Общее

PDF в 1С через COM: скрипт для папки со сканами и 4 места, где он падает

Владимир Ершов, руководитель UKVED · опубликовано 9 октября 2026

PDF в 1С через COM: скрипт для папки со сканами и 4 места, где он падает

PDF в 1С через COM: скрипт для папки со сканами и 4 места, где он падает

Содержание
Что загружает скрипт: вложение, а не документ 📎Шаг 1. Принимающая процедура в базе ⚙️Шаг 2. Скрипт на PowerShell по порядку4 места, где скрипт падает ⚠️COM, HTTP-сервис или задание внутри 1С: сравнение 📊Сколько стоит и когда свой скрипт не нужен❓ Частые вопросы

Загрузить PDF в 1С через COM можно скриптом PowerShell: он создаёт объект V83.COMConnector, подключается к базе, читает файлы из папки и передаёт каждый в процедуру общего модуля, которая прикрепляет его к нужному документу. Скрипт кладёт файл как вложение, но не создаёт документ из содержимого. Чтобы из скана получился документ, нужно распознавание.

Что загружает скрипт: вложение, а не документ 📎

Поставщик присылает счёт на почту. Бухгалтер сохраняет PDF в папку «Сканы», потом открывает документ в 1С, жмёт скрепку и ищет файл в проводнике. К концу недели в папке лежит куча файлов без привязки к документам, а когда приходит запрос на подтверждение сделки, их собирают вручную, по одному.

COM-скрипт закрывает именно эту часть. Он берёт файлы из папки, находит в базе документ-владельца и прикрепляет PDF к нему. Но содержимого файла скрипт не знает: сумма, контрагент и номер для него просто байты. Поэтому расхожее «загрузил PDF, значит счёт в учёте» неверно. В базе появился файл, а остатки, НДС и взаиморасчёты остались прежними.

Получается два разных проекта. Первый: прикрепить сканы к уже заведённым документам, для него хватит скрипта из этой статьи. Второй: создать документ поступления из самого скана. Для него нужно распознавание УПД из скана, а COM остаётся только транспортом.

Шаг 1. Принимающая процедура в базе ⚙️

Скрипт может обращаться к объектам базы напрямую, но тогда вся логика живёт в его тексте и ломается при каждом обновлении конфигурации. Надёжнее держать её в 1С. Создайте общий модуль, например ЗагрузкаPDF, отметьте в его свойствах флаги «Сервер» и «Внешнее соединение» и добавьте экспортную функцию ДобавитьPDF с двумя параметрами: двоичные данные и имя файла. Владельца функция ищет сама.

Сначала она разбирает имя по договорённому шаблону, например Счет_0045_12-03.pdf, и находит документ по номеру и дате. Затем проверяет, нет ли у документа вложения с тем же именем и размером. Только после этого прикрепляет файл. В конфигурациях на БСП для этого есть подсистема присоединённых файлов, в остальных создаётся элемент справочника файлов с ХранилищеЗначения. Результат функция возвращает строкой: «Прикреплено», «Дубль» или текст ошибки. По ней скрипт решает, куда переложить файл, и пишет лог.

Отдельно заведите пользователя, скажем ЗагрузкаФайлов, с правами только на нужные справочники и документы. Его пароль окажется в тексте скрипта, поэтому учётку администратора туда ставить нельзя: любой, кто откроет файл, получит полный доступ к базе.

Шаг 2. Скрипт на PowerShell по порядку

Скрипт запускается на машине, где стоит платформа 1С. Разрядность PowerShell должна совпадать с разрядностью платформы, а подходящую версию ОС проверьте по системным требованиям 1С. Порядок действий:

  1. ✓Создать коннектор: New-Object -ComObject V83.COMConnector.
  2. ✓Подключиться: $base = $connector.Connect('Srvr=имя_сервера;Ref=имя_базы;Usr=ЗагрузкаФайлов;Pwd=пароль'). Для файловой базы вместо Srvr и Ref указывают File=путь_к_каталогу_базы.
  3. ✓Перебрать файлы в папке Входящие командой Get-ChildItem с фильтром *.pdf.
  4. ✓Для каждого файла собрать двоичные данные: $data = $base.NewObject('ДвоичныеДанные', $file.FullName). Путь читается с диска той машины, где запущен скрипт, а не с сервера 1С.
  5. ✓Вызвать модуль и получить ответ: $result = $base.ЗагрузкаPDF.ДобавитьPDF($data, $file.Name).
  6. ✓Если ответ «Прикреплено» или «Дубль», перенести файл в папку Обработано, иначе в папку Ошибки, а причину записать в лог.
  7. ✓В блоке finally освободить соединение: [System.Runtime.InteropServices.Marshal]::ReleaseComObject($base).

Запуск ставьте в планировщик заданий Windows: днём файлы копятся в папке, ночью скрипт их разбирает. Соединение открывайте один раз на весь пакет, а не на каждый PDF. Так скрипт занимает одну лицензию и не тратит время на повторные подключения.

Многостраничный скан передаётся по сети целиком, поэтому на медленном канале до сервера 1С загрузка идёт заметно дольше, чем копирование той же папки. Если база стоит в другом офисе или в дата-центре, запускайте скрипт как можно ближе к серверу.

4 места, где скрипт падает ⚠️

Скрипт редко ломается на проверке. Он ломается на пятую ночь, когда за ним никто не смотрит. Вот четыре сбоя, на которых спотыкаются первыми.

Класс не зарегистрирован

Скрипт отладили вручную, всё работало. Поставили в планировщик, и в логе появилось «Класс не зарегистрирован». Причин две: PowerShell запущен в 64 разрядах, а платформа 1С 32-разрядная (или наоборот), либо платформу обновили, а comcntr.dll остался зарегистрированным от старой версии. Лечится командой regsvr32 comcntr.dll от имени администратора из каталога bin нужной версии и запуском скрипта в совпадающей разрядности.

Но сама ошибка дешёвая, дорого обходится тишина после неё. Ночная загрузка не отработала, к утру папка полна, а о сбое никто не знает, пока кому-то не понадобится конкретный документ. Поэтому в обработчик ошибок сразу добавьте отправку сообщения в Telegram.

Зависшая лицензия

В 9:00 бухгалтер открывает 1С и видит отказ: нет свободных лицензий. Вчерашний скрипт упал на середине пакета, не вызвав ReleaseComObject, и процесс соединения остался в памяти вместе с занятой клиентской лицензией. Каждое COM-соединение занимает лицензию, поэтому освобождение в finally обязательно, а в планировщике стоит задать предельное время выполнения задачи. Если лицензий в обрез, одно зависшее соединение отнимает рабочее место у живого сотрудника.

Двойные вложения

Скрипт прикрепил файл, но упал до переноса в Обработано. На следующем запуске тот же PDF уходит в базу снова, и у документа два одинаковых вложения. Потом аудитор открывает карточку и спрашивает, какой из них настоящий. Защита стоит в двух местах: принимающая функция сравнивает имя и размер, а скрипт переносит файл только после ответа от 1С.

Папка видна вам, но не планировщику

Сетевой диск Z: подключён в вашей сессии, а задание идёт под служебной учётной записью, которая его не видит. Скрипт стартует, находит ноль файлов и завершается без единой ошибки. Используйте полный сетевой путь (UNC) вместо буквы диска и выдайте служебной записи права на чтение и перенос файлов. Тот же молчаливый сбой даёт имя файла не по шаблону: функция не находит документ, поэтому такие PDF должны уходить в Ошибки с записью в лог, а не оседать во Входящих.

COM, HTTP-сервис или задание внутри 1С: сравнение 📊

COM подходит не везде. Если база стоит на арендованном сервере, платформа на машине скрипта и доступ к кластеру из офиса превращаются в отдельную задачу. Ниже четыре способа положить PDF в базу и то, где каждый ломается.

СпособГде работает кодЧто нужноСлабое местоКогда брать
COM-скриптСкрипт на отдельной машине, обработка в общем модуле базыПлатформа 1С, зарегистрированный comcntr.dll, клиентская лицензияРазрядность, версия платформы, зависшие соединенияБаза на вашем сервере, ночная загрузка из папки
HTTP-сервис в 1СПриём файла внутри базы, отправить может любой клиентПубликация базы на веб-сервереЛимит веб-сервера на размер запроса, настройка доступаАрендованная база, отправка из почтового робота или другой системы
Регламентное задание в 1СВсё внутри базы, файлы читает сервер 1СДоступ сервера 1С к папке с файламиПапка должна лежать там, где её видит серверФайлы уже складываются на сервер с базой
Распознавание УПДНа стороне сервиса, документ создаётся в базеПодключение базы к сервисуРаботает для УПД и счетов, а не для произвольных PDFНужен документ поступления, а не вложение

Для базы на сервере 1С от 1 100 ₽/мес за пользователя удобнее HTTP-сервис: платформу на стороне отправителя ставить не нужно, а файл отправит и скрипт, и почтовый робот. Актуальные условия по серверам смотрите в тарифах.

У HTTP-сервиса своя ловушка: веб-сервер по умолчанию ограничивает размер запроса, и многостраничный скан может не пройти. Лимит поднимают в настройках публикации, но знать о нём нужно до запуска, а не после первого отказа.

Сколько стоит и когда свой скрипт не нужен

Скрипт с принимающей функцией не пишется за вечер, если делать его с логами, защитой от дублей и уведомлениями. Мы смотрим вашу конфигурацию: есть ли БСП, куда складывать файлы, как называются документы. Договариваемся о шаблоне имён и собираем решение: функцию в базе, скрипт с журналом, сообщение в Telegram при любом сбое. Запуск проверяем на копии базы, а не на рабочей. Разовую доработку 1С мы оцениваем после просмотра конфигурации, потому что стоимость зависит от числа типов документов и способа хранения файлов.

Когда скрипт уже работает, его надо кому-то держать в живых: после обновления платформы проверить регистрацию компоненты, посмотреть на папку Ошибки, поправить права. Сопровождение 1С и сисадмин стоят 3800 руб/час, и платите вы только за часы, которые реально ушли.

Если на деле вам нужен не файл в карточке, а проведённый документ, скрипт вам не нужен. Распознавание УПД от 3900 руб/мес читает скан и создаёт документ в базе, а исходный PDF можно оставить вложением. Писать и поддерживать распознавание самостоятельно придётся долго, а ошибки в суммах хуже пропущенных вложений.

Что именно подходит вам, зависит от содержимого папки. Если там сканы разных документов под разными именами, а в учёте вы ждёте проведённые документы, посмотрите страницу загрузка PDF в 1С: на ней разобраны оба сценария. Пришлите пример имён файлов и название конфигурации, и сразу видно, хватит ли скрипта.

❓ Частые вопросы

Можно ли загружать PDF через COM без общего модуля в базе?

Технически можно: через COM скрипт получает доступ к объектам базы и создаёт элементы справочника напрямую. Но логика привязки к документу и защита от дублей окажутся в тексте скрипта и сломаются при смене конфигурации. Надёжнее держать её в общем модуле с флагом «Внешнее соединение», а скрипту оставить передачу файлов.

Почему COM-скрипт выдаёт ошибку «Класс не зарегистрирован»?

Платформа 1С не зарегистрировала COM-компоненту нужной разрядности или версии. Проверьте, что разрядность PowerShell совпадает с разрядностью платформы, и выполните regsvr32 comcntr.dll от администратора из каталога bin установленной версии. Часто ошибка появляется сразу после обновления платформы, когда регистрация осталась от старой версии.

Занимает ли COM-соединение лицензию 1С?

Да, каждое COM-соединение занимает клиентскую лицензию, пока не закрыто. Поэтому скрипт открывает одно соединение на весь пакет файлов и освобождает его в блоке finally. Если скрипт упал и процесс завис, лицензия остаётся занятой, и утром сотрудник может получить отказ при входе в базу.

Что выбрать для арендованной базы: COM или HTTP-сервис?

Для арендованной базы удобнее HTTP-сервис: платформа 1С на стороне отправителя не нужна, а файл может отправить любой скрипт или почтовый робот. COM требует установленной платформы на машине скрипта и доступа к кластеру серверов 1С, что в офисной сети с арендованным сервером настраивается дольше.

Сколько стоит настроить загрузку PDF в 1С?

Стоимость доработки зависит от конфигурации и числа типов документов, поэтому оценку мы называем после просмотра базы. Сопровождение 1С и работа сисадмина стоят 3800 руб/час. Если вместо вложения нужен готовый документ поступления, подойдёт распознавание УПД от 3900 руб/мес.

PDF приходит, а в 1С его нет?
Загружаем PDF в 1С как готовый документ: накладные, счета, акты, договоры — с проверкой реквизитов и подстановкой контрагента.
Обсудить задачу →
Читайте также
Услуги 1САренда 1САренда сервера 1СМобильная разработка

Не помогло? Опишите вашу ошибку — разберём
Ответим сразу, без звонков и заполнения анкет. Что не получилось, какая версия 1С, что уже пробовали — этого достаточно. Сложное передадим инженеру.

Или позвоните: +7 906 045-28-27 — в рабочее время с 9:00 до 19:00

Возврат к списку

Читайте также

  • 12 сценариев, где ДО+ снимает узкие места 1С:Документооборота
  • 1С:ИТС и маркировка: почему обмен с «Честным знаком» падает с ошибкой
  • Flutter 3.47: почему после апгрейда падает сборка 1С-приложения
  • PDF не грузится в 1С: четыре места, где стоит лимит размера

Остались вопросы? Нужна помощь?

Менеджеры компании с радостью ответят на ваши вопросы, произведут расчет стоимости услуг и подготовят индивидуальное коммерческое предложение.

Бесплатная консультация
 
Компания
О компании
Вакансии
Каталог
1С отчетность
Лицензии 1С
ТСД Клеверенс
ИТС
Тарифы ИТС
Наши решения
Аренда сервера
Сопровождение 1С
Сопровождение бухгалтерии
Системное администрирование
Аудит сайта
IT-аутсорсинг в Москве
Услуги по серверам
Аренда сервера 1С
Аренда 1С в облаке
Распознавание PDF (ПДФ) в 1С
+7 906 045 2827
+7 906 045 2827
E-mail
sale@ukved.ru
Адрес
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
Режим работы
Пн. – Пт.: с 9:00 до 18:00
sale@ukved.ru
г.Москва, ул. Антонова-Овсеенко, д. 15, стр. 2
2017 - © 2026
Политика конфиденциальности Оплата Поставка Возврат Оферта Карта сайта
ООО «ВЕД» · ИНН 7720299436 · ОГРН 1157746343920 · КПП 501801001
Аккредитованная ИТ-компания — проверить в реестре Минцифры по ИНН 7720299436
0

Корзина

Очистить корзину
Ваша корзина пуста
Исправить это просто: выберите в каталоге интересующий товар и нажмите кнопку «В корзину»
В каталог
Главная 0 Корзина Каталог Контакты Услуги Бренды Отзывы Карьера Компания Проекты Лицензии Документы Блог Тарифы Цены
Мы считаем посещения сайта с помощью Яндекс.Метрики. Запись ваших действий на странице (Вебвизор) включается только с вашего согласия. Нажимая «Принять», вы соглашаетесь с Политикой конфиденциальности и Согласием на обработку ПДн.