Самостоятельная доработка модуля.

Тема в разделе '1С:Предприятие 8.2\8.3\8.4 (УФ)', создана пользователем Administrator, 25 фев 2017.

  1. Administrator Active Member

    Наш модуль поставляется как есть с открытым исходным кодом. При наличии у вас программиста 1С, вы можете самостоятельно его доработать, если это необходимо вам.
    Все функции прикомандированы для удобства понимания алгоритма модуля интеграции.
    Внесение доработки в модуль производится на свой страх и риск. Перед доработкой модуля сохраните рабочую копию недоработанного модуля в отдельной папке на вашем ПК.
    Для доработки модуля нашими программистами был разработан специальный инструментарий, позволяющий доработать модуль интеграции под любую задачу (При желании можно даже написать интеграцию под другую CMS)
    Техническая поддержка не распространяется на доработанный самостоятельно функционал.
    Выполнение произвольного запроса в MYSQL. Служит для передачи произвольного запроса на выполнение без ответа. INSERT, UPDATE, CREATE, DELETE ...

    // Процедура выгрузи произвольного запроса
    // используетеся как в пакетном режиме, так и в одиночным.
    Процедура SQL_ПримерСоздатьЗапросНаСайтеСтрока()

    //Подключаемся
    Сайт = СтрокаСоединения();

    //пример создания записи в таблице
    Если Сайт.connect(СтрокаСоеденения) = 1 тогда
    ИмяТаблицы = "PREFIX_TABLE" + "_users"; // имя Таблицы с "PREFIX_TABLE" - не менять, префикс
    Запрос = "('Administrator','admin','mail@mail.ru','b3c3a1c85266188dc5bf30cf159971b4:TD8wntceIehqqcZr88RiCLhA1L6tkOry','Super Administrator','0','1','25','2009-11-20 07:36:47','2012-01-06 09:04:27','','')";
    Таблицы = "`name`,`username`,`email`,`password`,`usertype`,`block`,`sendEmail`,`gid`,`registerDate`,`lastvisitDate`,`activation`,`params`";
    Запрос = "insert into " + ИмяТаблицы + "(" + Таблицы + ") values " + Запрос ;
    Попытка
    Сайт.insert(Запрос); // после выполнения запроса в амдинку joomla можно будет зайти под логином "admin" и паролем "admin"
    Исключение
    Сообщить("Ошибка: Не удалось выполнить запрос");
    Сообщить(СсылкаНаФорумОшибки);
    КонецПопытки;
    КонецЕсли;

    //закрываем сеанс подключения
    Сайт.disconnect();

    КонецПроцедуры


    Передача ТаблицыЗначения для выполнения на MYSQL. Используется когда нужно выполнить запрос INSERT INTO c большим количеством строк. Заполняем ТаблицуЗначений и передаем ее на выполнение.

    // Процедура выгрузи произвольного запроса
    // используетеся как в пакетном режиме, так и в одиночным.
    Процедура SQL_ПримерСоздатьЗапросНаСайтеТаблицаЗначений()

    //Подключаемся
    Сайт = СтрокаСоединения();

    //пример создания записи в таблице
    Если Сайт.connect(СтрокаСоеденения) = 1 тогда

    ТаблицаВыгрузка = новый ТаблицаЗначений;
    ТаблицаВыгрузка.Колонки.Добавить("DATA");

    ИмяТаблицы = "jos_users";
    Таблицы = "`name`,`username`,`email`,`password`,`usertype`,`block`,`sendEmail`,`gid`,`registerDate`,`lastvisitDate`,`activation`,`params`";
    Запрос = "insert into " + ИмяТаблицы + "(" + Таблицы + ") values " + Запрос ;

    НоваяСтрока = ТаблицаВыгрузка.Добавить();
    НоваяСтрока.DATA = "('Administrator','admin1','mail@mail.ru','b3c3a1c85266188dc5bf30cf159971b4:TD8wntceIehqqcZr88RiCLhA1L6tkOry','Super Administrator','0','1','25','2009-11-20 07:36:47','2012-01-06 09:04:27','','')";

    НоваяСтрока = ТаблицаВыгрузка.Добавить();
    НоваяСтрока.DATA = "('Administrator','admin2','mail@mail.ru','b3c3a1c85266188dc5bf30cf159971b4:TD8wntceIehqqcZr88RiCLhA1L6tkOry','Super Administrator','0','1','25','2009-11-20 07:36:47','2012-01-06 09:04:27','','')";

    НоваяСтрока = ТаблицаВыгрузка.Добавить();
    НоваяСтрока.DATA = "('Administrator','admin3','mail@mail.ru','b3c3a1c85266188dc5bf30cf159971b4:TD8wntceIehqqcZr88RiCLhA1L6tkOry','Super Administrator','0','1','25','2009-11-20 07:36:47','2012-01-06 09:04:27','','')";

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

    //закрываем сеанс подключения
    Сайт.disconnect();

    КонецПроцедуры


    Получение произвольной таблицы в формате ТаблицыЗначений в 1С. SELECT * FROM ВашаТаблицаНаСайте.

    // Процедура возврат результата запроса в 1С
    //
    Процедура SQL_ПримерПолучаемДанныеССайте()

    // Подключаемся
    Сайт = СтрокаСоединения();

    // пример создания записи в таблице
    Если Сайт.connect(СтрокаСоеденения) = 1 тогда

    ИмяТаблицы = "PREFIX_TABLE" + "_users"; // имя Таблицы с "PREFIX_TABLE" - не менять, префикс

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

    Попытка
    Сайт.get(ИмяТаблицы, ТаблицаСРезультатом);
    Исключение
    Сообщить("Ошибка: Не удалось получить информацию с сайта.");
    Сообщить(СсылкаНаФорумОшибки);
    КонецПопытки;

    Если ТаблицаСРезультатом.Количество() = 0 тогда
    Сообщить("На сайте нет результата вашего запроса");
    Возврат;
    Иначе

    Для Каждого Запись из ТаблицаСРезультатом Цикл

    ИмяПользователя = Запись.name;
    ИмяЮзера = Запись.username;
    EmailПользователя = Запись.email;
    ПарольПользователя = Запись.password;
    ТипПользователя = Запись.usertype;

    Сообщить("Имя пользователя:" + ИмяПользователя + ",Имя Юзера:" + ИмяЮзера + ",Email Пользователя:" + EmailПользователя + ",Пароль Пользователя(Защифрованный):" + ПарольПользователя + ",Тип Пользователя:" + ТипПользователя);

    Конеццикла;
    КонецЕсли;
    КонецЕсли;

    // закрываем сеанс подключения
    Сайт.disconnect();

    КонецПроцедуры


    Обновление большого количества значений через ТаблицуЗначений. Используется для обновление больших массивов данных из 1С. Перед выгрузкой нужно подготовить ТаблицуЗначений определенным видом.




    // Процедура обновление записей из 1с
    //
    Процедура SQL_ПримерОбновлениеЗаписейНаСайте()

    ИмяТаблицы = "PREFIX_TABLE" + "_categories"; // имя Таблицы с "PREFIX_TABLE" - не менять, префикс

    //Создаем таблицу значений для групп
    ТаблицаОбновления = новый ТаблицаЗначений;
    ТаблицаОбновления.Колонки.Добавить("id");
    ТаблицаОбновления.Колонки.Добавить("description");
    ТаблицаОбновления.Колонки.Добавить("access");
    ТаблицаОбновления.Колонки.Добавить("count");
    ТаблицаОбновления.Колонки.Добавить("params");

    // Первая строка
    НоваяСтрока = ТаблицаОбновления.Добавить();
    НоваяСтрока.id = "1";
    НоваяСтрока.description = "1с";
    НоваяСтрока.access = "11";
    НоваяСтрока.count = "22";
    НоваяСтрока.params = "55";

    // Вторая строка
    НоваяСтрока = ТаблицаОбновления.Добавить();
    НоваяСтрока.id = "2";
    НоваяСтрока.description = "1с";
    НоваяСтрока.access = "22";
    НоваяСтрока.count = "33";
    НоваяСтрока.params = "66";

    // Третья строка
    НоваяСтрока = ТаблицаОбновления.Добавить();
    НоваяСтрока.id = "3";
    НоваяСтрока.description = "1с";
    НоваяСтрока.access = "33";
    НоваяСтрока.count = "44";
    НоваяСтрока.params = "77";

    //Подключаемся
    Сайт = СтрокаСоединения();

    //пример создания записи в таблице
    Если Сайт.connect(СтрокаСоеденения) = 1 тогда

    // получаем таблицу значений с сайта
    Попытка
    Сайт.update(ИмяТаблицы, ТаблицаОбновления);
    Исключение
    Сообщить("Ошибка: Не удалось выполнить запрос");
    Сообщить(СсылкаНаФорумОшибки);
    КонецПопытки;

    КонецЕсли;

    //закрываем сеанс подключения
    Сайт.disconnect();

    КонецПроцедуры

Поделиться этой страницей