Ошибка внешней компоненты 1с
· для банковских выписок;
· для мониторинга банков;
· для склонения имен;
· сервисом «СПАРК риски»;
· для формирования штрихкодов;
2. Как избавится от данной ошибки в системе 1С
Зачастую за сервисы, которые используются в базе отвечают конкретная константа и функциональная опция, поэтому в первую очередь следует проверить, установлено ли на данной константе в состояние «Истина».
Если ошибка в системе 1С появилась недавно, а до этого момента все работало нормально, предлагается почистить кэш 1С, а также перезагрузить сервер. Если данная рекомендация не помогла, следует проверить наличие регистра сведений «Кэш файлов». Для этого нужно в главном меню открыть пункт «Все функции», далее выбрать «регистры сведений», а затем найти регистр «Кэш файлов» и нажать кнопку «Очистить кэш». После этого нужно перезапустить платформу.
Если в результате данных манипуляций ошибка все еще появляется, следует проверить, как называется данная компонента в конфигураторе и зарегистрировать ее в системе Windows. Для этого нужно открыть командную строку Windows под правами администратора и использовать команду regsvr32 "", где "" – путь к компоненте (*.dll). Пример регистрации компоненты «comcntr.dll»:
После удачной регистрации компоненты обязательно нужно перезапустить службу агента 1С.
Может возникнуть вопрос, «где же взять файл компоненты?». Некоторые компоненты идут в самой поставке платформы 1С. Ярким примером такой компоненты является «comcntr.dll». Данная компонента отвечает за COM соединения, что позволяет обмениваться данными между базами и сервисами по данной технологии. Остальные компоненты зачастую предоставляются сервисами, которые вы используете.
В данной статье мы рассмотрели основные возможности устранения ошибки отсутствия файла компоненты 1С. Но важно понимать, что при работе с таким многогранным и сложным продуктом как 1С трудности возникать будут – увы, как бы хороши ни были программные решения 1С, ничто в этом мире не идеально. Поэтому если у Вас возникают вопросы, не стесняйтесь обратиться за помощью. Наши специалисты всегда рады помочь в решении сложных задач!
Спасибо за уделенное внимание и пусть Ваши дела всегда идут только в гору!
Специалист компании ООО «Кодерлайн»
Кулажевский Сергей Дмитриевич
Вас могут заинтересовать следующие статьи:
Ошибка внешней компоненты ПРИ ПЕЧАТИ ШТРИХ-КОДА
Вот такие дела. Кто с таким сталкивался и как победил ? Заранее спасибо !
Сабж
Ошибка времени выполнения:
: Ошибка при установке значения атрибута контекста (РазмерШрифта) в модуле Обработка.ПечатьЭтикетокИ� �енников, строка 256.
.
При этом созданная «этикетка по умолчанию», содержащая шрихкод, прекрасно выводилась на печать до тех пор пока не изменялся ее размер. Изменение параметров штрихкода-картинки («растянуть», «реальный размер», «пропорционально») никакого эффекта не давали.
Победить проблему не удалось, зато удалось ее «замаскировать»:
1. В конфигураторе был задействован режим отладки: меню Отладка\ Остановка по ошибке\ ставим галочку в пункт Останавливаться по ошибке и сохраняемся (Сделайте бекап базы и/или конфигурации на всякий пожарный случай)
2. Запускаем одновременно с конфигуратором (можно прямо из него) 1С и повторяем событие ошибки.
3. Нас перебрасывает в конфигуратор на нужную нам строку в которой как-раз и стоит параметр «размер шрифта»
4. Закомментируем (то есть «спрячем» от исполнения программой) эту строку кода: перед строкой впереди поставим два слэша - \\ (строка поменяет цвет текста на зеленый)
5. Сохраняем конфигурацию и перезапускаем 1С
6. В 1Ске делаем следующее: открываем шаблон нашей этикетки и видим, что рядом с надписью: «Тип кода (выборка) EAN13» чуть правее стоит галочка в пункте «Отображать текст». Снимаем галочку.
7. Теперь сформированный штрихкод будет отображаться просто как штрихкод, без записи его значения в цифровом отображении (с размером шрифта этих цифр и происходит сбой при выводе на печать).
8. Создаем свою этикетку, правим ее, вставляем штрихкод и растягиваем его как нам нужно.
9. Если кроме штрихкода вам нужны еще и цифры составляющие его, то ниже/выше/рядом со штрихкодом вставьте еще один, но уже в текстовом виде (при вставке штриха 1С вас спросит – вставить ли его как картинку – откажитесь и получите штрихкод в цифровом символьном виде) и отредактируйте что бы оба штриха были у вас рядом и выглядели так как вам нужно.
Это конечно не решение проблемы, но это поможет вам сделать этикетку на печати нужного вам вида и размера.
P.S. Для тех кто мучается с выводом текста этикетки на печать (этикетка печатается со смещением от края/ распечатывается кусками на 4-6 наклеек/ печатается криво и не позволяет менять размер шрифта и пр.): не забудьте что в 1С 8.2 есть в верхнем левом углу меню Файл\ Параметры страницы так же отвечающие за вывод текста на печать (а так же есть настройки отображения при печати в самом драйвере принтера – щелкните по принтеру правой клавишей мыши и настройте).
Добрый день, дорогие друзья, я в своей работе часто сталкивался с рядом ошибок связанных с com объектами. Когда я только начинал работать в сфере ИТ, то подобные ошибки о которых пойдет речь ниже, вызывали у меня недоумение и я отправлял пользователей к программистам, но потом шло время и опыт мой рос, такие проблемы начал решать самостоятельно, теперь хочу поделиться решениями с вами.
Рассмотрим первый пример - ошибка связана с внешней обработкой EDI
Данная ошибка устраняется очень просто, вам нужно зарегистрировать excon.dll. Для этого открываем cmd от имени администратора и прописываем следующие команды
Решается не сложно, но для решения есть несколько методов и в разных ситуациях спасает тот или иной метод решения. Ниже рассмотрим примеры данной ошибки и решения.
Первое что нужно попробовать сделать на машине пользователя - это зарегистрировать comcntr.dll
Для этого открываем cmd от имени администратора и прописываем следующие команды
regsvr32 "C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
cd c:\Windows\SysWOW64 regsvr32 "C:\Program Files\1cv8\ 8.3.15.1778 \bin\comcntr.dll" - Все что выделено жирным шрифтом, в вашем случае может отличаться
Если данное решение не помогает, то нужно проверить на сервере 1С возникает такая же ошибка или нет, если возникает при тех же действиях, то сделать следующие действия в cmd от имени администратора
"C:\Program Files (x86)\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver - Все что выделено жирным шрифтом, в вашем случае может отличаться
"C:\Program Files\1cv8\ 8.3.15.1778 \bin\1cv8.exe" /regserver " - Все что выделено жирным шрифтом, в вашем случае может отличаться
Можно создать данное com соединение с помощью "Службы Компонентов Windows" , об этом рассказывать не буду в данной статье, если вам нужна информация, пишите комменты, я свяжусь с вами и все расскажу. Если будет много пожеланий, сделаю отдельную статью на эту тему.
1. Есть УТ ред 11.3.3. При печати этикеток выдает ошибку "не найден файл внешней компоненты" файл во вложении
2. Работа устроена так. База располагается на сервере 1С Предприятии
3. Компьютер с которого отправляют на печать этикетку работает через тонкий клиент, к нему же и подключен принтер этикеток
4. Все работало до вчерашнего дня, пока не вышла ошибка при работе с базой, и всех выкинуло из программы.
5. Причина - нехватка свободного места на диске, на сервере.
(2)Ничего не нашел, где бы указывался путь к файлу
(3)Вчера как раз и чистили. Была нехватка свободного пространства. Освободили
нужно понять что за файл внешней компоненты, как называется, где его искать, может просто его удалили.
нужно понять что за файл внешней компоненты, как называется, где его искать, может просто его удалили.
На клиентской машине 1С barcode даже не был установлен, и печатал себе без проблем. Но установил по новой. И не помогло
а макет ценника открывается для редактирования?
запустить отладку и поставить галочку на "останавливаться на ошибке"
вот что выяснил:
Вот тут в строке -
вываливается в ошибку
3. А это проходит успешно
ПодключениеВыполнено = ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиШтрихкодов", "КартинкаШтрихкода", ТипВнешнейКомпоненты.Native);
(10) Достаточно перезагрузить Сервис 1С, не обязательно весь сервер.
Проблема возникает при удалении / блокировании временного файла на котором отрабатывала внешняя компонента, можно пойти способом (12), можно решить проще. Получитьимявременногофайла(), и использовать его имя в качестве адреса.
Вообще по штрихкодам, всюду где не нужна картинка, а можно обойтись шрифтом штрихкода - лучше обойтись шрифтом (imho).
не , это не решение вопроса, у меня такая же проблема с этой компонентой . час поработает , а потом валится перезапуск сервера, изменение чего то в конфе, а потом ее обновление , динамически или нет , решает проблему помогает ненадолго, но это не вариант .
в общем я сделал следующий обходной трюк , может быть кому поможет, у меня пока работает, но на 100% я не уверен.
Т.О я регистрирую компоненту каждый раз под новым именем , и надо помнить, что имя компоненты не может начинаться с цифры, в следствии чего и есть код который отсеивает такие неприятности.
Отличное решение.
Только вместо функции ПолучитьИмяКомпоненты() можно написать 1 строку:
Такая же ошибка всплыла при переходе с 8.3.6 на 8.3.11.2954 с одновременным переездом СЭД 1.4 на 2.0.19.
То лавинообразно появляется у всех юзеров, то так же внезапно у всех работает нормально.
Решение пока не нашел.
Обновили платфору.
Платформа: 1С:Предприятие 8.3 (8.3.13.1690)
Конфигурация: Документооборот 8 КОРП, редакция 2.1 (2.1.12.2)
Началось такое же. Причем какое-то время всё работало, а потом внезапно началось:
: Ошибка при вызове метода контекста (ПолучитьДанныеДляВставкиШтрихкодаВОбъект)
ДанныеОШтрихкоде = ШтрихкодированиеСервер.ПолучитьДанныеДляВставкиШтрихкодаВОбъект(Приемник);
по причине:
Не найден файл внешней компоненты
Штрихкодирование вообще не используем.
На тестовой базе нет таких ошибок, работают на одном серваке, в тест залили уже после образования ошибок.
(18) Нам помогает перезагрузка, но кратковременно, практически каждый день ошибки возникают.
Сейчас переделал как в (12), посмотрим что будет.
(21) переписали в каком смысле? Прошу прощения, если вопрос глупый, столкнулась с такой проблемой впервые.
(23) наверно, было бы наглостью, попросить ее у Вас))) скачала версию новую компоненты, попробуем с ней, как будет
В последних релизах различных типовых конфигураций штрих-код формируется с помощью общего макета метаданных КомпонентаПечатиШтрихкодов, а также вспомогательных функций и процедур: ПодключитьВнешнююКомпонентуПечатиШтрихкода, ОпределитьТипШтрихкода, ПолучитьКартинкуШтрихкода и т.п.. Файл установки компоненты доступен по подписке на сайте ИТС https://its.1c.ru/ . При возникновении ошибки 1CBarCode: "Ошибка внешней компоненты" некорректное значение свойства "Шрифт" - необходимо обновить 1CBarCode.exe до последней версии. Работа с QR-кодом осуществляется с помощью функций в модуле объекта ПолучитьГенераторQRкода() и ПолучитьQRкод(). Типовая печать QR-кода в 1С 8.3 реализована на уровне Библиотеки стандартных подсистем, которая соответствует национальному стандарту штрихкодирования платежных реквизитов и доступен при подписке на ИТС.
Появилась аналогичная проблема: на сервере перестала подключаться КомпонентаПечатиШтрихкодов и стало выскакивать ошибка "Не найден файл внешней компоненты".
Если подключать компоненту на клиенте в толстом клиенте - то все хорошо, а на сервере нет.
Перезагрузка сервера - помогает не на долго.
При подключение компоненты в папку C:\Windows\Temp платформа сохраняет временный файл этой компоненты.
И скорее всего этот файл кто то удаляет - поэтому и появляется эта ошибка.
Выяснил, что у сисадминов есть скрипты, которые чистят папку Temp на компьютерах.
Но! так же заметил, что в папке Temp есть огромная папка, в которую пишется технологический журнал сервера 1С. Как оказалось, за день до проявления проблемы - один из коллег включил технологический журнал. И в этой папке за 1 час добавлялся файл на 8гб, а за позапрошлый час файл удалялся.
Технологический журнал выключил.
Сисадминов попросил не чистить эту папку на серверах.
И все заработало.
Думаю, что проблема была в включение технологического журнала.
Возможно глюк, а возможно он стал писаться в папку Temp, а сама Windows решила чистить эту папку.
Но и возможно сисадмины своими скриптами чистили.
Зачастую у программистов возникают проблемы с подключением внешних компонент (например, драйверов торгового оборудования), когда пользователи работают с 1С, подключаясь к серверу через терминал.
Это связано с некоторыми особенностями работы функции глобального контекста ПодключитьВнешнююКомпоненту().
Зачастую у программистов возникают проблемы с подключением внешних компонент (например, драйверов торгового оборудования), когда пользователи работают с 1С, подключаясь к серверу через терминал.
При этом пользователи видят, например, картинку представленную в анонсе статьи.
В то время как при работе с локальных компьютеров никаких проблем с подключением внешних компонент нет.
С чем это связано? Это связано с тем, что, когда пользователи работают через сервер терминалов, они имеют меньше прав, чем при работе на локальном компьютере.
В этом легко убедиться, если зайти на сервер терминалов под учетной записью с административными правами.
Причина такой разницы заключается в том, что 1С не может зарегистрировать внешнюю компоненту в реестре, когда пользователь работает в терминале под обычными правами, т.к. у обычного пользователя нет прав на запись в ветку системного реестра HKEY_CLASSES_ROOT.
В публикациях на тему подключения внешних компонент в терминале предлагаются самые разные методы решения этой проблемы.
1. Запустить первый раз 1С под административными правами.
Этот вариант далеко не всегда срабатывает. Ниже объясню, почему.
2. Дать обычным пользователям терминала права на запись в ветку системного реестра HKEY_CLASSES_ROOT.
Недостаточно "продвинутым" пользователям лучше этого не делать, иначе могут быть проблемы.
3. С помощью различных "примочек" регистрировать ВК от имени пользователя с полными правами.
Тоже не есть хорошо.
Так как же все таки лучше выйти из этой ситуации?
Я предлагаю свой вариант решения этой проблемы. По моему мнению - простой и красивый, не предлагавшийся на инфостарте ранее.
Дело оказалось в том, что в типовых конфигурациях 1С (например "Управление Торговлей") используется такой синтаксис метода глобального контекста ПодключитьВнешнююКомпоненту():
ОбъектДрайвера = Новый ("AddIn.АТОЛСканер.Scaner45");
Как видим, ВК драйвера подключается из макета "ДрайверАТОЛСканерШтрихкода" справочника "ПодключаемоеОборудование".
Что же при этом происходит?
1С сохраняет компоненту во временной папке пользователя, например "C:\Documents and Settings\User\Local Settings\Temp\1032\v8_4_12.tmp"
и пытается зарегистрировать ее в ветке реестра HKEY_CLASSES_ROOT именно по этому пути.
На терминале у обычных пользователей нет прав на изменение этой ветки реестра, поэтому компонента у них не подключается.
Теперь о том, как выйти из этой ситуации.
Метод глобального контекста ПодключитьВнешнююКомпоненту() имеет несколько вариантов синтаксиса. Вот этим мы и воспользуемся.
Итак, по шагам:
1. Регистрируем внешнюю компоненту утилитой regsvr32.exe на сервере терминалов в папке C:\WINDOWS\SYSTEM32 для 32-разрядной ОС или в папке C:\WINDOWS\SYSWOW64 для 64-разрядной ОС.
2. Используем один из двух дополнительных вариантов синтаксиса метода ПодключитьВнешнююКомпоненту():
Вариант 1:
ОбъектДрайвера = Новый ("AddIn.АТОЛСканер.Scaner45");
Вариант 2:
ОбъектДрайвера = Новый (ProgID);
На мой взгляд, вариант № 2 предпочтительнее.
При этом 1С не пытается перерегистрировать ВК по новому пути в реестре и таким образом, все проблемы решаются.
Ну вот собственно и все. Успехов в работе!
Специальные предложения
В то время как при работе с локальных компьютеров никаких проблем с подключением внешних компонент нет.
Глубоко ошибаешься. В путних сетках и тут проблемы, потому что в путних сетках и локальных административных прав у юзверя быть не должно. А то они там нарегят/наинсталлируют!
Там и софт по минимуму, все что нужно - в терминале. :)
Но, если так необходимо, то, думаю, на локальной машине данная методика также будет работать, т.о. "ложка не существует". :)
Очередной баян для новичков в работе с внешними ВК.
Со времен 77 здесь ничего не изменилось :)
Но за изложение плюсую.
Ничего не изменилось говорите?
Вы хоть в сути описанной в статье проблемы разобрались?
Разве в 77 внешние компоненты хранились в макетах справочников?
Разве 77 сохраняла их во временном каталоге пользователя и пыталась их потом там зарегистрировать?
(6) А если еще подумать?
В 77 также были случаи неверной регистрации ВК - например, Админ в терминале заходит в одну базу и регистрирует ВК из каталога базы, а пользователь, у которого эта ВК юзается, но в другой базе, не может запустить эту ВК, если у него прав на папку с первой базой :(
Поэтому, например, для нормальной работы в 77 и придумано куча решений - тот же вариант с RunAs или загрузка обычных ВК через спец.ВК от Саши Орефкова и т.п.
Я же говорю - по работе с ВК ничего не изменилось!
А описанные проблемы - это проблемы прикладного кода, в частности, кода по работе с торговым оборудованием.
Разработчики этого кода либо не знали о сабжевой проблеме, либо пренебрегли ей :(
ЗЫ кстати, в 77 ВК также можно было хранить в макетах, правда, с использованием доп.ВК :)
ЗЗЫ а еще обрати внимание - плюс-то я тебе все-таки поставил :)
Вот это по моему мнению как раз и есть "париться" - т.е. разобравшись в сути проблемы только наполовину, искать обходные пути для ее решения.
Вот это по моему мнению как раз и есть "париться" - т.е. разобравшись в сути проблемы только наполовину
Ага, наполовину. Суть проблемы элементарна - отсутствие прав.
Ссылка раз и навсегда решает проблему того же regsvr32 БлаБла у любого юзверя выполнением RunAs от имени пользователя с админскими правами.
Ну-ка расскажи в чем ты там ПОЛНОСТЬЮ разобрался?
На терминале у обычных пользователей нет прав на изменение этой ветки реестра, поэтому компонента у них не подключается.
.
Итак, по шагам:
1. Регистрируем внешнюю компоненту утилитой regsvr32.exe на сервере терминалов в папке C:\WINDOWS\SYSTEM32 для 32-разрядной ОС или в папке C:\WINDOWS\SYSWOW64 для 64-разрядной ОС.
Ну в чем профит-то? В том что вы взяли её и зарегистрировали? Явно кто-то в чем-то полностью переразобрался.
Не понял смысл статьи.
Админ и так знает, как зарегистрировать dll-ку, у 1Сника при нормальном распределении обязанностей нет никаких прав на серваке.
Вот именно - отсутствие прав это вторая половина проблемы.
А первая и основная половина состоит в том, почему 1С пытается перерегистрировать ВК, и как этого избежать.
Потому что не надо использовать (в т.ч. и фирме 1С) дебильную ПодключитьВнешнюю.. с разными там синтаксисами,
а надо использовать ЗагрузитьВнешнююКомпоненту(ПолныйПутьКДЛЛ), а либы лучше всего хранить в КаталогПрограммы(), либо (для файлухи и 7.7) в КаталогИБ()
cool.vlad4 пишет:
Ну в чем профит-то? В том что вы взяли её и зарегистрировали? Явно кто-то в чем-то полностью переразобрался
Не спешите с выводами не разобравшись.
Дело в том, что вы ее хоть сто раз зарегистрируйте, но если вы оставите без изменений типовой код,
1С будет безуспешно пытаться ее перерегистрировать снова и снова.
(12) Не спешите с выводами, по поводу того, что я спешу с выводами не разобравшись. В типовой так сделано, потому, что ребята делали универсально, они не могут сидеть за вашим компьютером и регистрировать от имени администратора компоненту, не зная пароля тем более. А админы прекрасно об этом знают и ручками зарегят или скрипт напишут(run as). А ваша статья просто кэпство, но самое противное - преподносится как доселе неведомое чудо.
Ну что тут сказать? Значит невнимательно читали статью, или никогда не сталкивались с такими проблемами.
Конечно, админ знает, как зарегистрировать dll-ку.
Он ее и регистрирует. Но потом оказывается что у рядовых пользователей она в терминале не подключается.
Вот в чем суть проблемы то!
У вас видимо патологическое отвращение к чужим разработкам.:)
Конечно, это не чудо. Но тем не менее, я когда столкнулся с этой проблемой, нигде в инете не нашел объяснения причин этой проблемы. Везде освещалась только вторая часть проблемы (недостаток прав на реестр) и способы ее обхода. И нигде не говорилось об основной части проблемы - почему 1С пытается перерегистрировать ВК по новому пути.
Согласен, не спорю. Спасибо.:)
artbear пишет:
А описанные проблемы - это проблемы прикладного кода, в частности, кода по работе с торговым оборудованием.
Разработчики этого кода либо не знали о сабжевой проблеме, либо пренебрегли ей :(
Совершенно верно. Но рядовому программеру от этого как бы не легче.
А эта статья конечно не претендует на какую-то особенность и гениальность.
Это просто статья человека который столкнулся с проблемой, и не нашел приемлемого для себя метода ее решения в инете.
Это попытка самостоятельно разобраться в проблеме и поделиться своим решением с другими - быть может сэкономив кому то время на решение аналогичных проблем.
Здесь есть одно большое НО.
А мне нужно было подключать сканер штрих-кодов в ТОНКОМ клиенте.
(19) сканер штрих-кода успешно подключается в тонком клиенте, пример реализации можно посмотреть в УПП 1.3, в последних двух релизах
А скажи на милость: на фига в ТЕРМИНАЛЕ еще и тонкий клиент?
Терминал сам по себе уже тонким клиентом является
Abadonna пишет:
А скажи на милость: на фига в ТЕРМИНАЛЕ еще и тонкий клиент?
Терминал сам по себе уже тонким клиентом является
Ну, тут уж как бы наше руководство так решило для единообразия.
Как пел Высоцкий, "Жираф большой - ему видней".:)
Все работают с 1С в тонком клиенте управляемого приложения.
Чтобы можно было и через терминал подключаться и просто с локальной машины.
fishca пишет:
сканер штрих-кода успешно подключается в тонком клиенте, пример реализации можно посмотреть в УПП 1.3, в последних двух релизах
Пример реализации я брал из УТ11.
Он то конечно подключается, если у пользователя достаточно прав на запись в ветку реестра .
А вот если у пользователя недостаточно этих прав, тогда и начинаются проблемы которые описаны в этой статье.
После выполнения regsvr32 весь код укладывается в одну строку:
ОбъектДрайвера = Новый COMОбъект("AddIn.Scaner45");
Чтобы не быть голословным - рис.
(24)
"После выполнения regsvr32 весь код укладывается в одну строку:
ОбъектДрайвера = Новый COMОбъект("AddIn.Scaner45"); "
А страница свойств компоненты появится при таком подходе ?
Abadonna пишет:
После выполнения regsvr32 весь код укладывается в одну строку:
ОбъектДрайвера = Новый COMОбъект("AddIn.Scaner45");
Ну, раз говоришь что работает, верю.
Хотя мне это кажется странным. По идее не должно было.:)
Именно, что должно . :)))
Это как раз стандартное обращение к зарегенным в реестре интерфейсам COM, Active-X
В 7.7 это было бы так: Lib=СоздатьОбъект("Miracle.VCL")
В Дельфи: Lib:=CreateOleObject('Miracle.VCL')
И в любой другой виндовой хрени аналогично ;)
Да, но в 7.7 перед этим вызывался метод ЗагрузитьВнешнююКомпоненту("FormEx.dll");
Без этого СоздатьОбъект() не работало.
Ладно, начнем ликбез по порядку :))))
1. ЗагрузитьВнешнююКомпоненту от 1С - как раз и производит регистрацию в реестре интерфейса соотвествующей либы, написанной по технологии создания внешних компонент от 1С (ТСВК). Вот именно в этом случае, и возникает трабла с правами на запись в реестр, неважно в каком месте: на терминале или локальном компе
2. СоздатьОбъект - уже и создавала (в аналогии 8.2) Новый COMОбъект по указанному progid
В 8.2, как в обычной виндовой программе, все точно так же.
Если ЛЮБАЯ ВК написана по технологии COM и предварительно зарегена через regsvr32 (т.е. уже есть progid), никаких
Подключить/ЗагрузитьВнешнююКомпоненту уже не надо ни в 7.7, ни в 8.2.
В моем примере выше либа для 7.7 писалась не по ТСВК, она обязательно требовала regsvr32, но при этом совершенно не понимала никаких Подключить/ЗагрузитьВнешнююКомпоненту
+(29) А FormEx.dll - вообще супер-специфичная либа, там Лёха залез в самое нутро 1С, последние её версии вообще в реестре следов не оставляют, и ЗагрузитьВнешнююКомпоненту("FormEx.dll") пройдет всегда, у любого юзверя, с любыми правами
УТ 10.3. Платформа 8.2.13.202. У меня при настройке перенаправленого в терминальный сервер торгового оборудования выпадает 1С при тестировании драйвера. Однако если на это не заморачиваться, то Интерфейс Кассира работает и чеки пробиваются. Может кому-то пригодится, т.к. мы очень долго не понимали в чем дело и не пробовали пробить чек из Интерфейса Кассира ))))
В описанном мной случае проблемы возникали когда ВК хранится в макете справочника.
При подключении она сохраняется во временный файл временного каталога пользователя.
Поэтому для использования RegsvrEx нужно знать полный путь к этому временному файлу.
Ну а вообще использование нескольких дополнительных разработок вместо стандартного
типового механизма и маленькой правки кода не кажется мне оптимальным.:)
(33) Смею заметить, ничего против Вашей публикации не имею :). "стандартный типовой механизм" не всегда вставляет, иногда своя реализация кажется более универсальной :).
Спасибо за просвещение, а то у БиТ купили продукт, а они используют свой сервер лицензий, и для этого пытаются регистрировать внешние компоненты, до сих пор приходилось делать запуск под Админом, теперь попробуем переписать чтобы было по человечески.
Спасибо за статью. Столкнулся с аналогичным случаем при работе с эмулятором фискального регистратора. Конечно же лучше запускать 1С через тонкий клиент с машины к которой подключено оборудование, но некоторые клиенты настаивают на использовании терминала ( тем более если фискальный регистратор виртуальный - используется эмулятор). Почему-то после обновления УТ11 до 11.1 вдруг 1С стала просить драйвера на эмулятор фискального регистратора, хотя сканнер штрих-кодов продолжает прекрасно работать.
Добавил бы уточнения к алгоритму решения этой проблемы: ( которые кстати подчерпнул из вашего же комментария только в другом форуме )
В общих макетах лежат драйвера различного оборудования. Там собственно и хранилась нужная мне dll.
Щелкаем на этом макете и нажимаем кнопочку "Выгрузить в файл".
Файлу даем любое имя и расширение zip.
Открыв архив видим несколько файлов, в том числе нужный мне FPEmulator1C.dll. Распаковываем и копируем его в зависимости от разрядности windows в папку для 32х - C:\Windows\Sysytem32 , для 64х - C:\Windows\SysWOW64.
Запускаем Пуск/Все программы / Стандартные / Командная строка - только правой кнопкой мыши вибираем "Запуск от имени администратора" . В командной строке переходим в нужную папку (C:\Windows\Sysytem32 или C:\Windows\SysWOW64 ).
В командной строке - cd C:\Windows\Sysytem32
Пробуем регистрировать его с помощью команды regsvr32.exe .
В командной строке - regsvr32 FPEmulator1C.dll
Если все успешно тогда переписываем код в конфигурации в соответствии со статьей.
Читайте также: