В общем хочу отдать на суд вольным зрителям набор КОП "ПрямойЗапрос" с документацией к нему.
Что он может:
- выполнение запроса на языке подобном 1Cv8
- выполнение запроса на любом формате БД (DBF - SQLite, SQL - ODBCRecordset)
- наличие виртуальных таблиц
- выполнение параметризированных запросов
Что он не умеет:
- не отличает возможные реквизиты объектов метаданных совпадающих с предопределенными реквизитами этих объектов (например: Код, Наименование в справочнике и т.п.)
К классу приложена подробная документация.
Выражаю свою благодарность товарищам:
- тов. berezdetsky за класс AccountsRecordset
- тов. Steban шаблон параметра - это круто
- тов. JohnyDeath за пример ВТ ПодчиненныеДокументы и прочее
- тов. Orefkov за 1sqlite
- тов. Dmitro за практические советы
- всем разработчикам 1С++ за 1С++
- ну и всем остальным кто словом и делом помогал.
Пример использования:
ТекстЗапроса = "ВЫБРАТЬ
| Рег.ТекущийДокумент КАК [Документ $Документ]
| ,Рег.ВидДокумента КАК [Документ_вид $ВидДокумента]
| ,Рег.Склад КАК [Склад $Справочник.Склады]
| ,Рег.Номенклатура КАК [Номенклатура $Справочник.Номенклатура]
| ,Рег.КоличествоНачальныйОстаток КАК ОстатокНач
| ,Рег.КоличествоОборот КАК Оборот
| ,Рег.КоличествоПриход КАК Приход
| ,Рег.КоличествоРасход КАК Расход
| ,Рег.КоличествоКонечныйОстаток КАК ОстатокКон
|ИЗ $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачПериода
| ,:КонПериода
| ,Документ
| ,ДвиженияИГраницыПериода
| ,
| ,(Склад,Номенклатура)
| ,(Количество)) КАК Рег";
Запрос = СоздатьОбъект("ПрямойЗапрос");
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьТекстовыйПараметр("НачПериода",НачГода(РабочаяДата()));
Запрос.УстановитьТекстовыйПараметр("КонПериода",РабочаяДата());
Запрос.РежимОтладки = 1;
ИТЗРезультат = Запрос.Выполнить();
ИТЗ.ВыбратьСтроку();
Официальная версия: 1.8.3 от 30.12.11 г.
Более полная информация на форуме 1С++.
P.S. данная разработка распространяется бесплатно как для частного, так и для коммерческого использования. Поддержка осуществляется при наличии свободного времени. Возможно сотрудничество на предмет внедрения данной разработки в конкретные конфигурации.