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

27.11.08

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

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

Скачать файл

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

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

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

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

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

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

09.03.2016    39053    Serginio    22    

44

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

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

05.07.2015    22335    json    3    

22

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

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

3 стартмани

25.03.2014    25543    5    protexprotex    3    

5

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

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

1 стартмани

06.12.2012    14370    nicotin    5    

9

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

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

1 стартмани

14.04.2012    34431    309    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 Сейчас в теме
Оставьте свое сообщение