MySQLConnect

27.03.13

Интеграция - Внешние источники данных

Обработка предназначена для работы с MySQL.

Скачать файл

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

Наименование По подписке [?] Купить один файл
MySQLConnect
.epf 15,62Kb
85
85 Скачать (1 SM) Купить за 1 850 руб.

Обработка предназначена для лёгкой и удобной работы с MySQL.

обновление: 27.03.2013

  1. Добавлена функция ОтправитьДанныеПоСтруктуреСДанными()
    В случае, когда нужно передать сразу много таблиц, заполняется структура
    ключ - имя таблицы
    значение - сама таблица и передается в качестве параметра в функцию.
  2. Для функции ОтправитьДанныеПоПодготовленнойТаблице() появился не обязательный параметр ИгнорироватьДубли.
    Данный параметр позволяет подавлять ошибку вставки не уникальных строк (т.е. если в приемнике уже есть такая строка, то строка будет просто пропущена). Уникальность проверяется по ключевым полям (конструкция IGNORE).

обновлено: 21.12.2012

Существенно увеличена скорость получения больших таблиц с помощью функции ПолучитьТаблицуРезультатПоЗапросу()


обновлено: 12.12.2012

Исправлена мелкая ошибка:

Функция

__ОбновитьТаблицуКлючевыъПолей()  - ошибочно отнесена к экпортным.

ОбновитьТаблицуКлючевыхПолей() - исправлено имя функции.

 

обновлено: 10.12.2012

Исправлено:

ошибка исполнения, если вызов функции работы с БД осуществлялся до вызова функции УстановитьПараметрыПодключения()

Добавлено:

1. СоздатьБД(ИмяБД)

2. ТестПодключения()

3. УдалитьБД(ИмяБД)



Возможности:

  1. Получение данных
    • получить таблицу значений по запросу типа «select»
  2. Отправка данных таблицы значений
    • отправка данных в таблицу MySQL по данным переданной таблицы значений
  3. Удаление данных
    • удаление данных в таблице MySQL по данным переданной таблицы значений
  4. Вспомогательные возможности
    • получить список баз сервера MySQL
    • получить список таблиц базы MySQL
    • получить список таблиц базы MySQL с размером таблицы и количеством строк
    • получить структуру, содержащую все (или выборочно) таблицы базы MySQL
  5. Выполнение произвольного запроса

Для подключения в системе должен быть установлен ODBC драйвер.

Пример 1:

Дано:
Ip сервера = 10.0.0.1
База = mysql
Пользователь = root
Пароль = pass
Задача: Получить данные таблицы ‘proc’

обMySQLConnect = Обработки.MySQLConnect.Создать();

ПараметрыПодключения = новый Структура;
ПараметрыПодключения.Вставить("Сервер"      , "10.0.0.1");
ПараметрыПодключения.Вставить("Пользователь", "root");
ПараметрыПодключения.Вставить("Пароль"      , "pass");
ПараметрыПодключения.Вставить("База"        , "mysql");
	
обMySQLConnect.УстановитьПараметрыПодключения(ПараметрыПодключения);	

ТаблицаРезультат = новый таблицаЗначений;

Запрос = "«SELECT * FROM proc»";

Если обMySQLConnect. ПолучитьТаблицуРезультатПоЗапросу(Запрос, ТаблицаРезультат) Тогда 	
	// ТаблицаРезультат содержит нужные данные - обрабатываем 	
Иначе 	
	
Сообщить(обMySQLConnect. ПолучитьОписаниеОшибки ()); КонецЕсли;


Пример 2: Необходимо передать данные о ценах в таблицу "ShopPrices" на MySQL сервер.

Таблица  ShopPrices содержит следующие поля: Shop_ip, Nom_id, Price.


Функция ПолучитьДанныеПоЦенам()
    
    ДанныеДляОтправки = новый ТаблицаЗначений;
    ДанныеДляОтправки.Колонки.Добавить("Shop_ip");
    ДанныеДляОтправки.Колонки.Добавить("Nom_id");
    ДанныеДляОтправки.Колонки.Добавить("Price");

    НСтрока = ДанныеДляОтправки.Добавить();
    НСтрока.Shop_ip = "1002";
    НСтрока.Nom_id  = "f0013";
    НСтрока.Price      = "1500";
    НСтрока = ДанныеДляОтправки.Добавить();
    НСтрока.Shop_ip = "1002";
    НСтрока.Nom_id  = "f0014";
    НСтрока.Price      = "950";    возврат ДанныеДляОтправки;
    
КонецФункции 

Процедура ОтправитьДанные()
    
    ИмяТаблицы             = "ShopPrices";
    ДанныеДляОтправки    = ПолучитьДанныеПоЦенам();
        
    обMySQLConnect = Обработки.MySQLConnect.Создать();

    ПараметрыПодключения = новый Структура;
    ПараметрыПодключения.Вставить("Сервер"       , "10.0.0.1");
    ПараметрыПодключения.Вставить("Пользователь", "root");
    ПараметрыПодключения.Вставить("Пароль"       , "pass");
    ПараметрыПодключения.Вставить("База"         , "mysql");
        
    обMySQLConnect.УстановитьПараметрыПодключения(ПараметрыПодключения);    

    Если Не обMySQLConnect.ОтправитьДанныеПоПодготовленнойТаблице(ДанныеОтправки, ИмяТаблицы) Тогда     
        
        Сообщить(обMySQLConnect. ПолучитьОписаниеОшибки ());
        
    КонецЕсли;
    
