ПредишенСледващото

Често, програмисти имат проблеми със свързването на външни компоненти (например, шофьорите на търговско оборудване), когато потребителите работят с 1C, чрез свързване към сървъра чрез терминала.

Това се дължи на някои особености на функцията за глобален контекст PodklyuchitVneshnyuyuKomponentu ().

В този случай, потребителите виждат, например, на снимката, представени в съобщението на статия.

Докато няма проблеми с свързващи външни компоненти не работи с местните компютри.

Каква е причината? Това се дължи на факта, че когато потребителите работят през терминален сървър, те имат по-малко права, отколкото бихте направили на вашия компютър.

Това се вижда добре, ако влезете в терминален сървър, използвайки профил с администраторски права.

Причината за тази разлика се крие във факта, че 1C не може да регистрира външен компонент в регистъра, когато потребителят работи на терминала при стандартни права, защото един обикновен потребител няма права да пишат в клон на HKEY_CLASSES_ROOT регистър.

Публикациите по темата на външни компоненти в терминала предлага разнообразие от методи, за да се реши този проблем.

1. Започнете първи път в рамките на административни права 1С.

Тази опция не работи винаги. По-долу ще обясня защо.

2. Дайте редовни потребители на терминални разрешения за запис бранш HKEY_CLASSES_ROOT регистър на.

Това не е достатъчно "напреднали" на потребителите по-добре да не го правя, в противен случай може да има проблеми.

3. С помощта на различни "трикове", за да се регистрирате ВХ като потребител с пълни права.

Също така не е добре.

Тъй като все пак е по-добре да се измъкнем от тази ситуация?

Предлагам решение на този проблем. По мое мнение - проста и красива, не предлагаме да Lancer преди.

Проучване на този проблем, аз се чудех - защо всички опити да се регистрират 1C BK по нов път? В края на краищата, това е вече регистриран в системата.

Случаят Оказа се, че в типичния конфигурации 1C (например "Trade Management") синтаксис глобален контекст метод PodklyuchitVneshnyuyuKomponentu на ():

ObektDrayvera = нов ( "AddIn.ATOLSkaner.Scaner45");

Както можете да видите, водачът VC включена от оформление "DrayverATOLSkanerShtrihkoda" директория "PodklyuchaemoeOborudovanie".

Какво става, ако това се случи?

1C поддържа компонент в темп папка, например "C: \ Documents и Settings \ User \ Local Settings \ Temp \ 1032 \ v8_4_12.tmp"

и се опитва да го регистрирате в регистратурата HKEY_CLASSES_ROOT по този начин.

Терминалът обикновените потребители не разполагат с разрешение за промяна на този клон на регистъра, така че компонентът те не са свързани.

Сега, как да се измъкнем от тази ситуация.

глобален контекст метод PodklyuchitVneshnyuyuKomponentu () има няколко варианта за синтаксис. Това е, което ние използваме.

1. Регистрирайте външен компонент regsvr32.exe полезността на папката терминален сървър в C: \ Windows \ System32 за 32-битова операционна система папка или C: \ Windows \ SysWOW64 64-битова операционна система.

2. Използване на един от двата допълнителни изпълнения на PodklyuchitVneshnyuyuKomponentu метода синтаксис ():

PodklyuchitVneshnyuyuKomponentu ( "C: \ WINDOWS \ SysWOW64 \ Scaner1C.dll", "ATOLSkaner" TipVneshneyKomponenty.COM);

ObektDrayvera = нов ( "AddIn.ATOLSkaner.Scaner45");

ObektDrayvera = нов (ProgID);

По мое мнение, въплъщение 2 № предпочитане.

В този случай, 1C не се опитва да се пререгистрират ВХ на нов път в системния регистър и по този начин, всички проблеми са решени.

Е, това е всичко. Успехът в работата си!

Свързани статии

Подкрепете проекта - споделете линка, благодаря!