Отключить внешнюю компоненту 1с

Обновлено: 06.07.2024

Зачастую у программистов возникают проблемы с подключением внешних компонент (например, драйверов торгового оборудования), когда пользователи работают с 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С не пытается перерегистрировать ВК по новому пути в реестре и таким образом, все проблемы решаются.


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

Строка . СуммаСтроки = Строка . КоличествоСтроки * Строка . ЦенаСтроки ;

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

В этом случае целесообразно вынести данную процедуру в общий модуль, добавить ключевое слово Экспорт, чтобы данная процедура была доступна из других модулей и вызывать ее из модуля формы:

//обработчик вызываемый при изменении количества в строке табличной части

Вызов общего модуля


В свойствах общего модуля установим флаг Клиент:


В самом модуле добавим следующий код:

В модуле обработки вызовем оба метода общего модуля:

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

Клиентский общий модуль

Если в свойствах общего модуля установлен только флаг Клиент, то к методам такого модуля можно будет обращаться только на клиенте. Из самого общего модуля можно выполнять вызов экспортных методов модуля приложения.


Серверный общий модуль

Если установлен только флаг Сервер, то к методам такого модуля можно будет обращаться только на сервер.


Вызов сервера

При установленных двух флагах Сервер и Вызов сервера к методам модуля можно обращаться как на клиенте, так и на сервере. Но само выполнение методов будет выполнено на сервере.


Клиент-серверный общий модуль

У такого общего модуля в свойствах нужно установить и флаг Клиент и флаг Сервер.


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

Вызывать серверные методы общего модуля можно только на сервере:

//чтобы вызвать серверный метод нужно перейти на сервер

Глобальный общий модуль

Если в свойствах модуля поставить флаг Глобальный, то для вызова методов общего модуля не нужно указывать имя общего модуля.


Глобальные общие модули будут скомпилированы при запуске конфигурации.

Привилегированный общий модуль

Общий модуль с таким флагом всегда выполняется без проверки прав доступа. Такой общий модуль может быть только серверным.


Повторное использование возвращаемых значений

Использование данного свойства позволяет сохранять в кеше параметры и результат функций. Работает только для функций в неглобальных общих модулях.

При первом вызове такой функции она будет выполнена как обычно. После выполнения значения параметров и результат будут сохранены в кеше. Если снова обратиться к такой функции с теми же значениями параметров, то результат будет сразу взят из кеша, без выполнения тела функции.

Есть два варианта повторного использования возвращаемых значений:

Кешированный результат выполнения может быть удален в нескольких случаях:

  • Если в рабочем процессе сервера 1С не хватает оперативной памяти
  • Рабочий процесс был перезапущен
  • Клиент был переключен на другой рабочий процесс
  • Прошло 20 минут после сохранения или 6 минут после последнего использования
  • Если вызвать метод ОбновитьПовторноИспользуемыеЗначения

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

Для сохранения в кеше и повторного использования можно использовать параметры следующих типов:

Данное расширение понадобится тем, у кого при запуске конфигурации Бухгалтерия предприятия, редакция 3.0 появляется ошибка "Не найден файл внешней компоненты". Лечили путем выгрузки загрузки конфигурации через dt файл. Решили отключить проверку компоненты штрихкода при запуске.

Подключается как расширение. Бухгалтерия предприятия, редакция 3.0 (3.0.95.15)

Для подключения необходимо перейти в подсистему Администрирование - Расширения - Добавить из файла.


Отключение проверки компоненты штрихкода при запуске конфигурации Бухгалтерия предприятия, редакция 3.0

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Просмотры 976

Загрузки 0

Рейтинг 2

Создание 27.07.21 10:00

Обновление 27.07.21 10:00

№ Публикации 1487470

Тип файла Расширение (cfe)

Конфигурация 1С:Бухгалтерия 3.0

Операционная система Не имеет значения

Вид учета Не имеет значения

Доступ к файлу Абонемент ($m)

Код открыт Да

[Расширение] Интеграция с Kit Vending (БП 3.0, Розница 2.3, УТ 11, УНФ 1.6) [Расширение] Интеграция с Kit Vending (БП 3.0, Розница 2.3, УТ 11, УНФ 1.6)

См. также

Обработка позволяет просматривать файловые базы 1CD на низком уровне средствами встроенного языка. Реализована часть функциональности Tool_1CD, но на языке 1С Предприятия. Показываются таблицы, параметры таблиц, поля таблиц, записи таблиц, значения полей BLOB, есть 16-ричный просмотр страниц базы и консоль кода. Можно использовать для изучения структуры файлов 1CD, просмотра баз 1CD для выявления повреждений, создания своих обработок для выгрузки данных без открытия исследуемой базы в 1С:Предприятии.