КонецПроцедуры; 

Функция "ОтправитьДанныеПоПодготовленнойТаблице" автоматически разбивает данные на порции по 1000 строк (параметр настраивается).

 

Более подробную информацию можно посмотреть в комментариях кода обработки.

См. также

SALE! 15%

Внешние источники данных Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    20888    20    49    

38

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

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13805    13    48    

25

Внешние источники данных Зарплата Бюджетный учет Программист Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

48000 руб.

24.04.2017    51190    101    165    

89

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    10861    13    8    

15

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    25159    22    1    

25

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17879    19    22    

17
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. adhocprog 1142 05.12.12 12:51 Сейчас в теме
Этот код можно использовать для чтения баз MySQL на хостинге?
2. Ifboop_Figure 63 05.12.12 13:21 Сейчас в теме
Я использую для работы с локальным MySQL, но никакой особой разницы нет.

Если Вам понадобиться для подключения указать какую-нибудь хитрую строку подключения, то никаких проблем.

Вы можете передать в функцию УстановитьПараметрыПодключения() непосредственно строку подключения (вторым параметром, первый в таком случае указывать не обязательно).

Обращаю Ваше внимание, что колонки ТЗ типизированные (строка(1024)) т.е. полученную таблицу можно использовать в качестве параметра запроса.
3. asved.ru 36 12.12.12 06:22 Сейчас в теме
Полезная штука, применял подобное в процессе прикрутки 7.7 к asterisk.
4. Ifboop_Figure 63 12.12.12 07:45 Сейчас в теме
Я использую для работы с кассовым сервером УКМ4.
5. al_zzz 302 12.12.12 07:57 Сейчас в теме
Я подобную обработку делал для 7.7 и joomshoping: 1с77-1c8x.ru. А недавно перешел на 8.1 и сейчас как раз задача стоит по настройке обмена с сайтом. Вовремя Ваша разработка здесь появилась! Спасибо!
6. Ifboop_Figure 63 12.12.12 08:17 Сейчас в теме
Пользуйтесь. Будут вопросы/пожелания готов помочь :)
8. PrinzOfMunchen 84 29.06.13 20:36 Сейчас в теме
(6) aszoriy, а не пробовали под Linux?
9. Ifboop_Figure 63 29.06.13 23:08 Сейчас в теме
(8) неа, но работать под linux без допила (или перепила) не будет. Это факт.
7. MegaMouse 372 12.12.12 14:08 Сейчас в теме
Тема интересная, но пишу тут только для подписки на тему . Сорри.
10. plastilin 8 16.02.14 17:15 Сейчас в теме
11. coollerinc 196 24.10.14 16:33 Сейчас в теме
Пригодилось, когда стали внедрять УКМ 4
12. Ifboop_Figure 63 24.10.14 17:04 Сейчас в теме
(11) coollerinc, выражаю свое глубочайшее соболезнование!
Компании с таким скотским отношением к клиентам как "Сервис+" с ее "УКМ4" стоит еще поискать.

огромное количество ошибок, крайне низкое знание своего продукта тех. поддержкой, релизы выпускают так, что вообще ничего не работает.

Наше желание в матрице скидок сравнивать % скидки (а не сумму вычисленную, зависящую от порядка применения скидок при последовательном применении) назвали "порочным". Так и написали нам (!) "Ваше желание порочно и мы не будем его реализовывать".

Наше желание получить скидку вида "Номер карты - %скидки" - по их словам "взорвало им мозг"

За доработку, которая бы предупреждала продавца о том, что он пытается применить 100% скидку запросили 200 т.р. - и еще по 100 т.р. за перенос этой доработки в каждый следующий релиз.

Если чек которым продается подарочная карта АННУЛИРОВАТЬ, то карта все равно АКТИВИРУЕТСЯ т.е. ею можно расплатиться. Что на это тех. поддержка ответила? "Не обращайте внимания, у нас таких ошибок много"

и много много много чего еще. Один сплошной негатив.
13. fillipok 14 14.12.14 21:51 Сейчас в теме
(12) aszoriy, спасибо за обработку. А можно ли сделать обновление данных ? Добавление и удаление нашел. Спасибо.
14. Ifboop_Figure 63 15.12.14 07:47 Сейчас в теме
(13) fillipok, обновление данных, к сожалению, не реализовано (в прямом виде).

Сейчас есть два варианта обновления данных:
1. Вы можете выполнять обновление путем удаление данных (УдалитьДанныеПоПодготовленнойТаблице), а потом вставки новых (ОтправитьДанныеПоПодготовленнойТаблице). Не забываем про то, что таблицы должны в таком случае содержать все данные. Так же, такой подход не очень хорош если таблицы большие.

2. Вы можете сами собрать запрос типа "UPDATE" и выполнить его с помощью функции "ВыполнитьSQLЗапрос"
т.е. если вы знаете какое поле (поля) в каких таблицах (и по каким условиям) нужно обновить задача решается легко.

15. fillipok 14 15.12.14 09:32 Сейчас в теме
(14) aszoriy, понял, спасибо, попробую почитать, как это делается в MySQL по UPDATE.
Посмотрел синтаксис запроса, он оказался очень простой, так что можно и самому сделать ). Спасибо за наводку.
Оставьте свое сообщение