1с источник данных не найден не указан драйвер используемый по умолчанию 1с
Первый успешно считывает описание сервиса
Второй приходит с ошибкой на стороне сервера.
Предположение: несовместимость форматов различных версий, что-то передается не в том формате, или с ошибочными данными
Шаг 2: частичное обновление конфигурации (полное пока нельзя, поскольку она с доработками и идет интеграция с сайтом, чтобы не вызывать возможных срывов в работе)
обновляю конфигурацию в режиме объединения/замещения
- общие модули с именами МобильноеПриложениеЗаказыКлиентов* ( 4 шт)
- XDTO-пакеты/Все
- Web-сервисы/CustomerOrdersExchange
- Планы обмена/МобильноеПриложениеЗаказыКлиентов
Тестирую, синхронизацию. проходит далее, но возникает ошибка «Не найден узел обмена для пользователя».
Шаг3:
Тут ошибка случайная, но тем, не менее, она возникла.(«Не найден узел обмена для пользователя»)
Для каждого экземпляра андроид-приложения в 1С требуется создать узел в плане обмена, в нем сопоставить пользователя. В процессе первоначальной настройки, узел был создан для другого пользователя, затем пользователь изменен, а в текущей реализации конфигурации, это приводит к ошибке отсутствия узла т.к. идентификатор пользователя записывается в код узла, только при его незаполненности.
Создав новый узел (или программно изменив код в старом), эта ошибка уходит.
Здесь еще есть нюанс, который надо учесть: после успешной синхронизации, код узла заменяется идентификатором устройства, и подключении под этим пользователем с различных устройств одновременно не возможно (вызовет такую же ошибку, как выше). Переход на другое устройство, потребует установки кода узла в уникальный идентификатор пользователя, затем узел привяжется к новому устройству.
Шаг 4:
Всё еще выходит ошибка, но уже гораздо позднее, синхронизация как-то продвинулась, что даже настройки подключения не слетают.
Предположение: не совместимость запросов объединенных модулей
Надо отлаживать, но подключения к вэбсервисам почему-то не отлаживается, возможно проблема в платформе 8.3.5.1186.
Танцы с бубном, создание файлов «comcntrcfg.xml и webservicecfg.xml», добавление строки в «default.vrd», перезапуски, не дают результаты. Откладываем на потом.
Шаг 5
В процессе работы вызываются функции вэбсервиса, которые вызывают экспортные функции общих моделей, т.е. есть возможность отладить их напрямую.
Накидываем форму обработки «Выполнятель» (для управляемой формы у меня не было).
Получается вот такой код-скрипт для начального тестирования:
Пришлось опять менять/создать пользователя в узле, текущего пользователя. т.к. хотя передается уид любого пользователя, но сравнивается он с текущим (для сеанса соединения все пройдет нормально).
Теперь у меня код проходит на «Успешно=Истина».
Выполняем вторую часть кода:
Вот тут и вывелась мне ошибка: оказалось, что при объединении плана обмена я не объединил макеты узла, из которых берутся схемы ответа, и в частности в ответе отсутствовали данные по странам.
Объединяем, обнаруживаем попутно, что еще добавились реквизиты плана, обновляем без них, но предполагаем что придется вернуться к ним в нерабочее время.
Шаг 6
Фокус не прошел, т.к. запросы в схемах ссылаются на отсутствующие регистры.
Исходим из того что пока мы полное обновление производить не можем.
Оказалось выполняется соединение с РегистрСведений.УчетнаяПолитикаОрганизаций, причем в случае отсутствия записи передается пустая строка(для этапа тестировани должно подойти). Все остальные схемы ошибок не показывают.
Модифицируем запрос, проверяем дальше.
Тестирование справочников проходит успешно, в ответ выводится xml.
Но приложение все еще вылетает с ошибкой разбора.
Тестируем остальные методы сервиса…
Шаг 7
Поле не найдено «РегистрироватьНаличные» >РегистрироватьНаличные КАК РегистрироватьНаличные,
Это как раз из отсутствующих реквизитов плана обмена, подправляю заполнение структуры реквизитов.
Далее, отсутствует константа «ИспользоватьРасширенныеВозможностиЗаказаКлиента».
Попутно вызвал тестирование выгрузки прайса:
Заключение
Тут медлительный сервер впал в ступор, на полчаса и сколько будет еще не известно (индикатора нет).
Ошибкой было: задание второго параметра Истина(Все цены/Измененные), но думаю при первом обмене это бы не помогло).
В базе не меньше 1000 номенклатурных позиций, примерно 10 характеристик к каждой, видимо, это много, и с учетом нехватки памяти, ограничения на уровне записей, надо запастись большим интервалом времени на начальную синхронизацию, может быть есть возможность это ускорить, постараюсь вернуть к этому позже.
В узле обмена наложу условия на отбор номенклатуры, когда буду тестировать на телефоне (как оказалось отбор только по видам цен,). через соглашение еще можно, но косвенно через сегмент номенклатуры….
Оставил «на ночь», через час (по дате последней синхронизации) обмен успешно прошел.
Приложение
Реклама магазина самообслуживания: треска, стоящая в очереди за cобственной печенью.
— Владимир Колечицкий
Цель подключиться к базе SQL, чтобы запросы к SQL базам ,можно было собирать в консоли запущенной в 1С.
С подключение по ADO проблем нет, цель в том что бы работать с таблицами SQL не перетаскивая их в 1С.
ODBC обновлял, стоят 11 и 13 версий.
На вкладке "Пользовательский DSN" Имя:Northwind , Драйвер: ODBC Driver 11 for SQL Server
На вкладке "Системный DSN" тоже самое.
При подключении в конфигураторе внешнего источника данных мастером на каждом шаге он задумывается и рождает вот такую строку:
DRIVER=;SERVER=kvazar;UID=sa;PWD=1234;DATABASE=Northwind
Когда строку беру со своей старой обработки подключается молниеносно:
driver=; server=kvazar; uid=sa; pwd=1234; Database=Northwind
Для большей ясности фрагмент кода:
Соединяние = Новый COMОбъект("ADODB.Connection");
ConnectionString = "driver=; server=kvazar; uid=sa; pwd=1234; Database=Northwind";
Соединяние.ConnectionTimeOut =200;
Соединяние.CursorLocation = 2;
Попытка
Соединяние.Open(ConnectionString);
Предупреждение("Соединение установлено");
Исключение
Предупреждение("Невозможно установить соединение");
КонецПопытки;
// // Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| dbo_Categories.Ссылка,
| dbo_Categories.CategoryID,
| dbo_Categories.CategoryName,
| dbo_Categories.Description,
| dbo_Categories.Picture
|ИЗ
| ВнешнийИсточникДанных.Боерей.Таблица.dbo_Categories КАК dbo_Categories";
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(ВыборкаДетальныеЗаписи.CategoryName);
КонецЦикла;
Перед тем как потревожить уважаемое сообщество, плясал с бубном очень долго.
Спасибо большое, если кто откликнется
(0) И еще не указал разрядность 1с. SQL Server Native client 11.0 имеет обе разрядности, но ставятся отдельно.
Собственно не могу подключиться к MSSQL серверу по ODBC через 1с
Может кто знает куда копать ? как починить.
Попробую по пунктам описать куда копать:
1. стандартный порт для подключение по ODBC 1433 проверяем висит ли что то на этом порту:
netstat -an | find"1433"
2. Если да то копаем в сторону фаервола. разрешаем правила - либо целиком отключаем:
Если у вас включен Windows Firewall (или любой другой), необходимо открыть порт 1433
Если нетстат показывает что ничего не висит на 1433 то проверяем по пунктам:
1. Запускаем SQL Server Configuration Manager
В окне конфигурации SQL Server выберите ветку Network Configuration SQL Server -> Протоколы для SQL Server. Затем включите необходимые порты. Обычно достаточно TCP/IP.
- также в этом окошке откройти закладку ip adresses - и там в самом низу порт - он может быть не стандартный. (подключаться надо на него)
После этого перейдите в ветку Настройка собственного клиента SQL Клиентские протоколы. Произведите настройку необходимых протоколов. Обычно достаточно TCP/IP с настройками по умолчанию. Если вы измените номер порта, его нужно будет разблокировать в файрволе, а также указывать при соединении с SQL сервером. Рекомендуется оставить номер порта по умолчанию – 1433
2. После конфигурации протоколов, перейдите в ветку «Службы SQL Server». Перезапустите SQL Server.
3. Запустите Microsoft SQL Server Management Studio (среду управления сервером баз данных) и подключитесь к серверу. Кликните правой кнопкой мышки по серверу. В появившемся меню выберите «Свойства».
- В разделе «Безопасность» поставьте «Проверка подлинности SQL Server и Windows».
- В разделе «Соединения» установите опцию «Разрешить удаленные соединения с этим сервером».
ПЕРЕЗАПУСТИТЕ СЛУЖБУ SQL SERVERA.
ВОЗМОЖНО КОМУ ТО ПОМОЖЕТ: Фактический порт TCP для подключения через ODBC можно найти в реестре по адресу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\\MSSQLServer\SuperSocketNetLib\Tcp
И еще раз я об этом написал с самого начала, с чего стоит копать, стандартный порт подключения 1433
т.е мы на самом сервере должны понять.
1. Запустите NETSTAT -A чтобы просмотреть список открытых портов (скажем, LISTENING). Если 1433 нет среди них, то SQL-сервер не работает или не прослушивает этот порт.
2. Если в списке указано 1433, проверьте локальный брандмауэр, чтобы узнать, разрешает ли он подключение к/из локального хоста и/или разрешает подключения к 1433.
3. Вы можете попробовать TELNET 1433 (к локал хост и к внешнему ip с другово клиент)
Что делать если вы не видите открытый стандартный порт 1433, способы понять, какой порт использует ваш MSSQL
1. через (SQL Server Configuration Manager) - описал в самом первом посте и в посте ниже - этого.
2. через логи событий
3. SQL Server Error Logs
4. через выполнение SQL запроса.
5. через реестр - описал в первом ответе
---- описание всех способов:
By default SQL Server listens on TCP port number 1433, and for named instances TCP port is dynamically configured. There are several options available to get the listening port for SQL Server Instance.
Here are a few methods which we can use to get this information.
Method 1: SQL Server Configuration Manager
Method 2: Windows Event Viewer
Method 3: SQL Server Error Logs
Method 4: sys.dm_exec_connections DMV
Method 5: Reading registry using xp_instance_regread
Let's see how you can use each of these methods in detail:
Method 1: SQL Server Configuration Manager:
Step 1. Click Start > All Programs > Microsoft SQL Server 2012 > Configuration Tools > SQL Server Configuration Manager
Step 2. Go to SQL Server Configuration Manager > SQL Server Network Configuration > Protocols for
Step 3. Right Click on TCP/IP and select Properties
Step 4. In TCP/IP Properties dialog box, go to IP Addresses tab and scroll down to IPAll group.
If SQL Server if configured to run on a static port it will be available in TCP Port textbox, and if it is configured on dynamic port then current port will be available in TCP Dynamic Ports textbox. Here my instance is listening on port number 61499.
Method 2: Windows Event Viewer:
When SQL Server is started it logs an event message as 'Server is listening on [ 'any' ' in windows event logs. Here will be actual port number on which SQL Server is listening.
To view this using Event Viewer:
Step 1. Click Start > Administrative Tools > Event Viewer.
Note: If Administrative Tools are not available on Start menu, go to Start > Control Panel > System and Maintenance > Administrative Tools > View event logs
Step 2. Navigate to Event Viewer > Windows Logs > Application
Step 3. Since huge amount of event are logged, you need to use filtering to locate the required logs. Right click on Application and select Filter Current Log…
Step 4. You can filter the events by Event ID and Event source. The event we are interested in has Event ID of 26022, and it’s source is SQL Server Instance. You need to filter by both Event ID and SQL Server Instance if you have multiple instances installed, for a single instance you can filter by Event ID only. Click on OK to apply the filter.
Step 5. Once the filter is applied, Locate message 'Server is listening on [ 'any' …'. As we can see from below screenshot that SQL Server Instance is running on TCP Port 61499.
Method 3: SQL Server Error Logs:
When SQL Server is started it also logs an message to SQL Server Error Logs. You can search for port number in SQL Server Error Logs by opening SQL Server Error Log in notepad or via T-SQL using extended stored procedure xp_ReadErrorLog as below:
EXEC xp_ReadErrorLog 0, 1, N'Server is listening on', N'any', NULL, NULL, 'DESC'
LogDate ProcessInfo Text
2013-03-21 13:34:40.610 spid18s Server is listening on [ ‘any’ 61499].
2013-03-21 13:34:40.610 spid18s Server is listening on [ ‘any’ 61499].
(2 row(s) affected)
As we can see from the output that SQL Server Instance is listening on 61499.
Note: This method does not work if SQL Server Error Logs have been cycled. See sp_Cycle_ErrorLog for more information.
Method 4: sys.dm_exec_connections DMV:
DMVs return server state that can be used to monitor SQL Server Instance. We can use sys.dm_exec_connections DMV to identify the port number SQL Server Instance is listening on using below T-SQL code:
WHERE session_id = @@SPID
(1 row(s) affected)
As we can see from the output… same as above Smile
Method 5: Reading registry using xp_instance_regread:
Port number can also be retrieved from Windows Registry database.
We can use extended stored procedure xp_instance_regread to get port number information using below T-SQL code:
DECLARE @portNumber NVARCHAR(10)
'Software\Microsoft\Microsoft SQL Server\MSSQLServer\SuperSocketNetLib\Tcp\IpAll',
@value = @portNumber OUTPUT
SELECT [Port Number] = @portNumber
(1 row(s) affected)
As we can see … same as above Smile Smile
Note: The above code will only work if SQL Server is configured to use dynamic port number. If SQL Server is configured on a static port, we need to use @value_name = 'TcpPort' as opposed to @value_name = 'TcpDynamicPorts'.
Hope This Helps!
Статические и динамические порты SQL Server
Microsoft SQL Server может работать в двух режимах:
Прослушивание одного порта (по-умолчанию это TCP порт 1433). Этот режим будет выбран по-умолчанию, если во время установки SQL Server не использовать именованный экземпляр.
Динамический выбор портов. В этом случае при запуске SQL Server выберет свободный порт. Этот режим будет выбран по-умолчанию, если во время установки SQL Server настроить на использование именованного экземпляра.
Для того чтобы определить и изменить режим работы SQL Server нужно:
Открыть "Диспетчер конфигурации SQL Server"
В левом столбце выбрать "Сетевая конфигурация SQL Server" -> "Протоколы для "
В правом столбце дважды кликнуть по протоколу TCP/IP
В открывшемся окне в разделе IPAll указано два параметра:
"TCP порт" - при помощи этого параметра можно задать статический порт. По-умолчанию значение 1433.
"Динамические TCP порты" - при помощи этого параметра можно задать диапазон, из которых будет выбираться порт для SQL Server
Для своей работы система с сервером 1С использует следующие порты:
1433 (TCP/IP) — сервер SQL;
1434 (UDP) — сервер SQL;
1540 (TCP/IP) — агент сервера (если сервер один, то можно не открывать);
1541 (TCP/IP) — менеджер кластера;
диапазон 1560-1591 (TCP/IP) — процесс 1С;
475 (TCP/IP) — HASP-менеджер;
475 (UDP) — HASP-менеджер;
Пример запуска 1С из командной строки:
"C:\Program Files\1cv8\8.3.12.1529\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d "C:\Program Files\1cv8\srvinfo"
При попытке подключения к драйверу через Excel (Данные -> источник внешних данных) получаю "В указанном DSN архитектура приложения не соответствует друг другу".
Если через VBA, то ошибка "Источник данных не найден и не указан драйвер, используемый по-умолчанию".
Вся информация о проведенных настройках на скриншотах.
ОС: Windows 7 x64.
MySQL 5.5 x32, user: root, pass: 333. Имя базы данных: testme.
Query Browser подключается без ошибок.
Драйвер mysql-connector-odbc-5.1.10-winx64.
Подключение драйвера ODBC mySQL
Добрый день. помогите начинающему. есть сервер с IP адресом 10.90.1.23 на котором установлен.
Как программно зарегестрировать новый источник данных(ODBC)?
Пишу прогу на Делфе, для доступа к данным использую ADO, при этом надо залазить в Источники.
Импорт данных в Excel из ODBC драйвера
Всем доброго времени суток. Описание проблемы. Есть ODBC драйвер для подключения к некой БД. Так.
Не могу создать локальное подключение ODBC к mysql через Foxpro
Доброе время суток!) Пишу базу данных на Foxpro. Нужно, чтобы база брала с локального сервера.
Могу помочь только с помощью поиска Гугла. Я, к сожалению, обо всем этом имею довольно поверхностное преставление на уровне Advanced User.
Тема привязана к разделу фриланса.
Дополнительные данные по сути топика:
Не знаю какие библиотеки подключать.
Сейчас подключена Microsoft ActiveX Data Objects 2.8 Library
Настраивал по гайду отсюда.
Часть параметров подключения смотрел здесь.
Есть ли у кого навыки подключения в обход ODBC, например через libmySQL.dll ?
Добавлено через 1 час 11 минут
Может попробовать со старым драйвером (3.51) ?
Добавлено через 6 часов 5 минут
Действительно, все заработало на драйвере 3.51.
При тех же настройках (только имя драйвера поменял) с установленным 5.1.10-winx64
пишет ошибку из топика.
ОС: Windows 7 x64.
MySQL 5.5 x32, user: root, pass: 333. Имя базы данных: testme.
Query Browser подключается без ошибок.
Драйвер mysql-connector-odbc-5.1.10-winx64.
У меня winXP x86 и драйвера соответветсвующие, работает без проблем, - пример в этом топике
Windows 7 x64 у меня нет. Покупать его не буду, но если сумею за выходные найти дистрибутив для экспериментов, обязательно попробую.
64-битный драйвер. А используете в 32-битном Excel. У меня на машине Office 2010 32-битный и установлен 32 же драйвер mysql-connector-odbc-5.1.9-win32. Всё работает, включая VBScript. ОС Windows 7 64bit Professional.
Решение
Кракозябры отображаемые в окне консоли mysql и выведенные в ADO.Recordset после добавления записи клиентом mysql можно и нужно победить!
Установлено: W7 x64, MySQL 5.5 x32 - дополнительные тесты установки драйверов ODBC для MySQL.
После проведения этих тестов, получил следующее:
Если установить только odbc-win32, то добавить в источник данных ODBC для W7 x64 (Панель управления -> Все элементы панели управления -> Администрирование -> Источники данных ODBC) драйвер MySQL не получается!
Если установить odbc-winx64, тогда можно добавить источник данных ODBC для MySQL сервера и возможно получать данные от MySQL при ранее установленном драйвере odbc-win32. Без установленного драйвера odbc-win32 всегда получал ошибку тема этого топика. А вот после добавления источника данных ODBC для MySQL сервера, я удалил установленный драйвер odbc-winx64, драйвер odbc-win32 остался установлен. И приложение (VBA) по прежнему работало!
И последнее, не ожидал такого поведения от клиента mysql в W7 x64, и был вынужден вручную задавать (set names cp1251) для правильного отображения данных в консоли mysql, впрочем учитывая, что никаких изменений в дефолтной настройке MySQL не проводил, это и есть правильно поведение сервера :)
Добавлено через 2 часа 7 минут
Кстати, с сайта mysql
The following instructions only work for 32-bit Windows systems. If you have a 64-bit Windows system, use the MSI installer, which installs both the 32-bit and 64-bit drivers to the correct locations.
При переезде на другой сервер столкнулся со следующей проблемой (Произошла исключительная ситуация Microsoft OLE DB Provider for ODBC Drivers): не работал обмен 1С с внешней базой данных MySQL. Оно то и правильно что не работал. Он не должен, ведь я не установил ODBC Connector MySQL и как следствие при попытке обмена видел ошибку (у вас наверняка что-то подобное выползает на экран, если вы сюда попали гугля аналогичную проблему 😉)
: Ошибка при вызове метода контекста (Open)
Соединение.Open();
по причине:
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию
ПУНКТ 2. КАКАЯ ВЕРСИЯ MYSQL ODBC ANSI DRIVER НУЖНА?
И так. У нас для решения проблемы с подключением 1С 8.2/8.3 к промежуточной базе MySQL нам нужен, как я уже писал выше, ODBC Connector MySQL! И не простой, а именно тот, что у нас прописан в модуле обмена. Идём в Конфигуратор 1С , находим там модуль в котором прописано подключение и смотрим какой же чудесный драйвер и какой версии используется для подключения к внешней базе данных! И о чудо - это MySQL ODBC 5.3 ANSI Driver ! В моём случае, конечно у вас он может быть другой версии.
Сервер=" 127.0.0.1 ";
БазаДанных=" MySQLdbname ";
Пользователь=" sa ";
Пароль=" P@ssW0rD123! ";
Соединение = Новый COMОбъект("ADODB.Connection");
СтрокаСоединения = "Provider=MSDASQL;DRIVER=< MySQL ODBC 5.3 ANSI Driver >;SERVER="+Сервер+";DataBase="+БазаДанных+";UID="+Пользователь+";PWD="+Пароль+";";
Соединение.ConnectionString = СтрокаСоединения;
Соединение.Open();
Возврат Соединение;
Подчёркнутое заменить на своё 🙂
ПУНКТ 3. УСТАНОВКА MYSQL ODBC ANSI DRIVER
Но всё это чудо не будет работать собственно без драйвера, так что идём по этой ссылке и скачиваем себе драйвер подходящей версии и разрядности. Копируем на сервер и устанавливаем его. Думаю с этим у вас проблем не возникнет, а если будут, то дальше можете не читать 🙂.
ПУНКТ 4. НАСТРОЙКА СОЕДИНЕНИЯ 1С 8.2/8.3 С ВНЕШНЕЙ БАЗОЙ ДАННЫХ MYSQL
Дальше нам понадобится программа odbcad32 . Её устанавливать не нужно, она у вас уже есть! Ищите её в Администрирование или Ctrl + R odbcad32 Enter
Для 32 битных систем программа расположена:
%windir%\system32\odbcad32.exe
А для 64 битных систем программа лежит тут:
%windir%\syswow64\odbcad32.exe
Но и ту и другую вы можете открыть из Администрирование в панели управления.
Читайте также: