Обертка для запросов к другим СУБД

27.11.08

Разработка - Запросы

Поддерживаются: MSSQL, MSAccess, MySQL, PostgreSQL, Firebird, Oracle
Возвращает: объект типа ТаблицаЗначений с результатами

Скачать исходный код

Наименование Файл Версия Размер
ЗапросБД.ert
.1227816197 12,00Kb
242
.1227816197 12,00Kb 242 Скачать бесплатно

Обработка выполняет запрос к внешней базе и возвращает таблицу значений (если запрос не имеет тип "Команда" - параметр списка "ТипЗапроса", см. ниже)

Параметром формы при открытии передается список значений (Далее: список параметров)

Поддерживаемые форматы СУБД (определяются параметром списка "ТипБД"):
MSSQL, MSAccess, MySQL, PostgreSQL, Firebird - через ODBC драйвера соответствующей СУБД (как найти драйвер: в Google запрос вида: "ODBC driver" и тип СУБД)
Oracle - через Oracle Objects for OLE

Запросы должны быть написаны на соответствующем диалекте СУБД (параметр списка: "Запрос")

Для MySQL исполняются предварительные команды для приведения таблицы символов в cp1251. Кроме того для MySQL параметры в тексте запроса в виде {Параметр} предварительно заменяются на значения параметров из списка (параметр списка: "Параметры")

Параметр списка "Поля" позволяет переименовать поля запроса в поля таблицы значений (например - если движок БД не поддерживает русских названий или порой просто удобно для отладки)

Описание прочих параметров списка и какие из них обязательны (для обработки) - смотри в процедуре ПриОткрытии()
При этом необязательный параметр обработки может обязательно требоваться движком БД (например - сервер) - это уже сугубо индивидуально

Некоторые типы данных ODBC не понимаются в 1С - используйте конвертацию типов в запросах (type cast)

Пользуйтесь обработкой разумно - это удобный инструмент, позволяющий легко получить ТЗ в 1С просто задавая запрос БД, но при большом объеме передаваемых данных естественно проигрывает в скорости прямым обращениям к ODBC или OOfO объектам (особенно если сначала анализируется одно поле результата, и при несоответствии условиям - остальные поля строки игнорируются)

(это же описание - внутри текста обработки)

Для вызова я использую следующий код (функция глобального модуля):

//******************************************************************************
// глЗапросБД(Сп)
//
// Параметры:
//  Сп - cписок параметров, см. описание обработки
//
// Возвращаемое значение:
//  ТЗ с результатами запроса
//
// Описание:
//  Выполняет запрос к БД
//
Функция глЗапросБД(Знач Сп) Экспорт
    Если Метаданные.Обработка("ЗапросБД").Выбран()=1 Тогда
        ОткрытьФормуМодально("Обработка.ЗапросБД", Сп);
    Иначе
        Файл=КаталогИБ()+"ExtForms\ЗапросБД.ert";
        ОткрытьФормуМодально("Отчет", Сп, Файл);
    КонецЕсли;

    Возврат Сп;
КонецФункции // глЗапросБД()

// Вызов:
Сп=СоздатьОбъект("СписокЗначений");
Сп.Установить("ТипБД","MSAccess");
Сп.Установить("БазаДанных",ФайлБД);
Сп.Установить("Запрос","select * from table");
//Сп.Установить("Поля",спПоля);
ТЗ=глЗапросБД(Сп);

P.S. Навеяно //infostart.ru/projects/2960/ - решил поделиться своими наработками

См. также

Микро консоль для запросов к MySQL базе из 1С: Предприятие 7.7

Инструментарий разработчика Запросы Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Обработка, позволяющая выполнять запросы к базе, лежащей в MySQL, для 1С:Предприятие 7.7.

10.08.2022    2952    4    crocolo    0    

2

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д.

Запросы Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    37793    Serginio    22    

44

Универсальный способ сравнения таблиц

Универсальные функции Запросы Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

На эту тему уже есть статьи, но этот способ нигде не описан. Хотя я его использую с тех пор, как занимаюсь программированием. Его преимущество в простоте и универсальности: можно применять на 1С, SQL, а также в любом другом языке программирования.

05.07.2015    21714    json    3    

22

Пример получения остатков по складу по запросу по почте из программы 1С 7.7.

Запросы Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Пример получения остатков по складу по запросу по почте из программы 1С 7.7. Для получения остатков необходимо пользователю с любого почтовика (с любого "мыла") отправить текст сообщения GiveMyStockBalance_ForAnalize на почтовый адрес определенный в Константа.СерверПолучения. Программа выдаст остатки (можно переписать функцию для выдачи любых данных) в формате xls на почту указанную в константе Константа.СерверОтправки. Программа может быть полезна в тех организациях где трудно или невозможно осуществить прямой доступ к 1С сотрудников для просмотра необходимых данных. Также можно организовать некий почтамт - запрос для клиентов - при посылке определенного логина клиентом на его почту будет автоматически выслана информация, например, акт сверки с клиентов, или процент выполнения его заказа и т.д.

3 стартмани

25.03.2014    25174    5    protexprotex    3    

5

Реализация условий в прямых запросах к журналу расчета.

Зарплата Запросы Расчет 7.7 1С:Зарплата и кадры 7.7 Абонемент ($m)

Обзор методов реализации условий и функций с условиями в обращениях к журналу расчетов при помощи прямого запроса.

1 стартмани

06.12.2012    14103    nicotin    5    

9

Универсальный отчет - Конструктор запросов для 1С 7.7

Запросы Платформа 1С v7.7 Оперативный учет 7.7 Бухгалтерский учет 7.7 Расчет 7.7 Конфигурации 1cv7 Абонемент ($m)

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

1 стартмани

14.04.2012    33899    303    set2333    16    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AndrewEv 18 28.11.08 09:00 Сейчас в теме
Соединю вместе с тем, что тянет у меня из Excel, найду для OpenOffice - и будет мне счаст'е
+
2. German 413 28.11.08 15:26 Сейчас в теме
скорость никакая .. курите Ei
+
3. kivals 5 02.12.08 01:48 Сейчас в теме
(2) Не понял - где-то есть Enterprise Integrator работающий с 1С 7.7 и базами, отличными от MSSQL?
А про скорость я писал: "Пользуйтесь обработкой разумно ... но при большом объеме передаваемых данных естественно проигрывает в скорости прямым обращениям к ODBC"
+
4. Lexus 27.12.11 16:43 Сейчас в теме
Сообщить("Подробный формат вызова обработки смотрите в описании!");

может я что не так делаю, но у меня в "Описании" пусто :(
+
5. kivals 5 27.12.11 17:18 Сейчас в теме
(4)
Каюсь - осталось от устаревшей версии. Сейчас максимальное описание параметров находится в комментариях ПриОткрытии()
+
6. Lexus 27.12.11 17:32 Сейчас в теме
(5) ладно, разберусь)
+
Оставьте свое сообщение