Имя: Пароль:
1C
1С v8
[ODBC SQL Server Driver][DBNETLIB]Недопустимое соединение.
,
0 Федя Тяпкин
 
01.12.22
15:16
Подключаюсь к серверу SQL из 1С, который находиться на другой машине в сети. Ошибка в сабже. Если меняю имя SQL сервера на неправильное, то ошибка другая. Если меняю на неправильные имя пользователя и прочие параметры ошибка не меняется. Подскажите куда копать пжл. Код такой:
1 Федя Тяпкин
 
01.12.22
15:17
ИмяСервераSQL = "xxx.xxx.xxx.xxx";
    ПользовательSQL = "user";
    ПарольSQL = "password";
    БазаДанныхSQL = "DataBase";
    ТаблицаSQL = "Table";


    /////////////////////////////////////////
    //Подключение к SQL-серверу
    Попытка
        Соединение  = Новый COMОбъект("ADODB.Connection");
        
        Соединение.ConnectionString =
            "driver={SQL Server};" +
            "server="+ИмяСервераSQL+";"+
            "uid="+ПользовательSQL+";"+
            "pwd="+ПарольSQL+";"+
            "database="+БазаДанныхSQL+";";
        Соединение.ConnectionTimeout = 30;
        Соединение.CommandTimeout = 600;
        Соединение.Open();
        Сообщить("Успешное подключение!");
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
2 Федя Тяпкин
 
01.12.22
15:19
если меняю ip сервера
{ВнешняяОбработка.ПодключениеКSQL.Форма.Форма.Форма(28)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server не существует, или доступ запрещен.
3 shuhard
 
01.12.22
15:31
(2) а что говорит udl файлик по этому поводу ?
4 Федя Тяпкин
 
01.12.22
15:35
(3) а кто это?)
5 Garykom
 
гуру
01.12.22
15:50
Не используй COM/OLE и ODBC
Используй другие методы, более универсальные
6 Федя Тяпкин
 
01.12.22
16:01
(5) а как еще можно цепануться к SQL?
7 Garykom
 
гуру
01.12.22
16:09
8 Garykom
 
гуру
01.12.22
16:11
(7)+ взять и добавить вот сюда https://github.com/Garykom/psql
9 Garykom
 
гуру
01.12.22
16:12
10 arsik
 
гуру
01.12.22
16:13
Внешние источники юзай
11 Garykom
 
гуру
01.12.22
16:17
(9)+ лучше пример
https://gist.github.com/rossnelson/cbb192d314b6c89b7148e919ab25986c
что и где поменять
12 Garykom
 
гуру
01.12.22
16:20
в https://github.com/Garykom/psql/blob/main/main.go
достаточно поменять только import
с _ "github.com/jackc/pgx/stdlib" на _ "github.com/denisenkom/go-mssqldb"

и
connectionString := "postgres://" + request.User + ":" + request.Password + "@" + request.Server + ":" + request.Port + "/" + request.Database + "?sslmode=disable"
db, err := sqlx.Connect("pgx", connectionString)
на
db, err := sqlx.Connect(
        "mssql",
        "sqlserver://SA:[email protected]:1433?database=testingstuff&connection+timeout=30",
    )
13 Garykom
 
гуру
01.12.22
16:24
(6) В итоге получается exe который засовываешь в макет в 1С
Когда надо сохраняешь в temp и запускаешь с параметрами
аля https://github.com/Garykom/psql/blob/main/run.bat

на вход подается вот такой json
https://github.com/Garykom/psql/blob/main/request.json

результат будет тоже в json, его средствами 1С легко
14 1Сергей
 
01.12.22
16:33
фу, ехешник..
15 Федя Тяпкин
 
01.12.22
16:38
(10) с внешних источников и начал. та же петрушка.
16 Федя Тяпкин
 
01.12.22
16:38
(13) спасибо.
17 Kassern
 
01.12.22
16:39
(15) Можно простой вопрос, зачем вам на прямую соединяться к скулю? Какую задачу решаете?
18 Федя Тяпкин
 
01.12.22
16:42
(17) в скуле данные с энергосчетчиков, с ними нужно провести некоторые вычисления и вывести в отчет о суточном потреблении электроэнергии по каждому объекту.
19 Kassern
 
