--- id: MySQL sidebar_class_name: MySQL keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, MySQL] --- # MySQL Этот раздел посвящен библиотеке для работы с базами данных MySQL в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы
Для реализации некоторых функции в этой библиотеке используется внешняя компонента
Пожалуйста, ознакомьтесь с разделом ["О внешних компонентах"](/docs/Start/Component-requirements) перед началом работы
Для работы этой библиотеки на Linux необходим **OpenSSL 3.x**
Узнать больше: "Об использовании OpenSSL во внешних компонентах"
## О реализованных методах Данная библиотека состоит из двух частей: основных методов, вроде подключения и выполнения SQL-запросов, и небольшой ORM для часто встречающихся операций, вроде CREATE, SELECT, INSERT, DELETE и пр. Работа через ORM и через тексты запросов, выполняемые функцией `ВыполнитьЗапросSQL()`, технически не отличается: ORM просто формирует текст SQL-запроса на основе макетов, но далее также выполняет их этой функцией По умолчанию, все запросы SELECT возвращают массив выбранных данных, а остальные запросы - только `true` в поле `result` при успехе, либо `false` и текст ошибки в полях `result` и `error` соответственно. Для выполнения запросов, требующих возврата данных, но не являющихся запросами SELECT, в функции `ВыполнитьЗапросSQL()` есть параметр `ФорсироватьРезультат` ## Параметры запросов Коннектор MySQL поддерживает использование позиционных параметров. Все значения, передаваемые как при прямом выполнении запросов через функцию `ВыполнитьЗапросSQL()`, так и в ORM методах с установкой значений, вроде `ДобавитьЗаписи` и `ОбновитьЗаписи`, должный представлять из себя структуру вида `{'Тип данных': 'Значение'}`. Поддерживаются следующие типы данных\*: > \* В перечне типов MySQL перечислены только некоторые подходящие типы | Имя типа (ключ структуры) | Тип значения 1С | Подходит для типов MySQL | |-|-|-| | BYTES | Строка (путь к файлу), ДвоичныеДанные| TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB | | UINT | Число (целое, без знака) | TINYINT UNSIGNED, SMALLINT UNSIGNED, MEDIUMINT UNSIGNED, INT UNSIGNED, BIGINT UNSIGNED | | INT | Число (целое) | TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT | | FLOAT | Число | FLOAT | | DOUBLE | Число | DOUBLE (REAL, DOUBLE PRECISION) | | DATE | Дата, Строка (дата в формате RFC 3339) | DATE, DATETIME, TIMESTAMP | | TIME | Дата, Строка (дата в формате RFC 3339) | TIME | | TEXT | Строка | CHAR, VARCHAR, TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT, SET | ## Получение двоичных данных Двоичные данные при получении из БД будут представлены как объект (структура) вида `{"BYTES": "Base64 строка"}` и должны быть преобразованы из Base64 вручную ## TLS Библиотека поддерживает работу в режиме TLS. Для его включения необходимо сформировать настройки TLS при помощи функции `ПолучитьНастройкиTls`, и передать их как соответствующий параметр в функцию `ОткрытьСоединение` или одну из функций ORM, поддерживающих данный параметр. Если параметр TLS при вызове этих функций не передан, соединение инициализируется в незащищенном режиме :::tip Настройки Tls могут быть установлены только в момент создания соединения: явного, при использовании функции `ОткрытьСоединение` или неявного, при передаче строки подключения в методы ORM. Передача настроек Tls совместно с передачей уже созданного соединения в параметр Соединение будет проигнорирована :::