1 стартмани

07.10.2014 63463 397 GusevNA 78

Групповая обработка справочников и документов 8.3 на СКД

Работает на платформе версии не ниже 8.2.16! Работает в интерфейсе "Такси"

3 стартмани

22.10.2021 982 9 serovmsk 0

Проверка настройки заполнения для скриптов 1С:Документооборот

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

1 стартмани

19.09.2021 1185 4 Andrei_Ivanov 6

Превращение доработанной конфигурации в типовую или исправление ошибки "Имеются записи с одинаковыми измерениями"

Помогает решить проблему связанную с дублями в регистрах сведений при возвращении к типовой конфигурации. Ошибка "Имеются записи с одинаковыми измерениями".

1 стартмани

12.02.2021 9074 84 pyrkin_vanya 36

Восстановление битой ссылки на раз-два Промо

Простой способ восстановить битую ссылку типа " (20:94b81c6f65428d5911e2a8bebc48d793)".

1 стартмани

26.04.2013 37392 709 Vin_Tik 36

Восстановление базы 1С из бэкапа SQL при помощи Python

Скрипт для создания копии базы на сервере SQL и добавления базы в кластер 1С.

1 стартмани

16.12.2020 4991 2 user1287977 1

Принудительное выполнение отложенного обновления информационной базы для БП 3.0

Обработка выполняет отложенное обновление информационной базы.

1 стартмани

19.11.2020 5156 17 300_po_vstrechke 4

Просмотр и восстановление любых таблиц БД для компоненты 1CDLib + Быстрая очистка регистра "Замеры времени"

Доработанная обработка для компоненты 1CDLib для просмотра и восстановления любых таблиц БД из БД донора. Тестировалось на версии платформы 8.3.17.1549.

1 стартмани

09.11.2020 5742 69 sxp 2

Поиск, восстановление битой ссылки, 8.3, v 0.2 Промо

Обработка для работы с битой ссылкой, 8.3, v 0.1 Позволяет быстро найти и восстановить битую ссылку.

1 стартмани

24.10.2014 40399 323 infostart user 14

Тестирование любых конфигураций

Расширение для тестирования любых конфигураций на управляемых формах, в том числе тестируется запись, проведение и другие стандартные операции.

1 стартмани

29.10.2020 3439 18 ManyakRus 20

Универсальная корректировка регистров

Универсальная корректировка регистров (обработка для заполнения документа "Корректировка регистров")

3 стартмани

06.08.2020 4502 37 Pashka_SV 7

Поиск и замена значений в 1С (обычные и управляемые формы)

Внешняя обработка Поиск и замена значений в 1С (аналог типовой обработки) - позволяет сделать поиск и замену ссылочных значений в базе

1 стартмани

04.08.2020 4992 34 Denr83 0

Лекарство на случай, если перестала работать форма списка для сделок. (ERP). Промо

Форма списка справочник сделки стала выпадать с ошибкой? Или все еще в порядке, но хочется спокойно съездить в отпуск, без паники, что менеджеры устроят бунт.

1 стартмани

28.07.2016 26126 0 milkers 2

Установка имени предопределенных данных

Обработка для установки имени предопределенных данных для исправления ошибки "Предопределенный элемент отсутствует в данных".

1 стартмани

20.06.2020 4818 3 simon_sidoruk 0

Информация при запуске в БП 3.0 - ошибка кодировки

Расширение для БП 3.0, исправляет использование неверной кодировки при выводе в форму htm файла. Такое бывает, когда ОС сервера и клиента на разных языках.

1 стартмани

01.05.2020 5747 1 JorjKrut 1

2 стартмани

28.04.2020 7174 5 Ион 3

Замена конфигурации в правилах переноса данных. Промо

Те, кто часто занимается созданием правил конвертации данных в конфигурации «Конвертация данных” (речь о редакции 2.1 (2.1.5.1)), знают, что после замены в правилах конвертации одной конфигурации (приемник или источник) все правила конвертации свойств и объектов закрашиваются красным цветом и требуют утомительной ручной правки.

1 стартмани

24.01.2012 48557 561 milkers 68

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

При разработке конфигурации в клиент-серверном варианте могут возникнуть проблемы при загрузке конфигурации в файловый вариант. В статье описан один из вариантов решения проблемы.

