Работа с «1с:предприятие»: как избавиться от ошибок v7plus.dll
Содержание:
- Быстрый поиск в справочниках по наименованию, с использованием svcsvc.dll
- Три способа регистрации DLL в ОС
- Если появляется проблема 0х80020009
- Регистрация библиотек в 1C
- Атрибуты объекта V7SysInfo.
- Ошибка при создании объекта из компоненты v7plus.dll (отсутствует CLSID)
- Перемещение в нужную директорию
- Пакетный режим работы конфигуратора 1C 7.7
- Способ 2: Ручное изменение доступа к файлам
- Очень долго запускается 1С предприятие 7.7 (конфигуратор, монитор, отладчик) Промо
- Способ 2: Устранение конфликтов с антивирусом
- Как исправить ошибку «Компонента v7plus.dll не найдена, отсутствует clsid»
- Почему не удается зарегистрировать DLL
- Способ 6: Ручная инсталляция extintgr.dll
Быстрый поиск в справочниках по наименованию, с использованием svcsvc.dll
По аналогии с http://infostart.ru/public/14286/, недавно узнал что в svcsvc.dll несколько обновился функционал, в частности был добавлен метод AddString().
В прилагаемом коде показан запрос, реализованный методами ВК 1SQlite, т.е. только для DBF.
Это только пример. Т.е. если например у справочника отсутствует поле «Наименование», то скорее всего будет ошибка.
Тем не менее критика приветствуется)))
Необходимые ВК: 1SQlite, FORMEX, svcsvc.dll (отсюда: http://www.1cpp.ru/forum/YaBB.pl?num=1373266553).
p.s.
Спасибо огромное уважаемому ADirks за все эти прекрасные плюшки, и помощь в их освоении)))
Три способа регистрации DLL в ОС
Описывая дальнейшие шаги, я исхожу из того, что вы нашли, куда нужно скопировать вашу библиотеку и DLL уже лежит в папку System32 или SysWOW64 (а возможно, где-то еще, если ей там следует находиться).
Примечание: ниже будет описано, как зарегистрировать DLL библиотеку с помощью regsvr32.exe, однако обращаю ваше внимание на то, что если у вас 64-разрядная система, то у вас есть два regsvr32.exe — один в папке C:\Windows\SysWOW64, второй — C:\Windows\System32. И это разные файлы, причем 64-бит находится в папке System32
Рекомендую в каждом из способов использовать полный путь к regsvr32.exe, а не просто имя файла, как у меня показано в примерах.
Первый способ описывается в Интернете чаще других и состоит в следующем:
- Нажмите клавиши Windows + R или в меню Пуск Windows 7 выберите пункт «Выполнить» (если, конечно, у вас включено его отображение).
- Введите regsvr32.exe путь_к_файлу_dll
- Нажмите Ок или Enter.
После этого, если все прошло успешно вы должны будете увидеть сообщение о том, что библиотека была успешно зарегистрирована. Но, с большой вероятностью увидите другое сообщение — Модуль загружен, но точка входа DllRegisterServer не найдена и стоит проверить, что ваша DLL является правильным файлом (об этом, как я уже говорил, напишу позже).
Второй способ состоит в запуске командной строки от имени администратора и ввода все той же команды из предыдущего пункта.
- Запустите командную строку от имени Администратора. В Windows 8 можно нажать клавиши Win+X, а затем выбрать нужный пункт меню. В Windows 7 вы можете найти командную строку в меню Пуск, кликнуть по ней правой кнопкой мыши и выбрать пункт «Запуск от имени администратора».
- Введите команду regsvr32.exe путь_к_библиотеке_dll (пример вы можете видеть на скриншоте).
Опять же, вероятно, что вам не удастся зарегистрировать DLL в системе.
И последний способ, который также может пригодиться в некоторых случаях:
- Кликните правой кнопкой мыши по DLL, которую нужно зарегистрировать и выберите пункт меню «Открыть с помощью».
- Нажмите «Обзор» и найдите файл regsvr32.exe в папке Windows/System32 или Windows/SysWow64, откройте DLL с помощью него.
Суть всех описанных способов зарегистрировать DLL в системе одна и та же, просто несколько разные способы запуска одной и той же команды — кому что удобнее. А теперь о том, почему у вас ничего не получается.
Если появляется проблема 0х80020009
Сама регистрация можно сказать, после вышеописанного действия, произошла, однако загрузка необходимого модуля все равно невозможна. Проблема возникает в недостаточных полномочиях, возможно, вы не владеете административными возможностями.
- Перейдите по такому направлению: меню «Пуск», далее «Все программы». В конце списка найдите «Стандартные». Черный ярлык и надпись «Командная строка» это то, что нужно.
- Запускаете ее от имени администратора, через мышку, на ней кликаете по правой клавише.
- Снова укажите путь к вашим компонентам. Если они в bin, то вносите привычные уже regsvr32 С:Program Files1Cv77inv7Plus.dll.
Регистрация через командную строку
Регистрация происходит один раз за все время пользования.
Блог о технологиях, технократии и методиках борьбы с граблями
Регистрация библиотек в 1C
На одном из подшевных бухгалтерских компов, при запуске 1C, в консоль стали сыпаться ошибки следующего толка:
Ошибка при создании объекта из компоненты C:Program Files (x86)1Cv77BIN1CRtInf.dll (отсутствует CLSID) Ошибка при создании объекта из компоненты S:Bases_1Cv77BD_NAME1SBDBv7plus.dll (отсутствует CLSID) Ошибка при создании объекта из компоненты S:Bases_1Cv77BD_NAME1SBDBv7plus.dll (отсутствует CLSID) Ошибка при создании объекта из компоненты S:Bases_1Cv77BD_NAME1SBDBv7plus.dll (отсутствует CLSID) Ошибка при создании объекта из компоненты S:Bases_1Cv77BD_NAME1SBDBv7plus.dll (отсутствует CLSID) Ошибка при создании объекта из компоненты S:Bases_1Cv77BD_NAME1SBDBv7plus.dll (отсутствует CLSID) Не удалось обнаружить компоненту v7plus.dll!
Помимо визуального дискомфорта у бухгалтеров, через одного страдающих болезненной педантичностью, отвалилась часть функционала 1C, причем в этих же базах, но на других компах все продолжало работать отменно.
Ошибка данного характера Ошибка при создании объекта из компоненты (отсутствует CLSID) означает, что по каким то причинам слетела регистрация элементов управления OLE, необходимых для корректного запуска и последующей работы 1C.
Для начала стоит проверить их наличие, т.к. шаловливые ручки юзверей могут снести даже папку Windows в корзину. Как? Не спрашивайте, я сам так и не понял.
Но если файлы на месте, то их следует зарегистрировать с помощью утилиты Regsvr32.exe, запускаемой из под админских прав. Для чего нажимаем Пуск -> в поиске пишем cmd (функционал Windows7) -> вверху списка появляется cmd.exe на который кликаем правой клавишей мыши и говорим Запуск от имени администратора -> в открывшемся окне пишем regsvr32.exe с нужными вам путями, в моем случае это выглядело как:
regsvr32 “C:Program Files (x86)1Cv77BIN1CRtInf.dll” regsvr32 “S:Bases_1Cv77BD_NAME1SBDBv7plus.dll”
также можно просто из сессии дос-промта перехватить права администратора, командой runas /noprofile /user:admin_user cmd
после ввода пароля откроентся новое окно уже с админскими правами
В XP или 2000 надо положить v7plus.dll в каталог, где установлена сама 1С (по умолчанию C:Program Files1cv77BIN), удалить dll из каталогов баз и один раз запустить любую из баз под пользователем с правами администратора компьютера. Все эти действия нужны, чтобы 1С зарегистрировала компоненту в реестре и для всех баз путь к компоненте был одинаковым и не требовалась перерегистрация компоненты для каждой базы при каждом запуске.
Регистрация вручную: Пуск — Выполнить или в командной строке введите: regsvr32 C:Program Files1cv77BINv7plus.dll
При работе в 1C:Предприятие 7.7 под операционнй системой Windows Vista при использованиии компоненты v7plus.dll (например, при выгрузке данных в формате XML) происходит ошибка: «Ошибка при создании объекта из компоненты v7plus.dll (отсутствует CLSID)»
Решение данной проблемы в Vista и 7: Отключить UAC (Панель управления/Учетные записи пользователей/Включение или отключение контроля учетных записей (UAC). Перезагрузить компьютер. Запустить 1С. Закрыть 1С. Включить UAC. Перезагрузить компьютер. Больше при открытии ошибки не будет. Данный метод позволяет решить проблему без нарушения безопасности.
Атрибуты объекта V7SysInfo.
Назначение объекта компоненты V7SysInfo.
Объект компоненты V7SysInfo предназначена для получения информации о системе,
на которой работает 1С:Предприятие. Объект позволяет определить версию операционной
системы, тип процессора, объем оперативной памяти компьютера и номер релиза
1С:Предприятия. Для осуществления доступа к атрибутам объекта V7Mail необходимо
вызвать функцию СоздатьОбъект, передав ей строку «AddIn.V7SysInfo»
в качестве параметра, и получить ссылку на объект, которая присваивается переменной,
через которую и будет осуществляться доступ к методам и свойствам полученного
объекта.
Например:
Инфо = СоздатьОбъект(«AddIn.V7SysInfo «);
Атрибуты
ВерсияОС
Синтаксис:
ВерсияОС
Англоязычный синоним:
OSVersion
Описание:
Атрибут ВерсияОС содержит наименование версии операционной системы (строковое
выражение).
Процессор
Синтаксис:
Процессор
Англоязычный синоним:
Processor
Описание:
Атрибут Процессор (строковое выражение) содержит наименование тип процессора,
установленного на компьютере.
ОперативнаяПамять
Синтаксис:
ОперативнаяПамять
Англоязычный синоним:
Memory
Описание:
Атрибут ОперативнаяПамять (число) содержит информацию об объеме оперативной
памяти, установленный на компьютере, в мегабайтах.
РелизПрограммы
Синтаксис:
РелизПрограммы
Англоязычный синоним:
ProgrammRelease
Описание:
Атрибут РелизПрограммы (строковое выражение) содержит информацию о
номере релиза 1С:Предприятия.
ИмяФайлаПрограммы
Синтаксис:
ИмяФайлаПрограммы
Англоязычный синоним:
ProgrammFileName
Описание:
Атрибут ИмяФайлаПрограммы (строковое выражение) содержит информацию
об имени файла программы (1С:Предприятия).
Методы
ПроверитьИмяФайла
Синтаксис:
ПроверитьИмяФайла(<Адрес>)
Англоязычный синоним:
CheckFileName
Параметры:
<Адрес> Строковое значение Адрес ключевого слова
Возвращаемое значение:
Строковое выражение — ключевое слово.
Описание:
Метод ПроверитьИмяФайла предназначен для получения ключевого слова по указанному
адресу на диске ИТС.
Пример:
Инфо = СоздатьОбъект(«AddIn.V7SysInfo»);
ВерсияОперационнойСистемы = Инфо.ВерсияОС;
ТипПроцессора = Инфо.Процессор;
ОперативнаяПамятьКомпьютера = Инфо.ОперативнаяПамять;
НомерРелизаПрограммы = Инфо.РелизПрограммы;
НаименованиеФайлаПрограммы = Инфо.ИмяФайлаПрограммы;
СоздатьGUID
Синтаксис:
СоздатьGUID()
Англоязычный синоним:
CreateGUID
Параметры:
нет
Возвращаемое значение:
Строковое выражение — новый GUID.
Описание:
Метод СоздатьGUID генерирует новый GUID (Globally Unique Identifier).
Пример:
Инфо = СоздатьОбъект(«AddIn.V7SysInfo»);
ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID();
ИЗМЕНЕНИЕ И ПОТЕРИ ПИТАТЕЛЬНЫХ ВЕЩЕСТВ ВО ВРЕМЯ ПРИГОТОВЛЕНИЯ ПИЩИ
ИЗМЕНЕНИЕ И ПОТЕРИ ПИТАТЕЛЬНЫХ ВЕЩЕСТВ ВО ВРЕМЯ ПРИГОТОВЛЕНИЯ ПИЩИ
Ошибка при создании объекта из компоненты v7plus.dll (отсутствует CLSID)
Сообщение Ошибка при создании объекта из компоненты v7plus.dll (отсутствует CLSID) появляется при попытке загрузки приложений программы, которые используют v7plus.dll. Такое сообщение возникает:
– если этот файл не найден;
– эта dll не зарегистрирована в системе (такое бывает, если база данных была установлена не под правами администратора);
– у вас устаревшая версия v7plus.dll.
Где взять и куда записать v7plus.dll
Записать ее лучше всего в каталог базы данных, либо, если у вас несколько баз – в каталог установленной платформы 1C 7.7 (обычно это каталог “C:\Program Files\1Cv77\BIN”).
После этого, попробуйте запустить приложение, которое выдавало ошибку. Если ошибка не исчезла, необходимо зарегистрировать компоненту.
Как зарегистрировать компоненту v7plus.dll
Если у вас права администратора, то нажимаете кнопку “Пуск”->”Выполнить”. В открывшемся окне вводите команду: regsvr32 “C:\Program Files\1Cv77\BIN\V7Plus.dll” (вы должны указать тот путь, по которому у вас находится эта компонента) и нажимаете “ОК”. У вас должен получиться такой результат:
После этого ошибка больше не должна появляться.
Если у вас не хватает прав для регистрации компоненты, то сообщение будет таким:
Что делать в этом случае?
Кнопка “Пуск”->”Все программы”->”Командная строка” нажимаем на последний пункт правой клавишей мыши и выбираем “Запустить от имени Администратора”:
После этого вводим пароль администратора и у нас открывается окно, куда мы вводим нашу команду и нажимаем “Enter”:
Еще один вариант исправления этой ошибки – запустить программу 1С 7.7 от имени Администратора. При запуске она зарегистрирует класс и в дальнейшем под пользователем не будет выдавать ошибку.
Перемещение в нужную директорию
Система часто сообщает пользователю о том, что не найдена компонента v7plus.dll из-за ее расположения не в той директории. Подобная ошибка возникает тогда, когда юзер совершает какие-либо манипуляции с файлами 1C. Для решения проблемы нужно отыскать компоненту и перенести ее в нужную директорию:
Открываем раздел поиска, вводим в строку «Проводник» и переходим в приложение.
Щелкаем на кнопку «Предыдущее расположение», выбираем раздел «Этот компьютер» и в строку поиска вводим v7plus.dll.
Если компонента есть на компьютере, то перемещаем ее в директорию 1Cv77, расположенную на диске C в папке Program Files.
Пакетный режим работы конфигуратора 1C 7.7
Многие ежедневно сталкиваются с рутинными процедурами администрирования баз данных 1С. К ним можно отнести выгрузку и сохранение данных, тестирование и исправление информационной базы, обмен данными между распределенными базами данных. Как раз в этом случае и можно воспользоваться пакетным режимом работы конфигуратора.
Работа в пакетном режиме подразумевает выполнение программой последовательных действий без участия пользователя. Причем сама последовательность действий должна быть описана пользователем по определенным правилам с использованием документированных ключевых параметров.
Способ 2: Ручное изменение доступа к файлам
Иногда по каким-то причинам у конкретного юзера вовсе отсутствуют права на папку с программой 1С или же эта конфигурация сбилась, что даже может коснуться профиля администратора. Если первый вариант не принес никакого результата, следует проверить настройки безопасности самостоятельно и исправить их в случае необходимости. Внимательно изучите следующую инструкцию, чтобы понять, в какие меню следует переходить для открытия требуемых параметров.
- Отыщите папку с той программой от 1С, с которой возникают проблемы. Щелкните по ней правой кнопкой мыши и в появившемся контекстном меню выберите пункт «Свойства».
Переместитесь на вкладку «Безопасность».
Здесь вас интересуют особые разрешения и параметры, переход к настройке которых осуществляется путем клика по кнопке «Дополнительно».
Если вы увидели, что в списке «Элементы разрешений» отсутствует нужный пользователь или у него нет соответствующего уровня доступа, кликните по «Добавить».
Для начала потребуется выбрать субъект, с которым будет осуществляться взаимодействие.
Вручную вводить название профиля не всегда удобно, поэтому в окне «Выбор: «Пользователь» или «Группа»» откройте дополнительные параметры.
Запустите процедуру поиска по запросам.
В появившемся перечне дважды кликните ЛКМ по строке с необходимым пользователем.
После этого убедитесь, что он был добавлен в список выбираемых объектов, а затем нажмите на «ОК».
Выберите тип «Разрешить» и задайте полный уровень доступа, отметив галочкой нужный пункт.
Примените внесенные изменения, удостоверившись, что субъект теперь присутствует в списке «Элементы разрешений».
Теперь вы можете не перезагружать компьютер, поскольку в этом нет надобности. Сразу же переходите к своей стандартной работе в программном обеспечении и проверьте, возникнет ли ошибка «Не удалось загрузить внешнюю компоненту extintgr.dll» снова.
Очень долго запускается 1С предприятие 7.7 (конфигуратор, монитор, отладчик) Промо
Если у Вас всегда очень долго открывается 1С, заставка висит в течение нескольких минут, зависает при старте предприятия 7.7 и конфигуратор, и монитор, и отладчик, скорее всего, дело в файле 1cv7evt.txt, файл 1cv7evt.txt в подкаталоге Syslog в каталоге базы находится по адресу \\ИмяСервера\ИмяКаталогаБаз\ИмяБазы\SYSLOG\1cv7evt.txt, вернее в размере этого файла. Проблема проявляется в том, что во время запуска 1С предприятия 7.7 и конфигуратора, и монитора, и отладчика заставка висит несколько минут. Отключите пользователей, перенесите файл 1cv7evt.txt в другую папку, и 1С 7.7 будет стартовать очень быстро.
Способ 2: Устранение конфликтов с антивирусом
Бывает, что антивирус ложно заблокирован файл и перенес его в карантин. Проверяем его и добавляем библиотеку в исключение, предварительно убедившись в безопасности этого действия.
Подробнее: Добавление программы в исключения антивируса / брандмауэра Windows
Иногда вместо этого понадобится переустановить программу с предварительным отключением защитного ПО.
Эти простые действия должны помочь устранить возникшую неполадку с файлом.
Как исправить ошибку «Компонента v7plus.dll не найдена, отсутствует clsid»
На Windows, начиная с седьмой версии, программисты базы данных 1С стали наблюдать ошибку «Компонента v7plus.dll не найдена, отсутствует clsid». Помимо программистов с этой проблемой могут столкнуться и простые пользователи компьютеров, перенося базы данных. Если смотреть в корень, то ничего страшного в этой ошибке нет, всего-навсего программа не находит необходимый ей для работы компонент, тот самый v7plus.dll.
Почему не удается зарегистрировать DLL
Итак, у вас отсутствует какой-то файл DLL, из-за чего при запуске игры или программы вы видите ошибку, вы скачали этот файл из Интернета и пробуете зарегистрировать, но либо точка входа DllRegisterServer, либо модуль не совместим с текущей версией Windows, а может и что-то еще, то есть регистрация DLL невозможно.
Почему это происходит (далее будет и про то, как это исправить):
- Не все файлы DLL предназначены для того, чтобы их регистрировали. Для того, чтобы его можно было зарегистрировать данным способом, он должен иметь поддержку той самой функции DllRegisterServer. Иногда ошибка бывает также вызвана тем, что библиотека уже зарегистрирована.
- Некоторые сайты, предлагающие скачать DLL, содержат по факту, файлы-пустышки с искомым вами именем и их невозможно зарегистрировать, так как на самом деле это не библиотека.
А теперь о том, как это исправить:
- Если вы программист и регистрируете свою DLL, попробуйте regasm.exe
- Если вы пользователь и у вас что-то не запускается с сообщением о том, что DLL отсутствует на компьютере — поищите в Интернете, что это за файл, а не где его скачать. Обычно, зная это, вы можете скачать официальный установщик, который установит оригинальные библиотеки и зарегистрирует их в системе — например, для всех файлов с именем, начинающегося с d3d достаточно поставить DirectX с официального сайта Microsoft, для msvc — одну из версий Visual Studio Redistributable. (А если не запускается какая-то игра с торрента, то загляните-ка в отчеты антивируса, он мог удалить нужные DLL, это часто бывает с некоторыми модифицированными библиотеками).
- Обычно, вместо регистрации DLL срабатывает размещение файла в одной папке с исполняемым файлом exe, который требует эту библиотеку.
На этом завершаю, надеюсь, что-то стало более ясно, чем было.
А вдруг и это будет интересно:
Почему бы не подписаться?
Здравствуйте. Скачал из Стима игру, и столкнулся с ошибкой, связана она с файлом msvcrt. dll. Попробовал все указанные вами способами, а после попробовал установить Microsoft C++, но это все равно не помогло. Что мне делать?
А установили и X86 и X64 версии (нужны обе). Нужного года?
Способ 6: Ручная инсталляция extintgr.dll
Завершит данный материал метод, который очень редко оказывается рабочим, поскольку файл extintgr.dll практически всегда корректно функционирует сам по себе и устанавливается вместе с ПО от компании-разработчика. Однако его удаление или ошибку во время инсталляции могли спровоцировать различные факторы, что и привело к ошибкам в дальнейшем. В таких ситуациях нужно самостоятельно отыскать этот файл на других компьютерах локальной сети или в интернете, используя только проверенные источники. Все о дальнейшей инсталляции extintgr.dll вы узнаете в руководстве ниже.
Подробнее: Как установить библиотеку DLL в систему Windows
Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.