С интересной проблемой столкнулась моя знакомая бухгалтер(-ша). Она обновила свою программу Налогоплательщик ЮЛ, сформировала отчет, а при попытке его распечатать выскочила ошибка: «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»…
Если у вас возникает подобная ошибка, которая почему-то не исправляется даже после установки соответствующего пакета, то тогда нужно сделать следующее:
- Зайти в только что распакованную папку «-problem».
- Найти там файл «winscr+.bat».
- Запустить этот файл.
У вас появится чёрное окно терминала с надписями.
После чего выскочит окошко с сообщением.
Закройте это окошко нажав кнопку ОК
Подобные надписи и окошки выскочат для каждого из четырёх компонентов. После чего в чёрном окне терминала появится надпись: «Press any key to end».
Нажимаете любую клавишу, чтобы окно терминала закрылось и пробуете печатать. Всё должно работать.
Если у вас всё же не заработало или Шаг 2 прошёл с ошибками, то почитайте ниже раздел «Решение проблем».
Отсутствует или повреждён пакет «Microsoft XML 4.0″…
Если у вас остается эта ошибка даже после установки соответствующего пакета, то вам нужно сделать следующее:
- Зайти в только что распакованную папку «-problem».
- Найти там файл «msxml4+.bat».
- Запустить этот файл.
У вас появится чёрное окно терминала с надписями.
Через некоторое время выскочит окошко с сообщением.
Закройте это окошко, нажав кнопку ОК
После успешного выполнения программы в терминале появится надпись «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).
Чтобы было предельно понятно, расписываю подробно каждый шаг:
- Войдите в систему под учётной записью из группы «Администраторы».
- С помощью пункта «Выполнить» меню «Пуск» запустите программу «regedit.exe» («Редактор реестра»).
- В открывшемся окне программы «Редактор реестра» в левой панели выделите интересующий вас раздел реестра и вызовите его контекстное меню (правой кнопкой мыши).
- Теперь, в контекстном меню выберите пункт «Разрешения…».
- В открывшемся диалоге «Разрешения для …» нажмите кнопку «Дополнительно».
- открывшемся диалоге «Дополнительные параметры безопасности для …» перейдите на вкладку «Владелец».
- Убедитесь, что текущий владелец – группа «Администраторы» и перейдите к выполнению пункта 9.
- Выберите в списке «Изменить владельца» группу «Администраторы». Если её там нет, добавьте её туда с помощью кнопки «Другие пользователи или группы…».
- Установите флажок «Заменить владельца подконтейнеров и объектов».
- Нажмите кнопку «Применить», чтобы сменить владельца интересующего вас раздела реестра и всех подчинённых разделов на группу «Администраторы».
- Закройте диалог «Дополнительные параметры безопасности для …», при этом вы вернётесь в диалог «Разрешения для …».
- В списке «Группы или пользователи» выберите группу «Администраторы». Если её там нет, добавьте её туда с помощью кнопки «Добавить…».
- В списке «Разрешения для группы «Администраторы» снимите флажки «Запретить» и установите флажок «Разрешить полный доступ».
- Нажмите кнопку «Применить», чтобы сменить разрешения для интересующего вас раздела реестра группе «Администраторы».
- Нажмите кнопку «Дополнительно».
- В открывшемся диалоге «Дополнительные параметры безопасности для …» на вкладке «Разрешения» установите флажок «Заменить все разрешения дочернего объекта на разрешения, наследуемые от этого объекта».
- Нажмите кнопку «Применить», чтобы сменить разрешения всех подчинённых разделов интересующего вас раздела реестра.
- Закройте диалог «Дополнительные параметры безопасности для …» и диалог «Разрешения для …», при этом вы вернётесь в окно программы «Редактор реестра».
- Закройте окно программы «Редактор реестра».
После предоставления прав, вам нужно вернуться к Шагу 2, и выполнить его. После того как Шаг 2 пройдет без ошибок, программа печати PDF417 будет работать.
Напишите, что у вас получилось. Если что, я могу помочь это сделать на вашем компьютере удаленно.