1 стартмани

28.01.2020 6817 3 newtraveller 0

Исправление ошибки "Для одного ссылочного кода существует более одной таблицы в базе данных" в БД SQL

3 стартмани

23.01.2020 17037 196 rokhin 58

Поиск и Восстановление битых ссылок (Объект не найден) (обычные и управляемые формы)

Обработка для поиска и восстановления данных по битой ссылке (Объект не найден). Вы можете узнать информацию по удаленному объекту (его уникальный идентификатор, где используется), чтобы в бэкапной базе найти и восстановить этот объект. Данные битой ссылки восстанавливаются по COM соединению с копии базы.

1 стартмани

21.12.2019 7274 94 Denr83 0

Свертка 60, Свертка 62, Исправление ошибок взаиморасчетов, Исправление 60, Исправление 62 Промо

Исправляет все возможные ошибки по счетам расчетов с контрагентом, делает дебетовое сальдо на активном счете и кредитовое на пассивном. кроме того зачитывает все суммы по контрагенту и договору. Сворачивает 60 и 62 счета. Умеет работать с документами взаиморасчетов или без них.

1 стартмани

21.10.2010 41582 681 GoodWinSpr 37

Исправление ошибки платформы 8.3.16 - разворота группы подписей в формах документов. ЗУП 3.1

После обновления платформы на релиз 8.3.16 в документах, где используются подписи ответственных лиц, при развороте группы аварийно закрывалось приложение.

1 стартмани

02.12.2019 19448 12 skudnovv 11

Исправление ошибки в ЗУП 3.1 "Удаление сторнирующей записи невозможно" через расширение

Решение вопроса по ЗУП 3.1 "Удаление сторнирующей записи невозможно" - решение с помощью расширения, чтобы можно было удалять по кнопке "Delete".

1 стартмани

23.11.2019 8153 17 Klinov 6

Ошибка при обновлении "Для одного ссылочного кода существует более одной таблицы в базе данных"

После перехода на новую платформу поменялась (появилась) проверка на дублирование внутренних идентификаторов объектов метаданных. Возможная ошибка при обновлении "Для одного ссылочного кода существует более одной таблицы в базе данных". Лечится изменением идентификатора объекта метаданных.

1 стартмани

30.10.2019 12941 19 user646807_kazako.a911 15

ЧеКист (Чистка Кэша) - универсальное средство очистки локального кэша 1С Промо

Простое в эксплуатации и универсальное в применении средство для исправления ошибок, возникающих с локальным кэшем на клиенте. Легко устанавливается и быстро развертывается в сети. Имеет мобильное исполнение в виде внешней обработки. Понятная любому пользователю логика работы.

1 стартмани

08.08.2013 89042 614 mbreaker 58

Списание зависших сумм без количества со счета на счет

Списание сумм без количества со счета на счет через документ операция

1 стартмани

22.10.2019 11253 19 Dmitryflagman 2

Должно быть NULL в регистре бухгалтерии Хозрасчетный

Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет.

2 стартмани

21.10.2019 18766 75 sapervodichka 33

Табличная часть имеет записи, не относящиеся ни к одной записи главной таблицы. Файловая база 1С. Исправление ошибки

Памятка-инструкция по исправлению этой ошибки.

1 стартмани

16.10.2019 10595 6 Dipod 14

С помощью этой обработки можно зарегистрировать объекты (документы и их движения, справочники, <Объект не найден>) на узлах обмена.

1 стартмани

15.02.2013 34832 99 logarifm 6

Ошибка SDBL: Ожидается имя таблицы (pos=6). Причины, лечение, обход. Поиск отсутствующих таблиц изменений

Получили ошибку Ошибка SDBL: Ожидается имя таблицы (pos=6) ? Надеюсь, мой опыт борьбы с этим явлением Вам поможет.

1 стартмани

04.09.2019 15666 62 burmsergey 6

Проверка работы расширений после обновлений

Иногда бывает, что после обновления конфигурации некоторые расширения перестают работать и часто такие ошибки выявляются только в процессе тестирования или рабочем режиме. При правильной разработке и проектировании расширения можно свести к минимуму такие ошибки, но иногда их не избежать. Если в базе расширений не более 5-10, то проверить каждое после обновления не составляет труда, а вот если их больше 50 - проверка отнимает слишком много времени Поэтому была написана обработка, которая в автоматическом режиме проверяет расширения, подключенные в программе. Обработка универсальная и будет работать в любой программе, в которой есть расширения.

3 стартмани

19.07.2019 19389 31 77dream77 4

