Ошибка «429 ActiveX component can’t create object. «Печать НД с PDF417 3.2.4 (пакет)».

С интересной проблемой столкнулась моя знакомая бухгалтер(-ша). Она обновила свою программу Налогоплательщик ЮЛ, сформировала отчет, а при попытке его распечатать выскочила ошибка: «429 ActiveX component can’t create object. «Печать НД с PDF417 3.2.4 (пакет)». Вот она и обратилась ко мне с вопросом, что делать. 

Перестановка программ и компонентов не помогла. Поискал решения в интернете, но они тоже не помогли. Пришлось искать решение самостоятельно… и в конце концов я его нашел. 

Решение оказалось очень простым, но очень не просто было его найти. Я удивлён, что до сих пор никто ничего не написал на эту тему, даже авторы этой программы. Хотя, судя по обращениям, довольно много людей сталкиваются с этой ошибкой.

Простое решение

Шаг 1

У вас по этому адресу: «C:\Program Files\gnivc\print-nd-pdf417» должен быть файл «-problem.zip» его надо распаковать в отдельную папку. Дальнейшие действия нужно будет производить уже с этой папкой.

Шаг 2

Вам нужно внимательно посмотреть на сообщение об ошибке. Здесь может быть два варианта ошибки и соответственно два варианта решения. Если у вас какой-то другой вариант этой ошибки, то напишите об этом в комментарии, и, я напишу решение. Первый вариант, когда ваше сообщение об ошибке начинается: «Отсутствует или повреждён пакет «Windows Script» …». Второй вариант ошибка начинается с: «Отсутствует или повреждён пакет «Microsoft XML 4.0″…»

Рассмотрим решения для обоих вариантов.

Отсутствует или  повреждён пакет «Windows Script»…

Если у вас возникает подобная ошибка, которая почему-то не исправляется даже после установки соответствующего пакета, то тогда нужно сделать следующее:

  1. Зайти в только что распакованную папку «-problem».
  2. Найти там файл «winscr+.bat».
  3. Запустить этот файл.

У вас появится чёрное окно терминала с надписями.

После чего выскочит окошко с сообщением.

Закройте это окошко нажав кнопку ОК

Подобные надписи и окошки выскочат для каждого из четырёх компонентов. После чего в чёрном окне терминала появится надпись: «Press any key to end». 

Нажимаете любую клавишу, чтобы окно терминала закрылось и пробуете печатать. Всё должно работать.

Если у вас всё же не заработало или Шаг 2 прошёл с ошибками, то почитайте ниже раздел «Решение проблем».

Отсутствует или повреждён пакет «Microsoft XML 4.0″…

Если у вас остается эта ошибка даже после установки соответствующего пакета, то вам нужно сделать следующее:

  1. Зайти в только что распакованную папку «-problem».
  2. Найти там файл «msxml4+.bat».
  3. Запустить этот файл.

У вас появится чёрное окно терминала с надписями.

Через некоторое время выскочит окошко с сообщением.

Закройте это окошко, нажав кнопку ОК

После успешного выполнения программы в терминале появится надпись «Press any key to end».

Нажмите любою клавишу, чтобы закрыть окно терминала. Попробуйте напечатать с помощью PDF417. Всё должно работать.

Если же были какие-то ошибки и печать не заработала, то посмотрите следующий раздел «Решение проблем».

Решение проблем

При некоторых настройках Windows у вас может не получиться сделать всё гладко и без ошибок. 

Причин этому может быть две. Первая — это отсутствие в вашей системе необходимых компонентов. В этом случае, их нужно будет установить и повторить Шаг 2. Вторая причина состоит в том, что у вас недостаточно прав на регистрацию dll-библиотек. В этом случае, вам нужно будет обратиться к администратору. А если вы сами являетесь администратором, то читайте ниже.

Рассмотрим обе причины.

Отсутствие необходимых компонентов

После того как вы запустили соответствующий файл winscr+.bat или msxml4+.bat, у вас могут в чёрном окне терминала появиться надписи об ошибках:

Error: not found «C:\Windows\system32\regsvr32.exe»,
или
Error: not found «C:\Windows\system32\vbscript.dll»,
или
Error: not found «C:\Windows\system32\msxml4.dll»,
или подобные, в зависимости от недостающих компонентов.

Эти ошибки указывают, что у вас в системе нет соответствующих компонентов или файлов.

В этом случае, вам нужно восстановить недостающие .exe и .dll, например, с аналогичной рабочей машины. Либо установить эти компоненты заново.

После восстановления файлов возвращайтесь к Шагу 2, и всё заработает.