01.12.22
16:44
(18) Этот скуль от 1ски, или вообще левая база с 1с не связанная? Скуль от мелкомягких?
20 Федя Тяпкин
 
01.12.22
16:45
(19) левая. от программы учета электроэнергии.
21 Kassern
 
01.12.22
16:48
(20) скуль-то какой? MySQL, postgresql, MSSQL, Oracle  и т.д
22 Kassern
 
01.12.22
16:50
Может вообще firebird какой-нибудь
23 Федя Тяпкин
 
01.12.22
16:51
(21) MS SQL
24 Kassern
 
01.12.22
16:55
(23) попробуйте обновить драйвер ODBC, или выбрать другой в ВИД. У как-то была проблема, что не цеплялось к скулю, в итоге пару танцев с бубном и все завелось, давненько правда было.
25 Kassern
 
01.12.22
16:55
А может вам тупо прав не хватает у юзвера, под которым вы пытаетесь подцепиться
26 Федя Тяпкин
 
01.12.22
16:57
(24) что за вид? как выбрать? тоже есть подозрение на пользователя. но пароль sa пока не дают.
27 Kassern
 
01.12.22
16:57
(26) ВИД - внешние источники данных. Хотя, если бы дело было в драйвере, то скорее всего ругнулось бы именно на него.
28 Kassern
 
01.12.22
16:59
29 Федя Тяпкин
 
01.12.22
17:00
(27) с внешними источниками как то совсем все не прозрачно. решил подцепиться сначала обработкой, а потом уже с ВИД пробовать.
30 Федя Тяпкин
 
01.12.22
17:01
у юзера под которым цепляюсь в скуле только одна роль public. этого достаточно?
31 shuhard
 
01.12.22
17:02
(4) файлик сделай с таким расширением, текстовый - дальше всё очевидно
32 Kassern
 
01.12.22
17:04
(30) Вы можете самостоятельно протестить. Создайте базу данных в скуле, создайте табличку какую-нибудь и вбейте туда несколько строк данных. Создайте пользователя суперадмина и попробуйте под ним подключиться к этой базе вашей обработкой, или через ВИД. Если все успешно, тогда создайте другого пользователя с ограниченными правами и проверьте достаточно ли public. В итоге вы придете к пониманию минимальных прав для работы с нужной таблицей.
33 Федя Тяпкин
 
01.12.22
17:06
(32) пароля к sa нет. не могу эти эксперементы провести.
34 Федя Тяпкин
 
01.12.22
17:21
так под sa тоже не подключается. подскажите агент sqL должен быть запущен? как проверить что драйвер ODBC установлен?
35 Kassern
 
01.12.22
17:22
(34) Уберите попытку и исключение.  Соединение  = Новый COMОбъект("ADODB.Connection"); - проходит?
36 Kassern
 
01.12.22
17:24
(34) агент вроде нужен для выполнения заданий, бекапы там всякие, реструктуризации по расписанию
37 Федя Тяпкин
 
01.12.22
17:33
(35) Проходит. На  Соединение.Open() валится.
38 Kassern
 
01.12.22
17:39
(37) Попробуйте через ВИД подключиться к нужной таблице, в строке подключения укажите, что-то типа DRIVER={SQL Server};SERVER=ИмяСервера;UID=sa;PWD=ПарольSA;DATABASE=ИмяБазы
39 Федя Тяпкин
 
01.12.22
17:42
(38) я начинал пробовать с настройки ВИД. там на строке подключения так же валится и вообще не понятно на чем именно. лучше разбираться через обработку думаю.
40 1Сергей
 
01.12.22
17:43
(39) Подключение идёт с сервера или с клиента?
41 Федя Тяпкин
 
02.12.22
11:24
(40) с клиента
42 Федя Тяпкин
 
02.12.22
11:40
(40) с сервера тоже самое. да и через ВИД подключение видимо происходит с сервера, тот же результат(
43 1Сергей
 
02.12.22
11:47
44 Федя Тяпкин
 
02.12.22
12:38
Всем спасибо. Причина в том что в SQL EXSPRESS по умолчанию закрыты возможности удаленного подключения. Помогло вот это:
https://forum.technologics.ru/topic1691.html
и это:
https://www.it-fm.ru/?p=1210

Пошел теперь с ВИД воевать.
45 1Сергей
 
02.12.22
12:52
Святой гуглёж помог