Поиск и удаление "битых" ссылок () в регистрах (сведений/накоплений)

Иногда случается так, что в движениях регистров, подчиненных регистратору, теряется ссылка на регистратор "".

1 стартмани

24.06.2019 9599 44 Vyacheslide 5

Открывашка (для отладки) Промо

Упрощает отладку и экономит время - позволяет открыть отлаживаемый объект конфигурации путем пары кликов (Файл - Последний файл №N) или пары нажатий клавиш (Alt - Стрелка вниз - N последнего открытого файла на клаве).

1 стартмани

12.12.2012 24938 73 nastrou1c 11

Проверка обновления. Автоматический поиск ошибок

Мы обновляем конфигурацию, и у нас более 100 пользователей. Конфигурация сильно переписана, обновление нетривиальное. Если после обновления находится критическая ошибка, приходится выгонять всех пользователей и исправлять. Поэтому перед выпуском в рабочую базу, обновление тестируют наши специалисты. Большинство ошибок находится при открытии форм. Появилась идея написать программу, которая бы автоматически открывала формы всех объектов, а найденные ошибки записывала в журнал регистрации. Получилась программа простейшего сценарного тестирования. Не требует настройки. Запускать в тестовой базе. Чтобы найти реквизиты, не добавленные на форму в процессе обновления или синтаксические ошибки, достаточно запустить тест под полными правами. Тестировали на УТ 11.4.1.271, должно работать на всех программах УФ. У нас тест работает пять минут.

Agapov_Stas --> Agapov_Stas



Просмотр профиля

Подключил компоненту
ПодключитьВнешнююКомпоненту("", "", "");
Подключилась нормально
Возникла необходимость отключить компоненту не закрывая 1С .
Подскажите как это сделать .

Vofka --> Vofka



Просмотр профиля logist --> logist



Просмотр профиля
Переписать внешнюю компоненту так, что бы она сама закрывалась в какой-то ситуации. Agapov_Stas --> Agapov_Stas



Просмотр профиля Переписать внешнюю компоненту так, что бы она сама закрывалась в какой-то ситуации.

а средствами 1С никак ?

Vofka --> Vofka



Просмотр профиля
Сразу скажу, что я не знаю, как сделать средствами 1С то, что вы говорите. Но я так и не пойму зачем такое вообще может понадобиться. Можете на каком-то конкретном примере объяснить? Agapov_Stas --> Agapov_Stas



Просмотр профиля Сразу скажу, что я не знаю, как сделать средствами 1С то, что вы говорите. Но я так и не пойму зачем такое вообще может понадобиться. Можете на каком-то конкретном примере объяснить?
компонента обновляется .
Необходимо подключить компоненту - из нее вызвать процедуру обновления
Потом отключить компоненту - перезаписать ее на новую
и подключить обратно Vofka --> Vofka



Просмотр профиля компонента обновляется . Необходимо подключить компоненту - из нее вызвать процедуру обновления Потом отключить компоненту - перезаписать ее на новую и подключить обратно
Момент вызова метода "процедуры обновления" у нас определен? Так сообщите пользователю, что надо перезапустить 1С и принудительно закройте сеанс. Agapov_Stas --> Agapov_Stas



Просмотр профиля Момент вызова метода "процедуры обновления" у нас определен? Так сообщите пользователю, что надо перезапустить 1С и принудительно закройте сеанс.
Ну сообщить то я могу . но это как бы не удобно . ради обновления компоненты перезапускать базу . необходимо решение как сделать это не закрывая перезапуская 1С Vofka --> Vofka



Просмотр профиля
Если у вас компонента обновляется каждый час, то как по мне, это какая-то фигня в самом подходе. А если раз в месяц - ну так ради Бога, ничего страшного в перезапуске 1С не вижу. Agapov_Stas --> Agapov_Stas



Просмотр профиля Если у вас компонента обновляется каждый час, то как по мне, это какая-то фигня в самом подходе. А если раз в месяц - ну так ради Бога, ничего страшного в перезапуске 1С не вижу.
нет обновляется не каждый час - но в период отладки - будет обновляться частенько.
Предложите кто то другой вариант, пожалуйста. (не закрывая 1С - закрывать 1С я умею ) pablo --> pablo



Просмотр профиля Переписать внешнюю компоненту так, что бы она сама закрывалась в какой-то ситуации. Правильно поставленный вопрос содержит до 90% ответа.


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
RSS
Текстовая версия Сейчас: 24.11.21, 9:41

1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!

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