Простая работа с MySQL из 1С

08.12.16

Разработка - Инструментарий разработчика

«Класс» для упрощения работы с MySQL из 1С. Позволяет просто выполнять любые виды запросов и получать данные в виде таблицы значений.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
MySQL.epf
.epf 8,46Kb ver:20161208
223
223 Скачать (1 SM) Купить за 1 850 руб.

Для соединения используется MySQL ODBC Connector

// Подключение к базе данных
ИмяODBC = "local_base";
ИмяБазы = "base_name";
ИмяПользователя = "base_name_user";
Пароль = "*******";

MySQL = Обработки.MySQL.Создать();
MySQL.Инициализация(ИмяODBC, ИмяБазы, ИмяПользователя, Пароль);

Если НЕ MySQL.УстановитьСоединение(Ложь) Тогда
   Сообщить(MySQL.ОписаниеОшибки);
   Возврат Ложь;
КонецЕсли;
// Получение таблицы значений и работа с ней
Запрос = 
"SELECT order_id,
|  order_date,
|  order_summ,
|  order_customer
|FROM tamble_orders
|WHERE order_loaded=""N""";

ТаблицаЗаказов = MySQL.ПолучитьТаблицуЗначенийПоЗапросу(Запрос);	

Если ТаблицаЗаказов = Неопределено Тогда
   Сообщить(MySQL.ОписаниеОшибки);
   Возврат Ложь;	
КонецЕсли;

Если ТаблицаЗаказов.Количество() = 0 Тогда		
   Сообщить("На сайте нет новых заказов для загрузки.");
Иначе				
   Для Каждого СтрокаТЗ ИЗ ТаблицаЗаказов Цикл
      НомерЗаказа = СтрокаТЗ.order_id;
      Покупатель = СтрокаТЗ.order_customer;
   КонецЦикла;
КонецЕсли;
// Добавление новых записей в таблицу базы MySQL
// Одиночная запись
// Соответствие со значениями полей для новой записи таблицы
Товар = Новый Соответствие();
Товар["product_id"] = "158742";
Товар["product_name"] = "1С Управление торговлей 10.3";
Товар["product_price"] = 12000;

// Построение запроса
MySQL.СоздатьЗапрос("INSERT", "table_products", Товар);
// Выполнение
Если НЕ MySQL.ВыполнитьЗапрос() Тогда
   Сообщить(MySQL.ОписаниеОшибки);
   Возврат Ложь;
КонецЕсли;

// Несколько записей
// Массив в который вставляются соответстия
НовыеТовары = Новый Массив();

Товар = Новый Соответствие();
Товар["product_id"] = "158742";
Товар["product_name"] = "1С Управление торговлей, редакция 10.3";
Товар["product_price"] = 12000;
НовыеТовары.Добавить(Товар);

Товар = Новый Соответствие();
Товар["product_id"] = "158743";
Товар["product_name"] = "1С Управление торговлей, редакция 11";
Товар["product_price"] = 12500;
НовыеТовары.Добавить(Товар);

MySQL.СоздатьЗапрос("INSERT", "table_products", НовыеТовары);
Если НЕ MySQL.ВыполнитьЗапрос() Тогда
   Сообщить(MySQL.ОписаниеОшибки);
   Возврат Ложь;
КонецЕсли;
// Обновление полей записи
// Соответствие с новыми значениями полей
Товар = Новый Соответствие();
Товар["product_price"] = 13000;
Товар["product_rest"] = 10;

// В четвертом параметре можно указать условие, по которым осуществляется поиск записей для обновления
MySQL.СоздатьЗапрос("UPDATE", "table_products", Товар, "WHERE product_id='158742'");
Если НЕ MySQL.ВыполнитьЗапрос() Тогда
   Сообщить(MySQL.ОписаниеОшибки);
   Возврат Ложь;
Иначе
   Сообщить("Обновлено товаров: " + MySQL.КоличествоИзменныхЗаписей);
КонецЕсли;
// Выполнение произвольного запроса
Запрос = "DELETE FROM table_products WHERE product_id='158742'";

Если НЕ MySQL.ВыполнитьЗапрос(Запрос) Тогда
   Сообщить(MySQL.ОписаниеОшибки);
   Возврат Ложь;
КонецЕсли;

Есть возможность разбить INSERT запрос с несколькими записями на подзапросы, чтобы не вставлять за раз много значений. Например, при добавлении в таблицу более 1000 записей, можно сделать это 10-ю запросами по 100 записей в каждом. Для этого достаточно вызвать код:

MySQL.ЭлементовВЗапросе = 100;

После этого все массивные INSERTы будут делаться по 100 записей за раз.
Полный текст запроса можно получить так:

MySQL.СоздатьЗапрос("INSERT", "table_products", НовыеТовары);
Сообщить(MySQL.ТекстЗапроса());

В случае, когда прямой доступ к MySQL запрещен, можно воспользоваться ssh-туннелем.  Для этого в обработке есть настройки для запуска Putty.

MySQL.ИспользоватьPutty = Истина;
MySQL.Putty = "c:\Program Files\PuTTY\putty.exe"; // Путь к программе Putty (Kitty)
MySQL.User_put = "ssh_user"; // Имя пользователя для установки ssh-соединения
MySQL.Pass_put = "******"; // Пароль
MySQL.Name_put = "session_name"; // Имя сохраненной сесии Putty с настройками соединения

MySQL phpMyAdmin INSERT UPDATE DELETE ODBC внешние источники данных обмен с сайтом putty kitty ssh ssh-туннель

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159409    872    399    

861

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7766    55    22    

66

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    23432    68    45    

117

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8500 руб.

10.11.2023    10416    36    21    

61

SALE! 15%

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 19980 руб.

06.10.2023    15395    35    7    

70

SALE! 35%

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3120 руб.

14.01.2013    187974    1138    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17302    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7694    8    35    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MegaSwitch 24.06.15 09:32 Сейчас в теме
Вот тут что-то похожее, только с использованием внешней компоненты.
2. salexdv 2357 24.06.15 09:55 Сейчас в теме
(1) MegaSwitch, спасибо за ссылку! Внешние компоненты я люблю, но тут все достаточно просто и легко реализуется на встроенном языке. Единственное "неудобство" - это то, что Putty для SSH висит отдельным процессом и никак не контролируется, хотя проблем с этим не возникало.
3. MegaSwitch 24.06.15 15:16 Сейчас в теме
Putty для SSH висит отдельным процессом и никак не контролируется

Вот как раз во этой причине в компоненте встроен ssh-клиент и полностью контролируется из 1С.
Так же, если присвоить СозданныйComObject = Неопределено, соединение автоматически закрывается с освобождением памяти.

У меня была практика использования Putty с 1С, но периодически клиент зависал, и приходилось убивать его руками, т.к. он занимал порт 3306.
К тому же, были какие-то проблемы при работе в клиент-серверном варианте, но какие - уже не помню.
4. salexdv 2357 24.06.15 16:45 Сейчас в теме
(3) MegaSwitch, тут никаких проблем не наблюдается. Putty запустился, обмен выполнился, при закрытии соединения Putty убился и все хорошо.
5. vasyak319 152 24.06.15 17:01 Сейчас в теме
Товар = Новый Соответстие()


Не откомпилируется.
6. salexdv 2357 24.06.15 17:14 Сейчас в теме
(5) vasyak319, спасибо, поправил.
7. ExpertAdmin 28.09.15 18:03 Сейчас в теме
8. salexdv 2357 28.09.15 21:04 Сейчас в теме
(7) Что именно не работает? Какой код выполняете? Какую ошибку возвращает?
9. al2ko 72 07.12.16 15:51 Сейчас в теме
Бодрого времени суток.
А можно при использовании вашего класса реализовать пакетное обновление данных? Используя UPDATE с разными параметрами WHERE?
Есть 20000 строк и их нужно обновить.
Если по одному запросу отрабатывать то 1 час уходит.
10. salexdv 2357 08.12.16 09:02 Сейчас в теме
(9) Здравствуйте! Пока такой возможности нет, но попробую реализовать.
11. salexdv 2357 08.12.16 12:43 Сейчас в теме
(9) Добавил два метода. Работа выглядит так:
MySQL.ОчиститьТекстЗапроса();
MySQL.ДобавитьЗапрос("UPDATE product SET price = '69' WHERE product_id = 1250");
MySQL.ДобавитьЗапрос("UPDATE product SET price = '137' WHERE product_id = 417");
MySQL.ВыполнитьЗапрос();

Чтобы заработало, в настройках соединения необходимо включить "Allow multiple statements" http://take.ms/KOKJR
12. kuril 57 08.12.16 15:43 Сейчас в теме
для получения данных на лету, в том числе в СКД можно использовать внешний источник данных
Прикрепленные файлы:
13. salexdv 2357 08.12.16 16:41 Сейчас в теме
(12) Можно. Обработка больше для изменения данных в базе, хотя читать её тоже удобно.
14. gospodenkods 10.02.17 16:16 Сейчас в теме
Отличный механизм вышел !! Респект автору.
15. nghleb 22.03.19 11:54 Сейчас в теме
Вручную SSH+ODBC работает отлично. Но при запуске в регламентном задании odbc не видит туннель. Куда копать?
16. salexdv 2357 22.03.19 12:29 Сейчас в теме
(15) Если регламентные задания выполняются на сервере, то у пользователя, под которым работает сервер (по умолчанию USR1CV8X) должны быть настроены источники данных ODBC. Возможно, проблема в этом.
user811769; +1 Ответить
17. nghleb 22.03.19 12:51 Сейчас в теме
(16) Да все верно. Это уже к тому моменту попробовал. Плюс к этому PuTTY тоже нужно настраивать под этим пользователем. Спасибо большое!
user811769; +1 Ответить
26. Greek26rusa 2 12.05.20 00:17 Сейчас в теме
MySQL.Инициализация(ИмяODBC, ИмяБазы, ИмяПользователя, Пароль);

{Обработка.MySQL.Форма.Форма.Форма(16)}: Метод объекта не обнаружен (Инициализация)
MySQL.Инициализация(ИмяODBC, ИмяБазы, ИмяПользователя, Пароль);

пытаюсь подключиться.Если вам не трудно можете подсказать почему такая ошибка?
единственно у меня ubuntu
но через workbench я подключаюсь норм
18. mort64ram 24 01.06.19 12:23 Сейчас в теме
Отличный "класс", автор большой молодец, спасибо.
19. maxster545 31.07.19 15:17 Сейчас в теме
соединение через COM в обработке?
20. salexdv 2357 31.07.19 16:12 Сейчас в теме
21. AlenaSa 30 07.11.19 12:08 Сейчас в теме
Все работает! Спасибо автору!
22. pinkz80 150 28.11.19 18:39 Сейчас в теме
отличная работа, спасибо!
23. SD3388 13.01.20 17:54 Сейчас в теме
Добрый день.
Как можно с Вами на прямую связаться по вопросам обработки ?
24. salexdv 2357 13.01.20 21:01 Сейчас в теме
(23) Пишите здесь, постараюсь помочь.
25. portal80 01.02.20 21:57 Сейчас в теме
Добрый вечер! Подключаюсь к базе Mysql через Putty

Само подключение происходит, всплывает окно PUTTY http://prntscr.com/qw58c9


Но дальше всплывает ошибка

{Обработка.MySQL.МодульОбъекта(30)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию

Драйвер устанавливал и 32 и 64 https://dev.mysql.com/downloads/connector/odbc/ отсюда

В чем причина помогите!?
27. Greek26rusa 2 12.05.20 00:59 Сейчас в теме
MySQL.Инициализация(ИмяODBC, ИмяБазы, ИмяПользователя, Пароль);
тут получаю ошибку не понятно что такое инициализация
28. salexdv 2357 12.05.20 09:26 Сейчас в теме
(27) Покажите полный код. Как создаете объект MySQL, обработку встроили в свою конфигурацию?
Должно быть вот так, если делаете так, как описывал я
MySQL = Обработки.MySQL.Создать();
MySQL.Инициализация(ИмяODBC, ИмяБазы, ИмяПользователя, Пароль);
29. Greek26rusa 2 24.05.20 21:22 Сейчас в теме
(28)разобрался а с линукса что то похожее есть?
30. salexdv 2357 25.05.20 09:13 Сейчас в теме
(29) Для linux у меня готового ничего нет
31. salexdv 2357 25.05.20 09:16 Сейчас в теме
(29) Можно попробовать установить ODBC-коннектор для соответствующей ОС, например, отсюда https://dev.mysql.com/downloads/connector/odbc/
Возможно, всё будет работать так, как надо. Сам я этого не пробовал
32. Greek26rusa 2 25.05.20 12:39 Сейчас в теме
(31)это я пробывал. так не срабатывает
33. salexdv 2357 26.05.20 21:14 Сейчас в теме
(32) В linux данная обработка вам мало чем поможет, там можно работать с MySQL только через внешние источники данных. В конфигураторе создаете источник, импортируете таблицы, с которыми хотите работать и делаете то, что вам нужно.
Код для получения данных будет примерно такой:
СтрокаСоединения = "DRIVER={MySQL ODBC 8.0 Unicode Driver};"; // Если установили последний на данный момент отсюда https://dev.mysql.com/downloads/connector/odbc/
СтрокаСоединения = СтрокаСоединения + "SERVER=XXX.XXX.XXX.XX;";
СтрокаСоединения = СтрокаСоединения + "DATABASE=basename;";	

ПараметрыСоединения = ВнешниеИсточникиДанных.MySQL.ПолучитьОбщиеПараметрыСоединения();
ПараметрыСоединения.АутентификацияСтандартная = Истина;
ПараметрыСоединения.АутентификацияОС = Ложь;

ПараметрыСоединения.ИмяПользователя = "username";
ПараметрыСоединения.Пароль = "userpassword";	
ПараметрыСоединения.СтрокаСоединения = СтрокаСоединения;
ПараметрыСоединения.СУБД = "MySQL";

ВнешниеИсточникиДанных.MySQL.УстановитьОбщиеПараметрыСоединения(ПараметрыСоединения);	// MySQL - имя внешнего источника данных в конфигураторе
ВнешниеИсточникиДанных.MySQL.УстановитьСоединение();

Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ ВнешнийИсточникДанных.MySQL.Таблица.customers");
ТаблицаПользователей = Запрос.Выполнить().Выгрузить();
Показать
34. Greek26rusa 2 27.05.20 14:13 Сейчас в теме
(33)Это вариант известен( к сожалению в расширении не работает. не хотелось бы изменять конфигурацию
35. salexdv 2357 27.05.20 14:26 Сейчас в теме
(34) Ну тогда простых решений я не вижу. Остаются только следующие варианты:
1. Ждать пока кто-нибудь напишет нативную компоненту для работы через ODBC.
2. Организовать какую-нибудь прокладку (php, python, java и т.п.), которая будет отдавать и принимать данные
3. Писать обмен через JSON/XML.
Тут третий вариант мне видится самым оптимальным.
А что страшного в добавлении источника данных в конфигурацию? На обновлении это практически не скажется. Весь код взаимодействия с источником можно сделать через расширение или внешнюю обработку. Изменений в конфигурации считай, что нет никаких.
36. mrostovsky 09.07.21 16:48 Сейчас в теме
Всем Доброго...
шоб исправить эту ошибку:
{Обработка.MySQL.МодульОбъекта(30)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан

в модуле обработке необходимо по образу и подобию внести изменения:


// Функция возвращает строку, используемую для подключения к базе MySQL
//
Функция ПолучитьСтрокуСоединения()
	
	//СтрокаСоединения = "DSN=" + СокрЛП(ODBC) + ";";
	//СтрокаСоединения = СтрокаСоединения + "Database=" + СокрЛП(DB) + ";";
	//СтрокаСоединения = СтрокаСоединения + "Uid=" + СокрЛП(User) + ";";
	//СтрокаСоединения = СтрокаСоединения + "Pwd=" + СокрЛП(Pass) + ";";
	
	СтрокаСоединения = "Provider=MSDASQL" + ";";
	СтрокаСоединения = СтрокаСоединения + "DRIVER={MySQL ODBC 8.0 ANSI Driver}" + ";";
	СтрокаСоединения = СтрокаСоединения + "SERVER=192.168.1.4" + ";";
	СтрокаСоединения = СтрокаСоединения + "Database=" + СокрЛП(DB) + ";";
	СтрокаСоединения = СтрокаСоединения + "Uid=" + СокрЛП(User) + ";";
	СтрокаСоединения = СтрокаСоединения + "Pwd=" + СокрЛП(Pass) + ";";
	
	Возврат СтрокаСоединения;
	
КонецФункции
Показать
37. GoR1313 23.05.22 11:53 Сейчас в теме
Спасибо большое! Очень выручила! )))
38. GoR1313 10.06.22 13:37 Сейчас в теме
Так, а вот такой вопрос, напрямую к базе подключается отлично, а вот через putty уже не может. Сможете мне помочь?

	ИмяODBC = "...";
	ИмяБазы = "...";
	ИмяПользователя = "...";
	Пароль = "...";
	
	MySQL = Обработки.MySQL.Создать();
	MySQL.Инициализация(ИмяODBC, ИмяБазы, ИмяПользователя, Пароль);
	
	MySQL.ИспользоватьPutty = Истина;
	MySQL.Putty = "C:\Program Files\PuTTY\putty.exe"; // Путь к программе Putty (Kitty)
	MySQL.User_put = ИмяПользователя;
	MySQL.Pass_put = Пароль;
	MySQL.Name_put = "meters";
	
	Если НЕ MySQL.УстановитьСоединение(Ложь) Тогда
		Сообщить(MySQL.ОписаниеОшибки);		
		Возврат;
	КонецЕсли;
Показать


и вот на установке соединения все и падает с ошибкой:

{РаботаСMySQL Обработка.MySQL.МодульОбъекта(50)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [MySQL][ODBC 8.0(a) Driver]Can't connect to MySQL server on '127.0.0.1:3306' (10061)
39. salexdv 2357 10.06.22 13:41 Сейчас в теме
(38) Putty при этом стартует? Порт в который смотрит ODBC через туннель проброшен в настройках Putty?
40. GoR1313 10.06.22 13:44 Сейчас в теме
(39) да, стартует без проблем. Так, а вот по настройкам подробнее. Порты где надо пробрасывать? У меня только так настроено:
Прикрепленные файлы:
43. salexdv 2357 10.06.22 13:53 Сейчас в теме
(40) Если проброс настроен правильно и сессия putty запущена, тогда тест соединения в настройках ODBC должен проходить успешно.
41. salexdv 2357 10.06.22 13:51 Сейчас в теме
(40) Смысл использовать putty есть тогда, когда порт MySQL на удаленном сервере закрыт для доступа извне. В таком случае можно пробросить порт через туннель на любой порт локальной машины, и уже именно локальный порт указывается в настройках ODBC. Подробнее про проброс портов можно почитать тут
42. GoR1313 10.06.22 13:52 Сейчас в теме
(41) Оки )))) Буду читать! Спасибо!
44. Zmey_72 54 13.01.23 13:44 Сейчас в теме
Огромное спасибо за обработку. Внедрил в свой обмен с сайтом. Правда пришлось немного дорабатывать, нашёл несколько недочётов. Например, у меня ключи полей обязательно нужно указывать по краям строки сиvволом апострофа, так он фроде называется. Вываливалась ошибка при выполнении запроса.

Вот код процедуры:

Функция ПолучитьТекстДляЗапросаОбновления(ЗначенияПолей)
	
	Текст = "";
	
	НомерПоля = 0;
	
	Для Каждого Обход ИЗ ЗначенияПолей Цикл		
		
		НомерПоля = НомерПоля + 1;
		
		Апостраф="";  // ;)
		
		Если Не ТипЗнч(Обход.Значение)=Тип("Число") Тогда 
			Апостраф="'";
		КонецЕсли;
		

// И ключ и значение обрамил знаками, иначе вываливалась ошибка 

		Текст = Текст +"`"+Обход.Ключ+"`"+ "="+Апостраф + Обход.Значение + Апостраф;
		
		Если НомерПоля < ЗначенияПолей.Количество() Тогда
			Текст = Текст + "," + Символы.ПС;
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат Текст;
	
КонецФункции
Показать
45. user1155991 29.08.23 18:00 Сейчас в теме
при записи в базу SQL вместо русских букв знаки вопроса. Понятно, что вопрос в кодировке, но как его решить? В базе данных кодировка utf8-general-ci
46. salexdv 2357 11.09.23 08:29 Сейчас в теме
(45) Возможно, стоит посмотреть в настройки ODBC или установлена не та версия ODBC Connector. Если я ничего не путаю, то есть ANSI-версия и Unicode.
47. user1155991 11.09.23 09:45 Сейчас в теме
(46)Проблема решилась сама собой. Может админы MySql увидели и что-то сделали. Либо повлияло то, что я перешел на другой физический сервер 1С. Возможно на новом сервере 1С и были другие настройки ODBC
Оставьте свое сообщение