Имя: Пароль:
1C
1C 7.7
v7: TurboSMS: ошибка при получении к mysql по ODBC 7.7 на 64 битной ОС
0 uno-group
 
14.05.21
10:44
Функция ОтправитьТурбоСМС(Номер, Текст) Экспорт
    Соединение=СоздатьОбъект("ADODB.Connection");
    СтрокаСоединение = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=77.120.116.10;DataBase=users;UID=" + СокрЛП(пользователь) +";PWD=" + СокрЛП(пароль);
//    СтрокаСоединение = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=77.120.116.10;DataBase=users;UID=" + СокрЛП(пользователь) +";PWD=" + СокрЛП(пароль);
    Попытка
        Соединение.Open(СтрокаСоединение);
    Исключение
        Сообщить("Не могу подключиться к базе!!!");
        Сообщить(описаниеошибки());
        Возврат 0;
    КонецПопытки;
    Соединение.Execute("insert into " + Пользователь+"(number,sign,message) values('" + Номер + "','" + Подпись+"','"+ Текст + "')");
    Возврат 1;
КонецФункции
Выдает :
Не могу подключиться к базе!!!
Microsoft OLE DB Provider for ODBC Drivers: [MySQL][ODBC 3.51 Driver]Can't connect to MySQL server on '77.120.116.10' (10060)
Уже и 3.51 и 5.1 и 8.0 драйвера ставил для 32 и 64 ОС. никак не могу побороть.
1 ДенисЧ
 
14.05.21
10:46
@Причин возникновения ошибки 10060 при подключении к серверу MySQL может быть несколько: Проверьте настройки межсетевого экрана (файрвола). В них обязательно должен быть открыт порт 3306 по протоколам TCP и UDP. Проверьте, настроен ли ваш MySQL-сервер на работу по сети@

https://linuxdata.ru/questions/q56.html#:~:text=Причин%20возникновения%20ошибки%2010060%20при,сервер%20на%20работу%20по%20сети.
2 Djelf
 
гуру
14.05.21
10:53
(0) По мануали https://turbosms.ua/sql.html адрес https://turbosms.ua/sql.html и это не 77.120.116.10, а 94.249.146.189
3 uno-group
 
14.05.21
10:58
(2) помогло частично.
Microsoft OLE DB Provider for ODBC Drivers: [MySQL][ODBC 3.51 Driver]Access denied for user 'unogroup'@'91.234.226.205' (using password: YES)
4 uno-group
 
14.05.21
11:02
пароль тоже поборол.
5 uno-group
 
14.05.21
11:24
вроде все отрабатывает но смс не приходит. Пока тестирую сервис подпись не настраивал. Пробовал в нее указать свой номер заданый при регистрации. оставлял пустым. вроде все отрабатывает но СМС не приходит.
6 uno-group
 
14.05.21
11:29
нашел общие подписи. MAGAZIN ушло. осталось текст побороть пришли кракозяблы
7 uno-group
 
14.05.21
12:35
что то кодировку не победю.
//*******************************************
Функция ПреобразоватьСтрокуВУТФ8(Стр) Экспорт
    Длина=СтрДлина(Стр);
    Итог="";
    Для Н=1 По Длина Цикл
        Знак=Сред(Стр,Н,1);
        Код=КодСимв(Знак);
        Если Код<128 Тогда
            Итог=Итог+Знак;
        Иначе
            Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
                Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
            ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
                Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
            ИначеЕсли (Знак="ё") Тогда
                Итог=Итог+Симв(209)+Симв(145);
            ИначеЕсли (Знак="Ё") Тогда
                Итог=Итог+Симв(208)+Симв(129);
            ИначеЕсли (Знак="і") Тогда
                Итог=Итог+Симв(209)+Симв(150);
            ИначеЕсли (Знак="ї") Тогда
                Итог=Итог+Симв(208)+Симв(151);
            ИначеЕсли (Знак="є") Тогда
                Итог=Итог+Симв(209)+Симв(148);
            ИначеЕсли (Знак="Є") Тогда
                Итог=Итог+Симв(208)+Симв(132);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Итог;
КонецФункции
//******************************************
//Пытаюсь внедрить на 7.7, как Buh. Пишу в глобальном модуле
Функция ОтправитьТурбоСМС(Номер, Текст) Экспорт
    Соединение=СоздатьОбъект("ADODB.Connection");
    СтрокаСоединение = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=94.249.146.189;DataBase=users;UID=" + СокрЛП(пользователь) +";PWD=" + СокрЛП(пароль);
    Попытка
        Соединение.Open(СтрокаСоединение);
    Исключение
        Сообщить("Не могу подключиться к базе!!!");
        Сообщить(описаниеошибки());
        Возврат 0;
    КонецПопытки;
    Соединение.Execute("insert into " + СокрЛП(Пользователь)+"(number,sign,message) values('" + СокрЛП(Номер) + "','" + СокрЛП(Подпись)+"','"+ ПреобразоватьСтрокуВУТФ8(СокрЛП(Текст)) + "')");
    Возврат 1;
КонецФункции
//*******************************************
Если записать ее в файл то пишет что все ок  utf-8 а приходят крокозяблы. пробовал ADODB.Stream преобразовывать тот же результат.
8 arsik
 
гуру
14.05.21
12:40
9 uno-group
 
14.05.21
13:36
(8) Спасибо помогло. Исправил строку соединения и все заработало.
    СтрокаСоединение = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=94.249.146.189;DataBase=users;UID=" + СокрЛП(пользователь) +";PWD=" + СокрЛП(пароль)+";stmt=SET NAMES 'utf8';";
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой