Как установить драйвер адо 1с
Причина
Иногда после установки автоматических обновлений Windows (или по другим неустановленным причинам) на компьютере происходит повреждение системных компонентов доступа к базам данных «Microsoft/Windows Data Access Components» (MDAC/WDAC), в частности их составляющих – «ActiveX Data Objects» (ADO) и/или «OLEDB-провайдеров».
Решение
Поскольку, начиная с Windows XP SP2 и Server 2003, данные компоненты (MDAC) считаются неотъемлемой частью операционной системы, а, начиная с Windows Vista и Server 2008, они переименованы в «Windows Data Access Components» (WDAC) и более не распространяются в виде отдельного инсталлятора, то наилучшим решением является переустановка операционной системы или восстановление ее из резервной копии (при наличии таковой) на состояние до сбоя.
Однако в виду трудоемкости данной операции можно для начала попробовать (на свой страх и риск) более «мягкие» способы решения проблемы, которые будут различаться в зависимости от установленной версии Windows:
Для старых ОС (до Windows XP SP1 включительно)
Достаточно просто переустановить компоненты MDAC, скачав инсталлятор с сайта Microsoft.
Для Windows XP SP2/SP3 и Server 2003
Вариант 2. Переустановить только компоненты MDAC, используя оригинальный дистрибутив Windows, с которого происходила установка ОС. Для этого, открыть папку C:\Windows\Inf (если ее не видно, включить показ скрытых папок/файлов в «свойствах папки»), нажать правой кнопкой мыши на файле MDAC.INF и выбрать пункт «Установить». При первом запросе «вставить диск» указать путь C:\Windows\ServicePackFiles\i386, при втором – путь к папке i386 дистрибутива Windows, с которого происходила первоначальная установка ОС. Более подробно можно прочитать в статье Microsoft.
Вариант 3 (частичное восстановление!). Скопировать с другого компьютера (где установлена такая же ОС и все работает) содержимое папок:
- C:\Program Files\Common Files\System\ado
- C:\Program Files\Common Files\System\Ole DB
И зарегистрировать основные DLL командами (Пуск→Выполнить):
- regsvr32 "C:\Program Files\Common Files\System\ado\msado15.dll"
- regsvr32 "C:\Program Files\Common Files\System\Ole DB\sqloledb.dll"
Для Windows Vista, Sever 2008 и более поздних
Для этих ОС изначально не существует отдельно распространяемого инсталлятора WDAC, кроме того, там применяется технология Windows File Protection (WFP), которая защищает системные файлы от любых «несанкционированных» изменений, поэтому единственный возможный способ избежать переустановки системы – это как раз понадеяться, что WFP восстановит поврежденные файлы WDAC.
Чтобы запустить сканирование системы с восстановлением поврежденных файлов надо зайти в меню «Пуск→Все программы→Стандартные», нажать правой кнопкой мыши на пункте «Командная строка» и выбрать «Запуск от имени администратора». В окне командной строки набрать команду и нажать Enter: SFC /SCANNOW
Если ничего не будет восстановлено или это не поможет, то можно попробовать из той же командной строки выполнить регистрацию DLL-файлов, перечисленных в вар.3 предыдущего раздела.
Кроме того, теоретически может помочь откат последних обновлений (которые привели к сбою) и/или установка последнего ServicePack для данной ОС.
Для реализации новых возможностей SQL Server 2005 (9.x) (в частности, множественного активного результирующего набора (MARS), уведомлений о запросах, пользовательских типов данных и нового типа данных xml) существующие приложения, использующие объекты данных ActiveX (ADO), должны использовать драйвер OLE DB для SQL Server в качестве поставщика доступа к данным.
Чтобы позволить ADO использовать новые возможности последних версий SQL Server, были внесены некоторые улучшения в драйвер OLE DB для SQL Server, расширяющие базовую функциональность OLE DB. Эти улучшения позволяют приложениям ADO использовать новые возможности SQL Server и применять два типа данных, появившихся в SQL Server 2005 (9.x): xml и udt. Эти улучшения также используют усовершенствования типов данных varchar, nvarchar и varbinary. Драйвер OLE DB для SQL Server добавляет свойство инициализации SSPROP_INIT_DATATYPECOMPATIBILITY к набору свойств DBPROPSET_SQLSERVERDBINIT для использования приложениями ADO, чтобы новые типы данных предоставлялись совместимым с ADO образом. Кроме того, OLE DB Driver for SQL Server также определяет новое ключевое слово строки подключения DataTypeCompatibility, которое задается в строке подключения.
Существующие приложения ADO могут обращаться к полям XML определяемых пользователем типов, текстовым полям больших значений и полям двоичных значений, а также обновлять их значения с помощью поставщика SQLOLEDB. Новые типы данных varchar(max) , nvarchar(max) и varbinary(max) увеличенного размера возвращаются как типы ADO adLongVarChar, adLongVarWChar и adLongVarBinary соответственно. XML-столбцы возвращаются как adLongVarChar, а столбцы пользовательских типов возвращаются как adVarBinary. Но если вы намерены использовать OLE DB Driver for SQL Server (MSOLEDBSQL) вместо SQLOLEDB, необходимо установить для ключевого слова DataTypeCompatibility значение "80", чтобы новые типы данных правильно сопоставлялись с типами данных ADO.
Установка OLE DB Driver for SQL Server из ADO
Чтобы обеспечить использование драйвера OLE DB для SQL Server, приложения ADO должны включать следующие ключевые слова в строки подключения:
Ниже приведен пример создания строки подключения ADO, полностью обеспечивающей работу с драйвером OLE DB для SQL Server, в том числе включающей поддержку функции MARS.
Примеры
В следующем разделе приведены примеры использования ADO с OLE DB Driver for SQL Server.
Получение данных XML-столбца
В этом примере набор записей используется для извлечения и отображения данных из XML-столбца в тестовой базе данных SQL Server AdventureWorks.
Фильтрация наборов записей для XML-столбцов не поддерживается. При попытке ее использования возвращается ошибка.
Получение данных столбца определяемого пользователем типа
Включение и использование режима MARS
В этом примере строка подключения составляется таким образом, чтобы включить режим MARS для драйвера OLE DB для SQL Server, затем создаются два объекта набора записей для выполнения в том же соединении.
В предыдущих версиях поставщика OLE DB этот код вызвал бы создание неявного соединения при втором выполнении, так как в одном соединении можно было открыть только один активный набор результатов. Поскольку неявное соединение не включалось в пул соединений OLE DB, это вызывало дополнительные издержки. Когда драйвер OLE DB для SQL Server обеспечивает поддержку функции MARS, в одном соединении может быть несколько активных результатов.
При реализации проектов на 1С зачастую приходится сталкиваться с разного рода устройствами и их сопряжением. Покуда будут существовать устройства на древним RS232 будет необходимость во внешних компонентах такого рода. Как правило с устройством идет документация, которая нередко содержит систему команд и некий драйвер который распространяется «так как есть». Очень часто драйвера «так как они есть» оставляют ожидать лучшего. Я предлагаю немного окунутся в системное программирование и решить для себя сей вопрос раз и навсегда.
Прекрасная статья содержит пример и достаточное описание что к чему, что где менять. Пример компилируется. Для быстрого старта замечательная статья. Подобный пример свободно распространяется фирмой 1С и валяется в куче хлама на диске ИТС. Много раз мелькало в глазах но было заложено на дальнюю полку с ярлыком «обязательно изучить».
Для простоты внешнюю компоненту далее по тексту буду называть драйвером.
При этом предварительно никаких действий типа regsvr32. Да и на сколько мне известно, OLE32 ужа давно не флагманская технология Microsoft.
2. Хранение самого драйвера в составе обработки или конфигурации.
Файл драйвера вставляем в макет 1С как двоичные данные и по надобности распаковываем его в временный каталог пользователя.
3. Реализация интерфейса драйвера. Вынос логики команд на сторону 1С.
Первоначально при написании драйвера, была использована идеология существующих драйверов. ДемоКомп.СделайЧтото(МногоРаз).
По-сути был повторен драйвер, разумеется без ограничений наложенных производителем. Но сия наследственность оказалась мучительной и пагубной. Раз в пол года возникает необходимость добавления каких-то команд, изменении существующих.
Был написан универсальный драйвер RS232 порта для 1С. Он был протестирован usb-модемом Huawei-1550 и с Марией. Для этого драйвера необходимо переписать сервис обработку для 1С.
После очередного «усовершенствования» родилась идея выноса логики команд на сторону 1С. Драйвер занимается только реализацией транспортного протокола. Системные программисты ликуют. Теперь команда драйвера выглядит:
И да на радость каждому программисту 1С Native API дает возможность вызывать функции по-русски (русские псевдонимы функций).
4. Запись протокола обмена.
Для записи в файл maria.log в каталог временных файлов пользователя команд и реакций на них необходимо:
В файле пишется время и вид события: с — команда; а — ответ; u — соединение; t — количество циклов для получения ответа; e — ошибка.
Вот минимальный набор необходимого чтоб «заработало». Теперь немного о будущем:
5. Другие устройства такого класса.
По задумке не сложно заменить транспортный протокол Марии на протокол например ИКС-а. Можно было б говорить о семействе драйверов. Сам скелет основных необходимых функций готов.
6. Внешние события.
В процедурах реализации транспортного протокола стоит перейти на threads, а сигнализацию о завершении работы команды делать внешним событием. Хочу сделать именно так, но немножко чего-то не хватает: времени или знаний или того и другого. И рок «уже работает так», " работает не трогай" немного охлаждает пыл порыва.
7. Совместная работа.
В планах написание простого web-сервиса, который бы принимал команды, организовывал очередь команд и перенаправлял их на устройство. Сервисная обработка в таком случае будет выглядеть аналогично, команды не поменяются. Изменится только инициализация объекта.
Ссылка на проект на github
Проект состоит из проекта Visual Studio, демонстрации команд на 1С (в модуле управляемого приложения) и сервис обработки для 1С.
Порядок подключения и настройки торгового оборудования для платформы "1С:Предприятие 8.1"
Перед подключением торгового оборудования в конфигурации необходимо физически подключить оборудование и установить необходимые драйвера. Информацию о том, где скачать последние версии драйвера можно получить, ознакомившись с пунктом 3 раздела 5.
ПРИМЕЧАНИЕ
Если в дальнейшем расположение драйвера на жестком диске изменится (файл будет перемещен в другой каталог), то необходимо будет повторить процедуру регистрации драйвера, как описано выше в пункте 2.
ВНИМАНИЕ
Если производится установка новой версии драйвера взамен установленной ранее и используемой, то необходимо закрыть все приложения, использующие драйвер. Если этого не сделать, то возможны ошибки во время установки драйвера, а также будет использоваться старая версия драйвера до момента перезапуска приложения, что может привести к появлению ошибок после обновления обработок обслуживания.
Конфигурация поставляется с готовыми обработками обслуживания для всех видов торгового оборудования. Эти обработки обслуживания хранятся в подкаталоге " TradeWareEpf " каталога поставки конфигурации, а также может быть получены с сайта средствами самой конфигурации.
Подключение и настройка торгового оборудования производится 2-мя способами: с помощью обработки "Помощник подключения и настройки торгового оборудования" и с помощью обработки "Подключение и настройка торгового оборудования". Ниже рассмотрены оба способа способа подключения.
ПРИМЕЧАНИЕ
Способы подключения, приведенные в данной главе, реализованы в конфигурациях "Управление торговлей", версия 10.3.7 и "1С:Розница", версия 1.0.5.
Помощник подключения и настройки торгового оборудования запускается из интерфейса конфигурации (например, "Сервис" - "Торговое оборудование" - "Помощник подключения и настройки торгового оборудования"), либо с формы обработки "Подключение и настройка торгового оборудования".
-
Приветствие.
В первом диалоговом окне появляется экран приветствия, с описанием назначения Помощника. Ознакомьтесь с возможностями Помощника и нажмите кнопку " Далее ".
Дополнительно ( красным цветом ) отмечены устаревшие обработки обслуживания (версия API загруженной обработки меньше текущей версии механизма ТО). Если выбрана устаревшая обработка обслуживания, то автоматически устанавливается признак "Обновить обработку обслуживания" и при нажатии кнопки "Далее" будет предложено обновить ее.
Если подтвердить желание обновить ОО, то, в зависимости от выбранного ресурса обновления, открывается форма выбора файла, отфильтрованная по имени и расширению файла, или производится обновление обработки с сайта. При успешном обновлении обработки обслуживания осуществляется автоматический переход к следующему шагу (к пункту 5 раздела 2).
Если указанное наименование уже используется для другого устройства, то при нажатии на кнопку "Далее" будет выдано соответствующее предупреждение и предложено указать другое наименование.
Если на форме настройки параметров нажать "Отмена" и устройство перед этим не проходило проверку, то Помощник возвращается на страницу выбора устройства.
Если устройство уже проходило проверку и на форме настройки параметров нажать "Отмена" или "ОК", не меняя предыдущие параметры, то появляется дополнительный вопрос о повторной проверке устройства.
Если проверка проходит успешно, то Помощник сообщает об этом и спрашивает о том, что не планируется ли подключать еще одно устройство.
- Запуск обработки "Подключение и настройка торгового оборудования" .
Откройте пункт меню "Подключение и настройка торгового оборудования". По умолчанию данный пункт меню расположен в меню "Сервис" - "Торговое оборудование". - Добавление обработок обслуживания.
Нажмите на кнопку "Обработки обслуживания".
Для загрузки из каталога в появившемся меню выберите пункт "Загрузить все обработки обслуживания из каталога" и укажите каталог, в котором располагаются обработки обслуживания (по-умолчанию, это подкаталог "TradeWareEPF" каталога поставки конфигурации).
Для загрузки с сайта в появившемся меню выберите пункт "Загрузить все обработки обслуживания с сайта"
Будут импортированы все обработки обслуживания торгового оборудования. При этом если в справочнике уже имеются обработки обслуживания, имена которых совпадают с именами обработок из каталога, и их версии меньше версий обработок из каталога, то такие обработки будут обновлены.
Если необходимо добавить только одну обработку обслуживания, то ознакомьтесь с пунктом 4.1.
Если необходимо обновить одну или все добавленные ранее обработки обслуживания, то ознакомьтесь с пунктом 4.2 и пунктом 4.3 соответственно.
. и далее кнопку "Выбрать" ("F4").
Если модель была создана ранее, то после нажатия кнопки "Добавить" (на клавиатуре "Insert") выберите из выпадающего списка модель подключаемого оборудования и перейдите к пункту 8.
Подтвердите выбор (нажмите "ОК" ).
Закройте список "Поддерживаемое торговое оборудование".
Выберите необходимое оборудование из списка созданных моделей устройств.
В открывшемся диалоге укажите наименование устройства, отличное от исходного. В дальнейшем при работе с торговым оборудованием в документах, если к рабочему месту пользователя подключено несколько моделей торгового оборудования одного вида, то при осуществлении операций с этим видом торгового оборудования пользователю предлагается выбрать нужную модель.
Подтвердите создание новой записи (нажмите "ОК").
Повторите описанные в этом пункте шаги если необходимо добавить аналогичные устройства.
Укажите необходимые для подключения параметры в соответствии с настроенными параметрами устройства и драйвера и физическим подключением оборудования.
. или кнопку "Загрузка/обновление обработки обслуживания с сайта" для загрузки с сайта.
Если обработка обслуживания уже загружена и используется подключенным оборудованием, но ее нужно обновить, то необходимо выполнить следующие действия:
- Откройте обработку "Подключение и настройка торгового оборудования".
- Выберите подключенную модель.
. или кнопку "Загрузка/обновление обработки обслуживания с сайта" для загрузки с сайта.
Версия обработки должна обновиться.
Если версия загружаемой обработки будет меньше версии текущей обработки, то будет выдано предупреждение.
Если обработка обслуживания уже загружена, но еще не используется ни одним устройством, то для ее обновления необходимо:
- Открыть обработку "Подключение и настройка торгового оборудования".
- Нажать кнопку "Обработки обслуживания" .
- Выбрать пункт меню " Открыть справочник "Обработки обслуживания ТО" ".
- Выбрать строку с обновляемой обработкой обслуживания
- Нажать кнопку "Изменить текущий элемент" (" F2 ").
- В открывшейся форме в строке "Обработка" нажмите кнопку "Загрузка/обновление обработки обслуживания из каталога" для загрузки из каталога или кнопку "Загрузка/обновление обработки обслуживания с сайта" для загрузки с сайта.
- Выбрать файл новой обработки обслуживания.
- Подтвердить сохранение обновленной обработки обслуживания (нажмите "ОК" ).
- Закрыть справочник "Обработки обслуживания ТО".
- Выполнить проверку подключенного оборудования или вернуться к пункту 3 раздела 3, если обновление производилось перед добавлением нового устройства.
Если необходимо обновить все обработки в справочнике (например, после обновления конфигурации), то можно воспользоваться сервисом обновления обработок обслуживания. Для этого необходимо выполнить следующие действия:
Для обновления с сайта выберите пункт меню " Обновить все обработки обслуживания в справочнике (с сайта) "
Будут обновлены все обработки обслуживания в справочнике "Обработки обслуживания", у которых номер версии меньше номера версии обработки из указанного каталога.
Если по каким-то причинам подключенное в системе оборудование необходимо временно исключить из использования (например, в случае поломки и отправки в ремонт) при этом не потеряв настроенные параметры, то можно воспользоваться свойством оборудования "Подключено". Снимите флажок "Подключено" в строке временно отключаемого устройства. А после того, как наступит необходимость использовать устройства снова, просто установите флажок "Подключено" в строке с данным устройством.
Отключенные таким способом устройства не участвуют в проверке оборудования, а также не подключаются в формах и обработках.
Для получения дополнительной информации о количестве добавленных и реально используемых устройств в системе обратите внимание на левую панель формы обработки "Подключение и настройка торгового оборудования". Напротив каждого вида торгового оборудования (после наименования) отображается информация сколько реально используется устройств и сколько добавлено в системе данного вида.
В конфигурациях реализован сервис проверки наличия обновлений обработок обслуживания на сайте. Для того, чтобы проверить наличие обновлений и произвести обновление выбранных обработок обслуживания необходимо:
- Открыть обработку "Подключение и настройка торгового оборудования".
- Нажать кнопку "Обработки обслуживания" .
- Выбрать пункт меню " Проверить наличие обновлений обработок обслуживания на сайте "
В открывшейся форме "Обновление обработок обслуживания" представлены обработки следующего типа:
- Старая (отмечена красным цветом) - значение "Версия" или "Версия API" обработки обслуживания в справочнике ниже, чем значение обработки обслуживания с сайта. Доступно обновление с сайта.
- Текущая (отмечена черным цветом) - значение "Версия" или "Версия API" обработки обслуживания в справочнике ниже, чем значение обработки обслуживания с сайта. Доступно обновление с сайта.
- Новая (отмечена зеленым цветом) - значение "Версия" и "Версия API" обработки обслуживания в справочнике выше, чем значение обработки обслуживания с сайта. Доступно обновление с сайта.
- Добавляемая (отмечена синим цветом) - обработка обслуживания, доступная на сайте, отсутствует в справочнике. Доступно добавление с сайта.
- Необновляемая (отмечена серым цветом) - для обработки обслуживания в справочнике отсутствует обновление на сайте. Не доступно обновление с сайта.
- Помечена для обновления (отмечена жирным шрифтом) - обработки обслуживания, которые буду обновлены (добавлены) в справочнике.
Для того чтобы провести обновление текущих или загрузку новых обработок обслуживания необходимо отметить обновляемые/загружаемые обработки (установить флажок напротив обработки) и нажать кнопку "Обновить".
По умолчанию отображаются только обработки обслуживания, для которых доступны обновления. Для получения информации об остальных обработках обслуживания, загруженных в базу, необходимо установить флаг "Отображать текущие, новые и необновляемые обработки обслуживания". Для получения информации об остальных доступных на сайте обработках обслуживания установите флаг "Отображать отсутствующие в справочнике обработки обслуживания".
Если на сайте отсутствуют обновления для обработок, то автоматически устанавливается флаг "Отображать текущие, новые и необновляемые обработки обслуживания".
Для того чтобы включить функцию автоматической проверки наличия обновлений обработок обслуживания при загрузке конфигурации необходимо открыть форму "Обновление обработок обслуживания" (см. пункт 4.6) и установить флаг "Проверять наличие обновлений обработок обслуживания при запуске".
Настройка параметров драйвера осуществляется с помощью формы настройки параметров обработок обслуживания. Набор необходимых для настройки параметров зависит от используемого драйвера (драйверы не используется только для обработок обслуживания, использующих для взаимодействия файлы обмена).
Для всех форм настроек доступны 2 свойства.
- Состояние драйвера. Позволяет определить наличие драйвера.
… и выдается предупреждение
ПРИМЕЧАНИЕ
Обратите внимание на то, что при невозможности определения версии или при несовпадении текущей и ожидаемой версии такие предупреждения появляются перед началом работы с документами и обработками. Если версию невозможно определить, то это означает, что используется несертифицированный драйвер - используйте сертифицированные драйвера и оборудование. Если версия не совпадает с ожидаемой, то необходимо использовать драйвер указанной версии (если доступно) или, если используется драйвер более новой версии нежели требуемый, обновить обработку обслуживания (если доступно).
ВНИМАНИЕ
По всем вопросам, связанным с версионированием и поставками драйверов, обращайтесь к компаниям-разработчикам драйверов.
Для сертифицированных драйверов дополнительно доступны возможность проверки настроенных параметров и информация о расположении последней версии драйвера.
Сертифицированные драйвера позволяют произвести проверку настроенных параметров не закрывая форму настройки. Для того, чтобы произвести проверку установите необходимые параметры и нажмите кнопку "Тест устройства".
Если для устройства не возможно произвести автоматическую проверку параметров, то для него предлагается ручная проверка работоспособности устройства. То есть по нажатии кнопки "Тест устройства" открывается дополнительная (тестовая) форма, где описаны необходимые действия для выполнения проверки и отображается результат для визуального контроля успеха выполнения проверки.
На формах настройки параметров обработок обслуживания сертифицированных драйверов располагаются ссылки на последние версии драйверов (если они доступны для скачивания).
Если ссылки не приведены, то для получения драйвера необходимо обратиться в компанию производителя/поставщика торгового оборудования. Дополнительную информацию о драйверах и компании-разработчике драйвера можно получить в статье на ИТС "Список поддерживаемого торгового оборудования" или на сайте 1С: Поддерживаемое торговое оборудование
При работе с РИБ необходимо учитывать несколько моментов:
- Подключенные устройства и их настройки привязаны к локальному компьютеру и не подлежат миграции
- Добавлять в базу новые обработки обслуживания и торговое оборудование необходимо однократно, после чего необходимо произвести обмен между узлами для учета изменений
В итоге имеем следующие схемы работы:
- Новые обработки обслуживания добавляются в центральную базу, производится обмен с периферийной базой, после чего производится настройка торгового оборудования в периферийной базе
- Новые обработки обслуживания добавляются в периферийную базу, производится обмен с центральной базой, после чего производится настройка торгового оборудования в периферийной базе
- Обработки обслуживания обновляются в центральной базе, после чего производится обмен с периферийной базой
- Обработки обслуживания обновляются в периферийную базу, после чего производится обмен с центральной базой
- При удалении элемента в одной из баз после обмена данный элемент будет удален и в остальных базах
Все иные комбинации приводят к коллизиям и появлениям ошибочных записей: "задвоение" записей, удаление используемых записей, появление "битых" ссылок.
Читайте также: