Официальный сайт студ.городка НГТУ
Программирование и БД » [1C]проблема с загрузкой библиотеки 

#1  27.08.08 10:53

[1C]проблема с загрузкой библиотеки

При запуске ошибка:
"Ошибка при создании объекта из компоненты [путь]\1CPP.DLL (отсутствует CLSID)"
Пробовал зарегить через regsvr32 - не помогает.
Может кто-то сталкивался? Как лечится?

Offline

#2  27.08.08 22:35

Re: [1C]проблема с загрузкой библиотеки

Поподробнее бы. Версия 1С (платформы), и че делаешь перед тем как ошибка вылезла?

Offline

#3  28.08.08 02:07

Re: [1C]проблема с загрузкой библиотеки

Барменталь написал(а):

1CPP.DLL (отсутствует CLSID)

это собственная компонента? когда-нить и где-нить уже она грузилась?

Offline

#4  28.08.08 16:26

Re: [1C]проблема с загрузкой библиотеки

Версия - 7.70.025.
Конфигурация называется "Учет компьютеров на предприятии".
Версия рабочая, на других компьютерах все замечательно запускается, кстате, первоначально все работало и на том компе, где сейчас ошибка. Есть подозрение, что ошибка стала возникать после переноса базы данных в другое место (на этой же рабочей станции). Перенос конфигурации на старое место не помогло. Переустановка 1С не помогает.
MostWanted, запускаю 1С, выбираю базу, как только раскрывается окно 1С:
- сообщение об ошибкеНе удалось загрузить библиотеку "1CPP.dll",!
- в окне сообщений: "Ошибка при создании объекта из компоненты [путь]\1CPP.DLL (отсутствует CLSID)"

Jaguar написал(а):

это собственная компонента?

Что значит собственная? Она находится в папке конфигурацией, если я правильно понял твой вопрос.

Исправлено Барменталь (28.08.08 16:27)

Offline

#5  28.08.08 21:45

Re: [1C]проблема с загрузкой библиотеки

ААААА, вспомнил че это такое:

1С++ - это внешняя компонента (как, например, V7plus.dll), значительно расширяющая возможности программирования средствами встроенного языка 1С. Используя эту компоненту, вы получаете механизм, который позволит вам программировать в 1С:Предприятии на принципиально ином уровне. Перечень авторов этой библиотеки вы можете узнать на официальном сайте компоненты: http://1cpp.ru/authors.html.

Библиотека является бесплатной и использовать её надо под свою ответственность. Всю информацию о компоненте и полезные ссылки вы можете получить на официальном сайте http://1cpp.ru/.

Как установить 1С++ и начать с ней работать?
Чтобы произвести первый небольшой, но впечатляющий эксперимент, выполним последовательно следующие действия по установке библиотеки:

Найдем на своем компьютере (не будем сразу набрасываться на сервер) папку C:\Program Files\1Cv77\BIN и положим туда файл 1cpp.dll.
Возьмём базу для экспериментов, откроем глобальный модуль и найдем в ней процедуру ПриНачалеРаботыСистемы(). Поместим в эту процедуру несколько строчек кода:
Попытка
    ЗагрузитьВнешнююКомпоненту("1cpp.dll");
    Сообщить("Компонента 1С++ загружена!");
Исключение
    Сообщить("Пытались, но не загрузили компоненту 1С++ :(");
КонецПопытки;

Запустим 1С в режиме Предприятия. Кстати, регистрировать внешнюю компоненту специально не требуется, 1С сделает это сама, но при первом запуске нужно иметь права администратора (а не Гостя, например). Если получим сообщение об успешной загрузке, то закроем 1С и двинемся дальше. Примечание: чтобы при первом запуске не нужно было иметь права администратора, можно воспользоваться внешней компонентой vkloader от Орефкова Александра.
В каталоге той базы, которую мы будем дальше мучить, сделаем папку "Классы" и в ней, с помощью Конфигуратора, создадим внешнюю обработку Проба.ert (т.е. путь к обработке будет такой: КаталогИБ/Классы/Проба.ert). На форме этой обработки оставим кнопку "Закрыть", а кнопку "Сформировать" удалим – чтобы руки к ней не тянулись. В модуле разместим такой код:
Перем ТекстСообщения экспорт; 
//
Процедура Проба() экспорт
    Если ПустоеЗначение(ТекстСообщения)=0 Тогда 
        Сообщить(ТекстСообщения);           
    КонецЕсли;
КонецПроцедуры //Проба

