MySQLConnect

27.03.13

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

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

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

Наименование Файл Версия Размер
MySQLConnect
.epf 15,62Kb
85
.epf 15,62Kb 85 Скачать

Обработка предназначена для лёгкой и удобной работы с 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 строк (параметр настраивается).

 

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

См. также

Перенос данных из Парус 8 в ЗГУ 3

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

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

84000 руб.

19.08.2020    22447    19    1    

22

Перенос данных из Парус 10 в ЗГУ ред.3

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

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

60000 руб.

05.10.2022    9206    9    8    

10

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

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

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15729    10    17    

11

Перенос данных из Парус 7.хх в ЗГУ ред.3

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

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

24000 руб.

24.04.2017    48694    97    163    

86

Перенос начальных остатков из Парус 7.71 в БГУ

Внешние источники данных Взаиморасчеты Учет ОС и НМА Логистика, склад и ТМЦ Бюджетный учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Перенос словарей и начальных остатков из ПП Парус-Бухгалтерия Бюджет 7.71 в 1Сv8 БГУ2. Заполнение словарей и документов по вводу начальных остатков. Не требуется установка ПП Парус7. Возможна дозагрузка. Позволит автоматически и наиболее полно ввести данные в программу для начала работы. 

15600 руб.

08.12.2011    81558    128    123    

147
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. adhocprog 1139 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 309 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 83 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 185 24.10.14 16:33 Сейчас в теме
Пригодилось, когда стали внедрять УКМ 4
12. Ifboop_Figure 63 24.10.14 17:04 Сейчас в теме
(11) coollerinc, выражаю свое глубочайшее соболезнование!
Компании с таким скотским отношением к клиентам как "Сервис+" с ее "УКМ4" стоит еще поискать.

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

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

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

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

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

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

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

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

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