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

27.11.08

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

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

Скачать файл

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

Наименование Бесплатно
ЗапросБД.ert
.1227816197 12,00Kb
244
244 Скачать бесплатно

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

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

Поддерживаемые форматы СУБД (определяются параметром списка "ТипБД"):
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/ - решил поделиться своими наработками

См. также

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

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

10.08.2022    3226    4    crocolo    0    

3

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

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

09.03.2016    39492    Serginio    22    

44

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

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

05.07.2015    22561    json    3    

22

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

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

3 стартмани

25.03.2014    25669    5    protexprotex    3    

5

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

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

1 стартмани

06.12.2012    14488    nicotin    5    

9

Запросы Программист Платформа 1С v7.7 1C77 Россия Абонемент ($m)

Собственно, надоело одно и тоже делать для каждого отчета.

1 стартмани

24.04.2012    15147    22    newbas    3    

5

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

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

1 стартмани

14.04.2012    34627    309    set2333    16    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. AndrewEv 18 28.11.08 09:00 Сейчас в теме
Соединю вместе с тем, что тянет у меня из Excel, найду для OpenOffice - и будет мне счаст'е
2. German 414 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 Сейчас в теме
Оставьте свое сообщение