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

08.12.16

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

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

Скачать файлы

Наименование Файл Версия Размер
MySQL.epf
.epf 8,46Kb
219
.epf 20161208 8,46Kb 219 Скачать

Для соединения используется 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! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

13000 10400 руб.

02.09.2020    122137    670    389    

714

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7288    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3531    11    1    

34

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177744    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99345    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18109    6    8    

39

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28108    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23601    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. MegaSwitch 24.06.15 09:32 Сейчас в теме
Вот тут что-то похожее, только с использованием внешней компоненты.
2. salexdv 2327 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 2327 24.06.15 16:45 Сейчас в теме
(3) MegaSwitch, тут никаких проблем не наблюдается. Putty запустился, обмен выполнился, при закрытии соединения Putty убился и все хорошо.
5. vasyak319 150 24.06.15 17:01 Сейчас в теме
Товар = Новый Соответстие()


Не откомпилируется.
6. salexdv 2327 24.06.15 17:14 Сейчас в теме
(5) vasyak319, спасибо, поправил.
7. ExpertAdmin 28.09.15 18:03 Сейчас в теме
8. salexdv 2327 28.09.15 21:04 Сейчас в теме
(7) Что именно не работает? Какой код выполняете? Какую ошибку возвращает?
9. al2ko 71 07.12.16 15:51 Сейчас в теме
Бодрого времени суток.
А можно при использовании вашего класса реализовать пакетное обновление данных? Используя UPDATE с разными параметрами WHERE?
Есть 20000 строк и их нужно обновить.
Если по одному запросу отрабатывать то 1 час уходит.
10. salexdv 2327 08.12.16 09:02 Сейчас в теме
(9) Здравствуйте! Пока такой возможности нет, но попробую реализовать.
11. salexdv 2327 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 2327 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 2327 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 2327 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 2327 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 2327 12.05.20 09:26 Сейчас в теме
(27) Покажите полный код. Как создаете объект MySQL, обработку встроили в свою конфигурацию?
Должно быть вот так, если делаете так, как описывал я
MySQL = Обработки.MySQL.Создать();
MySQL.Инициализация(ИмяODBC, ИмяБазы, ИмяПользователя, Пароль);
29. Greek26rusa 2 24.05.20 21:22 Сейчас в теме
(28)разобрался а с линукса что то похожее есть?
30. salexdv 2327 25.05.20 09:13 Сейчас в теме
(29) Для linux у меня готового ничего нет
31. salexdv 2327 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 2327 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 2327 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 2327 10.06.22 13:41 Сейчас в теме
(38) Putty при этом стартует? Порт в который смотрит ODBC через туннель проброшен в настройках Putty?
40. GoR1313 10.06.22 13:44 Сейчас в теме
(39) да, стартует без проблем. Так, а вот по настройкам подробнее. Порты где надо пробрасывать? У меня только так настроено:
Прикрепленные файлы:
43. salexdv 2327 10.06.22 13:53 Сейчас в теме
(40) Если проброс настроен правильно и сессия putty запущена, тогда тест соединения в настройках ODBC должен проходить успешно.
41. salexdv 2327 10.06.22 13:51 Сейчас в теме
(40) Смысл использовать putty есть тогда, когда порт MySQL на удаленном сервере закрыт для доступа извне. В таком случае можно пробросить порт через туннель на любой порт локальной машины, и уже именно локальный порт указывается в настройках ODBC. Подробнее про проброс портов можно почитать тут
42. GoR1313 10.06.22 13:52 Сейчас в теме
(41) Оки )))) Буду читать! Спасибо!
44. Zmey_72 53 13.01.23 13:44 Сейчас в теме
Огромное спасибо за обработку. Внедрил в свой обмен с сайтом. Правда пришлось немного дорабатывать, нашёл несколько недочётов. Например, у меня ключи полей обязательно нужно указывать по краям строки сиvволом апострофа, так он фроде называется. Вываливалась ошибка при выполнении запроса.

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

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

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

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