Заметили ли вы что-нибудь необычное? Правильно, раньше ключевое слово "Экспорт" мы встречали только в глобальном модуле.
Создадим текстовый файлик "КаталогИБ/Классы/proba.prm", в котором напишем:
класс Пустячок  =  Проба.ert
{

};

Cоздадим ещё один текстовый файлик "КаталогИБ/DefCls.prm", в котором будет только одна строка - путь к предыдущему файлику:
//#include "КаталогИБ\Классы\Proba.prm"

Заменив, естественно, "КаталогИБ" на реальный путь к базе.
И последнее приготовление к эксперименту: создадим где угодно обработку Тест.ert, в которой напишем:
Процедура Сформировать()     
    ПростоТак = СоздатьОбъект("Пустячок");
    ПростоТак.ТекстСообщения = "Надо же, работает!";
    ПростоТак.Проба();
КонецПроцедуры //Сформировать

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

Фразой //#include "КаталогИБ\Классы\Proba.prm" мы дали знать библиотеке 1С++, что при запуске 1С в режиме Предприятия нужно прочитать содержимое файлика Proba.prm.
В Proba.prm фразой "класс Пустячок = Проба.ert" мы сообщили 1С++, что создаем новый тип данных (класс) "Пустячок", свойства которого ОБЯЗУЕМСЯ описать в модуле обработки Проба.ert и с которым можем работать с помощью СоздатьОбъект("Пустячок").
Из свойств у объекта "Пустячок" мы описали пока только два, а именно: один атрибут "ТекстСообщения" и один метод "Проба()", который проверяет определенность единственного атрибута и пытается вывести его на печать.
Визуальный редактор 1С++
Благодаря 1С++ мы получили возможность вызывать из любого модуля конфигурации процедуру Проба(), расположенную в модуле внешнего отчета Проба.ert.

Есть смысл сразу же установить и удобный "Проводник" для 1С++ - плагин для OpenConf под названием "Visual 1C++" (для этого придётся предварительно установить сам OpenConf).

После установки плагина (просто скопируйте VIS1CPP.DLL в каталог C:\Program Files\1Cv77\BIN\config) запустите 1С:Предприятие в режиме Конфигуратора, откройте конфигурацию и, если вы все сделали правильно, у вас должна появиться дополнительная закладка в нижней части экрана под названием "1С++", в которой будет отображено дерево ваших классов с удобными возможностями навигации по ним.

Надеюсь, поможет. Удачи

Offline

#6  29.08.08 00:18

Wic
Профиль

Re: [1C]проблема с загрузкой библиотеки

Барменталь написал(а):

- в окне сообщений: "Ошибка при создании объекта из компоненты [путь]\1CPP.DLL (отсутствует CLSID)"

ощущение что в реестре потерялась запись на ДЛЛку

Offline

#7  29.08.08 14:01

Re: [1C]проблема с загрузкой библиотеки

Wic написал(а):

ощущение что в реестре потерялась запись на ДЛЛку

Барменталь написал(а):

Пробовал зарегить через regsvr32 - не помогает.

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

P.S. ваще, сама компонента регистрируется в режиме исполнения... т.е. есть вероятность, что у пользователя не хватает прав на ветки реестра для регистрации компоненты...

Исправлено Jaguar (29.08.08 14:04)

Offline

#8  29.08.08 14:03

Re: [1C]проблема с загрузкой библиотеки

Барменталь написал(а):

Что значит собственная?

собственная - это значит не от производителя программы 1С... имеется в виду, что некоторые "писаки" умудряются сделать компоненты без CLSID... я даже не представляю, как это можно сделать, но у "них" получается...

Offline

#9  03.09.08 15:02

Re: [1C]проблема с загрузкой библиотеки

И так...
MostWanted, спасибо за такой подробный ответ, но не помогло, хотя было позновательно. :)

Wic написал(а):

ощущение что в реестре потерялась запись на ДЛЛку

перекопал реестр тож без особых успехов...
Много чего еще перепробовал, 1С реагировала по разному :)

Jaguar написал(а):

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

видимо так оно и есть, потому что, в организации есть домен и под пользователем домена (DomenUser) вылезает данная ошибка, а если заходить под локальным пользователем с правами администратора все работает. Интересно, что у DomenUser тоже права администратора и до этого никаких ограничений у него замечено не было.

Одним словом, всем большое спасибо.

Offline

#10  03.09.08 16:51

Re: [1C]проблема с загрузкой библиотеки

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

Offline

Программирование и БД » [1C]проблема с загрузкой библиотеки 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.063 сек.
Выполнено 14 запросов.