При работе с платформой 1С:Предприятие 7.7 в конфигурации «Торговля и Склад» пользователи часто сталкиваются с проблемой печати штрихкодов. Основная причина — отсутствие или некорректная регистрация в системе ActiveX-компоненты BARCODE.OCX. Ситуация осложняется, когда после регистрации библиотеки приложение 1С начинает аварийно завершаться с ошибками в модуле mfc42.dll. Разберем пошагово, как решить эту проблему, учитывая особенности работы на терминальных серверах и современных операционных системах.
Ошибка приложения 1cv7.exe по адресу модуля mfc42.dll сигнализирует о конфликте версий системных библиотек. Проанализируем ситуацию: компонента BARCODE.OCX при обращении к ней пытается вызвать функции из состава Microsoft Foundation Classes. Если версия mfc42.dll в системе была обновлена сторонним ПО (например, браузером или офисным пакетом) или, наоборот, слишком стара, возникает критический сбой. Также причиной может быть работа механизма DEP (предотвращение выполнения данных), который блокирует выполнение кода старой компоненты в оперативной памяти.
Если вы работаете на Windows Server 2003 или другом терминальном сервере, обычного запуска командной строки может быть недостаточно. Рассмотрим алгоритм регистрации, который гарантирует прописывание ключей реестра для всех сессий пользователей:
change user /install
BARCODE.OCX в системную папку C:\Windows\System32 (или SysWOW64 для 64-битных систем).regsvr32:
regsvr32 C:\Windows\System32\BARCODE.OCX
change user /execute
Важный нюанс: если регистрация не помогает, попробуйте предварительно «разрегистрировать» старую версию командой regsvr32 /u BARCODE.OCX, а затем очистить папку Bin платформы 1С от дубликатов этого файла.
Часто 1С 7.7 вылетает сразу после регистрации компоненты именно из-за настроек безопасности Windows. Проанализируем настройки быстродействия системы. Чтобы разрешить работу BARCODE.OCX, необходимо добавить исполняемый файл платформы в список исключений:
1cv7.exe (обычно находится в C:\Program Files\1Cv77\BIN\) и подтвердите выбор.Практика показывает, что не все версии BARCODE.OCX одинаково стабильны. Посмотрим на опыт администраторов: наиболее беспроблемной считается версия компоненты 3.5.0.0 (релиз не выше 952). Если ваша версия отличается и вызывает ошибки mfc42.dll, попробуйте найти и использовать именно этот релиз.
Также рекомендуется проверить наличие прав доступа в реестре. Убедитесь, что у группы «Пользователи» есть права на чтение ветки HKEY_CLASSES_ROOT для объектов, связанных с BARCODE.OCX. В противном случае 1С не сможет инициализировать объект в пользовательской сессии.
Если победить капризную ActiveX-компоненту не удается, разберем более надежный метод — использование специализированных TrueType шрифтов (например, EAN13.ttf или Code39.ttf). Этот способ полностью исключает использование BARCODE.OCX и не зависит от системных библиотек mfc.
Алгоритм действий:
Этот метод считается наиболее стабильным для работы в терминальных средах и современных версиях Windows, так как он не требует регистрации библиотек и не вызывает конфликтов доступа к памяти.