Недостаточно прав на регистрацию dll

Само собой, что для того, чтобы выполнить Шаг 2 у вас должны быть права вносить изменения в компьютер. Если ваш аккаунт Windows не входит в группу Администраторы, то вам нужно выяснить, кто входит в эту группу и договориться с ним, чтобы он выполнил Шаг 2.

Но если даже вы входите в группу Администраторы, это не означает автоматически, что у вас есть права на всё. Конечно, в этом случае, скорее всего вы являетесь уже являете владельцем ветки реестра и имеете полные права не неё. Однако, в этой ветке могут быть подветки, на которые у вас нет прав по умолчанию.

В этом случае, на Шаге 2 у вас будут вылетать следующие ошибки:

  • «… не удалось выполнить вызов DllRegisterServer, код ошибки: 0x80004005»,
  • «… не удалось выполнить вызов DllRegisterServer, код ошибки: 0x80040201»,
  • или подобные, в зависимости от того, на что нет прав.

В этом случае, вам придется самостоятельно предоставить себе такие права вручную. 

На самом деле, подветок, на которые у вас нет прав, по каждому компоненту может быть очень много. Чтобы не искать их все, наша задача будет предоставить права на ветку [HKEY_CLASSES_ROOT\CLSID] и ВСЕ ВЛОЖЕННЫЕ ПОДВЕТКИ. Это важно. 

Прежде, чем работать с реестром, очень рекомендую сделать точку восстановления.

Создание точки восстановления

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

Дальше нужно будет нажать кнопочку Создать, выполнить необходимые действия и дождаться окончания создания точки восстановления. О чём будет дано соответствующее сообщение.

Предоставления прав на ветку реестра Windows

Вам понадобится зайти в утилиту regEdit.exe. Для начала сделайте точку восстановления.

Итак, вы запускаете regedit.exe (Нажимаете Win+R, вводите regedit.exe и нажимаете Ok). Затем предоставляете права в точности как не картинке ниже (Рисунок 1).

Рисунок 1

Чтобы было предельно понятно, расписываю подробно каждый шаг:

  1. Войдите в систему под учётной записью из группы «Администраторы».
  2. С помощью пункта «Выполнить» меню «Пуск» запустите программу «regedit.exe» («Редактор реестра»).
  3. В открывшемся окне программы «Редактор реестра» в левой панели выделите интересующий вас раздел реестра и вызовите его контекстное меню (правой кнопкой мыши).
  4. Теперь, в контекстном меню выберите пункт «Разрешения…».
  5. В открывшемся диалоге «Разрешения для …» нажмите кнопку «Дополнительно».
  6. открывшемся диалоге «Дополнительные параметры безопасности для …» перейдите на вкладку «Владелец».
  7. Убедитесь, что текущий владелец – группа «Администраторы» и перейдите к выполнению пункта 9.
  8. Выберите в списке «Изменить владельца» группу «Администраторы». Если её там нет, добавьте её туда с помощью кнопки «Другие пользователи или группы…».
  9. Установите флажок «Заменить владельца подконтейнеров и объектов».
  10. Нажмите кнопку «Применить», чтобы сменить владельца интересующего вас раздела реестра и всех подчинённых разделов на группу «Администраторы».
  11. Закройте диалог «Дополнительные параметры безопасности для …», при этом вы вернётесь в диалог «Разрешения для …».
  12. В списке «Группы или пользователи» выберите группу «Администраторы». Если её там нет, добавьте её туда с помощью кнопки «Добавить…».
  13. В списке «Разрешения для группы «Администраторы» снимите флажки «Запретить» и установите флажок «Разрешить полный доступ».
  14. Нажмите кнопку «Применить», чтобы сменить разрешения для интересующего вас раздела реестра группе «Администраторы».
  15. Нажмите кнопку «Дополнительно».
  16. В открывшемся диалоге «Дополнительные параметры безопасности для …» на вкладке «Разрешения» установите флажок «Заменить все разрешения дочернего объекта на разрешения, наследуемые от этого объекта».
  17. Нажмите кнопку «Применить», чтобы сменить разрешения всех подчинённых разделов интересующего вас раздела реестра.
  18. Закройте диалог «Дополнительные параметры безопасности для …» и диалог «Разрешения для …», при этом вы вернётесь в окно программы «Редактор реестра».
  19. Закройте окно программы «Редактор реестра».

После предоставления прав, вам нужно вернуться к Шагу 2, и выполнить его. После того как Шаг 2 пройдет без ошибок, программа печати PDF417 будет работать.


Напишите, что у вас получилось. Если что, я могу помочь это сделать на вашем компьютере удаленно.