Класс "ПрямойЗапрос"

18.01.12

Разработка - Инструментарий разработчика

Класс для выполнения запросов к базе данных 1Сv7 (DBF, SQL) с синтаксисом максимально приближенным к синтаксису 1Сv8.

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

Наименование Файл Версия Размер
Документация и классы v1.8.3 от 30.12.11г.
.rar 231,85Kb
353
.rar 231,85Kb 353 Скачать

В общем хочу отдать на суд вольным зрителям набор КОП "ПрямойЗапрос" с документацией к нему.
Что он может:
- выполнение запроса на языке подобном 1Cv8
- выполнение запроса на любом формате БД (DBF - SQLite, SQL - ODBCRecordset)
- наличие виртуальных таблиц
- выполнение параметризированных запросов

Что он не умеет:
- не отличает возможные реквизиты объектов метаданных совпадающих с предопределенными реквизитами этих объектов (например: Код, Наименование в справочнике и т.п.)

К классу приложена подробная документация.

Выражаю свою благодарность товарищам:

- тов. berezdetsky за класс AccountsRecordset
- тов. Steban шаблон параметра - это круто
- тов. JohnyDeath за пример ВТ ПодчиненныеДокументы и прочее
- тов. Orefkov за 1sqlite
- тов. Dmitro за практические советы
- всем разработчикам 1С++ за 1С++
- ну и всем остальным кто словом и делом помогал
.

Пример использования:

ТекстЗапроса = "ВЫБРАТЬ
|    Рег.ТекущийДокумент КАК [Документ $Документ]
|    ,Рег.ВидДокумента КАК [Документ_вид $ВидДокумента]
|    ,Рег.Склад КАК [Склад $Справочник.Склады]
|    ,Рег.Номенклатура КАК [Номенклатура $Справочник.Номенклатура]
|    ,Рег.КоличествоНачальныйОстаток КАК ОстатокНач
|    ,Рег.КоличествоОборот КАК Оборот
|    ,Рег.КоличествоПриход КАК Приход
|    ,Рег.КоличествоРасход КАК Расход
|    ,Рег.КоличествоКонечныйОстаток КАК ОстатокКон

|ИЗ $РегистрОстаткиОбороты.ОстаткиТМЦ(:НачПериода
|        ,:КонПериода
|        ,Документ
|        ,ДвиженияИГраницыПериода
|        ,

|        ,(Склад,Номенклатура)
|        ,(Количество)) КАК Рег
";

Запрос = СоздатьОбъект("ПрямойЗапрос");
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьТекстовыйПараметр("
НачПериода",НачГода(РабочаяДата()));
Запрос.УстановитьТекстовыйПараметр("КонПериода",РабочаяДата());
Запрос.РежимОтладки = 1;

ИТЗРезультат = Запрос.Выполнить();
ИТЗ.ВыбратьСтроку();

Официальная версия: 1.8.3 от 30.12.11 г.

Более полная информация на форуме 1С++.

P.S. данная разработка распространяется бесплатно как для частного, так и для коммерческого использования. Поддержка осуществляется при наличии свободного времени. Возможно сотрудничество на предмет внедрения данной разработки в конкретные конфигурации.

См. также

Консоль запросов

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

Консоль запросов к базе SQL, не требующая внешних компонент

10 стартмани

29.04.2015    21633    54    Gvozdod    8    

14

StartManager 1.4 - Развитие альтернативного стартера

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

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    165969    1868    Alexoniq    1596    

496

Tray Informer

Инструментарий разработчика Платформа 1С v7.7 Платформа 1С v8.3 Россия Абонемент ($m)

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    32914    61    O-Planet    78    

49

Изменение структуры баз 1С 7.7 без долгой реструктуризации. Часть 1. Справочники

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

На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема. Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы. Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме. Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.

1 стартмани

13.08.2013    21253    Reptile    5    

35

v7.7 1CDialogControls: Инструмент в помощь разработчику на 7.7.

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

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    18060    35    MarSeN    14    

16

[Разработчику] Любая таблица значений в OLAP

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

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    36128    51    venger    7    

23

Библиотека кода 1С 7.7 (накопленная за 8 лет)

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

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    35005    248    adhocprog    51    

70
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. JohnyDeath 301 03.07.09 18:11 Сейчас в теме
Одна документация чего стоит!
Завидую таким людям!
+
2. Ёпрст 1063 03.07.09 18:40 Сейчас в теме
Офигеть!, на такое описалово, у меня бы месяц, не меньше ушло бы... а тут еще и работать надо..
:)
+
3. CheBurator 3119 03.07.09 18:46 Сейчас в теме
Да, дока приличная... но использовать это все я бы побоялся, автор и сам пишет - "возможны ошибки"... работа, видимо, проделана большая - но в чем смысл тогда при потенциальном наличии ошибок?
+
4. Ёпрст 1063 03.07.09 18:49 Сейчас в теме
(3) Ошибки со временем исправятся, а вот полученный при работе с данным классом опыт - это бесценно..!
+
5. vandalsvq 1545 04.07.09 19:25 Сейчас в теме
(3) На счет ошибок могу сказать следующее. Это на самом деле вторая версия. Первая была полностью переписана и в виду этого я и пишу "возможны ошибки". Хотя, на текущий момент из того что я использовал ошибок не было обнаружено.
+
6. Ish_2 1104 04.07.09 21:05 Сейчас в теме
От Випа недавно первый раз услышал про проект 1с++.
Теперь первый раз увидел пример создания класса в 1с++.
Конечно, здорово !
+
11. vip 05.07.09 11:57 Сейчас в теме
(6) Если vip'a поменьше банить будете, много чего еще услышишь (увидишь).
+
12. Ish_2 1104 05.07.09 12:13 Сейчас в теме
(11) Если VIP -жизненный статус , то бан даже полезен.
Подталкивает к размышлениям.
+
13. vip 05.07.09 12:20 Сейчас в теме
(12) Подталкивает справедливый.
Последний подтолкнул к совсем другим размышлениям.
+
14. Ish_2 1104 05.07.09 12:24 Сейчас в теме
(13) Подталкивает любой.
Совсем другие размышления и имелись ввиду.
+
25. rasswet 82 21.07.09 14:11 Сейчас в теме
Запрос = СоздатьОбъект("ПрямойЗапрос");
{F:\TEST\ПРЯМОЙ_ЗАПРОС.ERT(11)}: Неудачная попытка создания объекта (ПрямойЗапрос)
подскажите необходимые условия для запуска. Пытаюсь демо-пример реализовать.
Компоненту загружаю. а дальше? или ссылочку на обработку с примером. я копировал из Вашей шапки код.
2.0.3.4 1cp++ и пробовал 3.01.22
Хочется с этим всем разобраться..
+
7. vandalsvq 1545 05.07.09 01:23 Сейчас в теме
Добавлена новая версия КОП и обновленная документация.
Готов озвучить часть плана по развитию класса, правда без сроков:
- доработка документации по индексам реализованным в таблицах 1С
- доработка документации по инструкциям языка запросов
- доработка ВТ по бухгалтерским таблицам
- реализация ВТ по регистрам
- реализация ВТ СрезПервых
- реализация различных функций и инструкций
По пути посмотрим что еще будет.
+
8. acsent 1200 05.07.09 02:37 Сейчас в теме
В чем отличие от обычного запроса через 1С++?
+
9. vandalsvq 1545 05.07.09 09:08 Сейчас в теме
Отличий много и не очень одновременно :)
1. Источники данных связанные с таблицами 1С указываются без символа $. Например: Справочник.Контрагенты, Документ.Выписка, ДокументСтроки.ПоступлениеМатериалов
2. Возможность поименования таблиц не имеющих метаимен. Например: в тексте запроса можно писать "ЖурналДокументов" вместо _1sjourn, или "Проводки" вместо _1sentry.
3. Можно не использовать конструкцию $ОбщийРеквизит. А вместо $ФлагРегистра необходимо писать Регистр<ИдентификаторРегистра>. Например: $Жур.Комментарий вместо Жур.$ОбщийРеквизит.Комментарий.
4. Внутренние идентификаторы подставляются самостоятельно классом. Более того их необходимо объявлять не через "$", а через ":". Так же для DBF формата БД всегда подставляется 36-тиричное представление, а для SQL (как правило) 10-чное, + если указать модификатор после идентификатора то 36-тиричное. Т.е. конструкции вроде ВидСправочника36 нет, вместо нее :ВидСправочника.ОсновныеСредства~.
5. Наличие ВТ $ПодчиненныеДокументы, $СрезПоследних
6. Урезанные параметры у вирт. значения $ПоследнееЗначение
7. $ПоследнееЗначение как и $Константа возвращают подготовленные значенияю. Т.е. для числа это Numeric(n,m), для даты это DateTime или формат ГГГГММДД, для прочих - CHAR(n) длинной в зависимости от реквизита. (может 1С++ также делает я не помню)
8. Модификаторы текстовых параметров пользователя слегка отличаются от 1С++
Ну кажется все что вспомнил.
+
10. JohnyDeath 301 05.07.09 11:18 Сейчас в теме
+(9) ты главное забыл сказать. Теперь можно не думать о формате БД, в которой работаешь ;)
vip; +1
15. vandalsvq 1545 05.07.09 13:44 Сейчас в теме
(10) ну да... спасибо что напомнил :)
Кстати по просьбе Donat-а ВТ по регистрам будет аккурат после документации по индексам и инструкциям языка (те которые не описаны до конца).
+
16. Ёпрст 1063 05.07.09 16:14 Сейчас в теме
(15)
Интересно, сколько времени уходит на документацию ?...Так, для справки.
+
95. succub1_5 89 12.11.15 17:00 Сейчас в теме
Здравствуйте, создал примерно такой же запрос:
Запрос = СоздатьОбъект("ODBCRecordset");    
    ТекстЗапроса = "
    |SELECT
    |    CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 4111 THEN
    |        '         Отчет кассовой смены №'
    |    ELSE
    |        CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 239 THEN
    |            '         Перемещение №'
    |        ELSE
    |            CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 434 THEN
    |                '         Приходная накладная №'
    |            ELSE
    |                CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 297 THEN
    |                    '         Списание №'
    |                ELSE
    |                    CASE WHEN РегистрОстаткиТоваров.ВидДокумента = 4093 THEN
    |                        '         Оприходование излишков №'
    |                    ELSE
    |                        '         ' + CAST(РегистрОстаткиТоваров.ВидДокумента AS varchar(9))
    |                    END
    |                END
    |            END
    |        END
    |    END + RTRIM(Журнал.DOCNO) + ' от ' + SUBSTRING(РегистрОстаткиТоваров.ПозицияДокумента, 7, 2) + '.' + SUBSTRING(РегистрОстаткиТоваров.ПозицияДокумента, 5, 2) + '.' + SUBSTRING(РегистрОстаткиТоваров.ПозицияДокумента, 3, 2) AS ВидДокумента,
    |    РегистрОстаткиТоваров.ОстатокТовараНачальныйОстаток,
    |    РегистрОстаткиТоваров.ОстатокТовараПриход,
    |    РегистрОстаткиТоваров.ОстатокТовараРасход,
    |    РегистрОстаткиТоваров.ОстатокТовараКонечныйОстаток,
    |    '4!' + CAST(РегистрОстаткиТоваров.ВидДокумента AS varchar(9)) + '!' + RIGHT(РегистрОстаткиТоваров.ПозицияДокумента, 9) 
    |FROM                                
    |    $РегистрОстаткиОбороты.ОстаткиТоваров(:НачДата, :КонДата~, Документ, Движения, , Фирма = :Фирма AND Склад = :Склад AND Товар = :Расшифровка, Товар, ОстатокТовара) AS РегистрОстаткиТоваров
    |LEFT JOIN
    |    _1SJOURN AS Журнал
    |    ON Журнал.IDDOC = RIGHT(РегистрОстаткиТоваров.ПозицияДокумента, 9)
    |ORDER BY
    |    LEFT(РегистрОстаткиТоваров.ПозицияДокумента, 8)
    |";
    
    // параметры запроса
    НачДата = ДатаНач;
    КонДата = ДатаКон;
    СкладИД = "     J   ";
    Расшифровка = "  1DTL   ";
    Запрос.УстановитьТекстовыйПараметр("НачДата", НачДата);
    Запрос.УстановитьТекстовыйПараметр("КонДата", КонДата);
    Запрос.УстановитьТекстовыйПараметр("Фирма", "     0   "); // пустая фирма
    Запрос.УстановитьТекстовыйПараметр("Склад", СкладИД);
    Запрос.УстановитьТекстовыйПараметр("Расшифровка", Расшифровка);
    
    Запрос.Отладка(1);  
    
    Результат = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);   
    Сообщить(Результат.КоличествоСтрок());
    
    Если Результат.КоличествоСтрок() > 0 Тогда            
        Результат.ВыбратьСтроки();
        Пока Результат.ПолучитьСтроку() = 1 Цикл
            Сообщить("" + Результат.ВидДокумента + " - " + Результат.ОстатокТовараНачальныйОстаток + " " + Результат.ОстатокТовараПриход + " " + Результат.ОстатокТовараРасход + " " + Результат.ОстатокТовараКонечныйОстаток);    
        КонецЦикла;
    КонецЕсли;
Показать

Удаленное подключение, с драйверами SQL SERVER все настроено, но почему под Win 7 и 2003 работает без проблем, а под XP выдает ошибку: Meta name parser error: это метаимя разрешить невозможно "$РегистрОстаткиОбороты.ОстаткиТоваров"
+
17. vandalsvq 1545 05.07.09 16:44 Сейчас в теме
По разному. Но в среднем на документирование уходит около 20-30% времени от времени разработки. Т.е. если я пишу КОП месяц то документирую обычно около недели. Например у меня есть разработка на которую документация составлена на 30%, а уже 108 страниц текста. Думаю что на данный КОП будет в районе 100 страниц в итоге.
+
18. Ёпрст 1063 05.07.09 16:57 Сейчас в теме
(17) Круто... мне каменты то вломы в модуле постить... а об достойном описаове... эх, не дано :(
+
19. JohnyDeath 301 05.07.09 18:49 Сейчас в теме
(18) такая же беда. Вот сижу и молча завидую.
У меня на доку уходит больше времени чем на разработку и реализацию. Может потому что это слишком муторно и нудно?
+
20. vandalsvq 1545 06.07.09 10:25 Сейчас в теме
Вышло обновление 1.01.003.
Доработана документация и исправлены ошибки выявленные мною.

Особенно прошу обратить внимание на советы программистам написанные в документации. Надеюсь они помогут избежать ошибок и вопросов.
+
21. vandalsvq 1545 14.07.09 14:47 Сейчас в теме
Небольшие новости с фронта. Закончена разработка ВТ РегистрОстатки, РегистрОбороты, РегистрОстаткиОбороты. Осталось доработать документацию и дотестировать. Сегодня вечером будет выложено обновление.
Тестеры добровольцы приветствуются.
+
22. vandalsvq 1545 14.07.09 15:46 Сейчас в теме
Ну собственно вот и обновление. Сообщаю на период с 15 по 19 меня не будет в сети, поэтому если не буду отвечать не обессудьте. Но в пн как выйду разберусь
+
23. tok 16.07.09 19:04 Сейчас в теме
Молодец, что еще можно сказать. Вот это дело! Чисто и красиво.
Когда-то хотел нечто подобное попытаться сделать. Очень рад за Ваши труды!
обожаю все, что связанное с 1c++. Обязательно посмотрю.



+
24. vandalsvq 1545 19.07.09 00:35 Сейчас в теме
Вернулся чуть раньше.... ни уж то все всё проверили? :) Комментариев то только один добавился и тот положительный :)
+
26. vandalsvq 1545 21.07.09 19:32 Сейчас в теме
Значит ВК 1С++ ты загрузил?
Тогда необходимо подключить классы, для этого почитай тут
http://www.1cpp.ru/docum/icpp/html/classes.html
После подключения КОП можно создавать объект прямой запрос и пробовать писать ;)
+
27. vandalsvq 1545 22.07.09 07:21 Сейчас в теме
Выложил релиз 1.02.002 от 22.07.09 г. Прошу любить и жаловать. ;)
anbxp; +1
28. vandalsvq 1545 29.07.09 14:21 Сейчас в теме
Вышла новая версия. Исправлена критическая ошибка при формировании данных по регистрам с использованием документов как границ расчетов.
Добавлена возможность подключения внешних баз данных.
+
29. artbear 1518 29.07.09 14:46 Сейчас в теме
По собственному опыту разработки различных классов на разных языках/средах знаю, что проще всего писать документацию совместно с тестами для полной гарантии соответствия доки и класса :)
vandalsvq; +1
30. vandalsvq 1545 29.07.09 23:24 Сейчас в теме
Ищутся реальные пользователи данного класса.
Интересует где, как, для чего применяете и ваше мнение.
+
31. vandalsvq 1545 30.07.09 13:47 Сейчас в теме
ИСПРАВИЛ КРИТИЧЕСКУЮ ОШИБКУ
Ошибка происходила при формировании ВТ РегистрОбороты (и как следствие ВТ РегистрОстаткиОбороты) если регистр имеет тип Остатки и БыстраяОбработкаДвижений = 0.

Версию не менял.
+
32. vandalsvq 1545 03.08.09 22:20 Сейчас в теме
Вышла новая версия. Описание читать в документации или в топике. Брать наверху.
anbxp; +1
33. vandalsvq 1545 03.08.09 23:32 Сейчас в теме
Исправлена критичная ошибка при формировании ВТ по регистрам. Всем качать обязательно. Описание в документации. Файл в топике.
+
34. vet7777 591 04.08.09 10:53 Сейчас в теме
примеры типовые добавь в конце описания, например, получение остатка по счету на определенную дату и по определенному субконту.
практикум так сказать, чтобы народ быстрее освоил.
+
35. vandalsvq 1545 04.08.09 12:12 Сейчас в теме
(34) для получения остатки по счетам надо чтобы ВТ БИОстатки появилась.
А вот по регистрам вполне возможно и покажу что нибудь. Может через недельку напишу какой нить простенький отчет, или конфу тестовую выложу когда причешу ее нормально.
+
36. vandalsvq 1545 10.08.09 10:13 Сейчас в теме
Выложил версию 1.03.001 (beta).
Почему бета...
1. Проведены работы по оптимизации времени подготовки запроса. В связи с чем необходимо более тщательное тестирование
2. Вирт. таблица БИОстатки для SQL написана "на коленке" по аналогии с DBF. При этом DBF оттестирована и проведены работы по оптимизации времени выполнения запроса, для SQL подобных работ еще не было (планируется исследовать на неделе).
Собственно вот
+
37. vandalsvq 1545 10.08.09 13:51 Сейчас в теме
Обновил файл релиза 1.03.001 (бета). Теперь уже почти не бета версия, а похожа на стабильный релиз.
Отладил и поработал над оптимизацией выполнения запроса в SQL формате БД (спасибо тов. berezdetsky за его КОП AccountRecordset, без него было бы гораздно сложнее).
+
38. vandalsvq 1545 12.08.09 23:09 Сейчас в теме
Обновил планируемый релиз 1.03.001 (beta). Проведены некоторые работы по оптимизации времени подготовки запроса. Файл брать в топике.
+
39. vandalsvq 1545 17.08.09 11:45 Сейчас в теме
Выложена версия 1.03.002 от 17.08.09 г.
Добавлена бета-версия ВТ БИОборотыДтКт. Незначительные изменения по оптимизации подготовки запроса.

Хочу сказать для всех кто сомневается: версия 1.03.002 имеет статус "бета" исключительно из-за добавления в подготовку запроса виртуальных таблиц для работы с бухгалтерской подсистемой. В остальном же версия 1.03.ххх имеет ряд существенных улучшений по сравнению с версией 1.02.ххх и рекомендуется к использованию.
+
40. vandalsvq 1545 18.08.09 13:17 Сейчас в теме
Выложена версия 1.03.003 от 18.08.09 г.
Добавлены новые функции языка запроса: Лево(), Право(), СокрЛ(), СокрП(). Некоторые приватные методы реализованы как публичные с целью возможности разбора виртуальных таблиц вне класса.

Пы.сы. Если на форуме 1С++ активность в теме про класс хоть какая-то. То здесь я не вижу не активности, ни заинтересованности. Что не так? Или разработка показалось "не особо нужной".... странной даже.
+
41. vandalsvq 1545 22.08.09 20:32 Сейчас в теме
Выложил обновление. Исправлена ошибка связанная с подготовкой запроса для dbf формата базы данных если в запросе участвовали объекты с наличием символа "_" в виде объекта (справочник, документа, регистр).
+
42. vandalsvq 1545 02.09.09 17:39 Сейчас в теме
Новая версия: 1.03.004. Смотреть в документацию и продолжать пробовать. Если смельчаки конечно же имеются ;)
+
43. vandalsvq 1545 09.09.09 15:31 Сейчас в теме
Вышла новая версия. 1.03.005.
Добавлена ВТ БИОбороты, существенно проработаны БИОстатки и БИОборотыДтКт.
Исправлены другие мелкие недочеты и недоделки.
+
44. vandalsvq 1545 16.09.09 19:14 Сейчас в теме
Класс заменен без изменения версии. Небольшой багофикс некоторых косячков.
+
45. vandalsvq 1545 27.09.09 23:09 Сейчас в теме
Вышла новая версия. Множество изменений. В том числе пара достаточно нужных и "полезных".

Кстати очень интересным получилась возможность использования данного класса в совокупности с решением "ПоставщикДанных".
Информацию о данной "разработке" можно "подсмотреть" на 1С++.
http://www.1cpp.ru/forum/YaBB.pl?num=1248941896
+
46. CheBurator 3119 28.09.09 02:09 Сейчас в теме
Очень приветствуется наличие в составе "инсталлятора" примеров каких-нибудь типовых отчетов (ну, например, для Типовой ТиС) - остатки ТМЦ, ведомость по остаткам ТМЦ и т.д. - переделанных с учетом исапользования данного класса - будет все нагляднее...
+
49. vandalsvq 1545 28.09.09 10:42 Сейчас в теме
(46)
Инсталлятор в данном случае получиться "неуниверсальным". Те кто пользуются классами уже имеют определенную иерархию, те кто не пользуется, велика вероятность что не будут. Я думаю достаточно "демо-конфигурации" и небольшого "фака" в документации как подключить, как использовать и т.д. Это я напишу. Спасибо за идею ;)
(47)
Табличное поле - это интерфейсный объект реализованный в 1С++ который позволяет на форме отображать табличное поле во многом идентичное 8-ке. Вообще примеры использования ТП я встречал и на данном ресурсе. Можно поискать. Если интересно то скорее надо уже на форум 1С++
(48)
Странно слышать про глюки. Насколько я использую 1С++ (а это практически все что в ней есть) большинство, если не почти все уже пофиксены.
Что касается примеров. В ближайшее время для ТиС я наверное перепишу пару отчетов. К сожалению текущая загруженность не позволяет уделять большое внимание "непроизводственным" вопросам :). Время, время, время.
Кстати что касается документации, то я думаю в данной разработке вопросов особых не должно быть, очень подробная дока получилась.
+
50. CheBurator 3119 28.09.09 10:48 Сейчас в теме
(49) спсб за ответ.
по (46) те кто уже пользуется - они не будут, а те кто заинтересован с нуля - будут. А то получается - 1.почему так мало откликов и 2.кто не использовал - тому и не надол, а кто использовал они и так все знают... ;-)
по (48) речь не про глюки 1С++, а про прикладные выкладываемые решения.
+
51. vandalsvq 1545 28.09.09 12:09 Сейчас в теме
(50) реклама - двигатель торговли ;). А на мой взгляд хорошего фака+демо конфигурация будет достаточно. ;)
+
47. CheBurator 3119 28.09.09 02:17 Сейчас в теме
ух, чувствую надо плотно садится на прямые запросы и поставщика данных... а "табличное поле" - это что?
+
48. CheBurator 3119 28.09.09 02:21 Сейчас в теме
просто вдогонку: очень хочется чтобы работа, которую проделывает автор была "завершена", т.е. сабж "зафксирован" (с описанием известных багов и фич), существовала содержательная документация и т.д. - то есть чтобы был ПРОДУКТ. Отрадно видеть, что автор - делает "правильно". От использования возможностей 1С++ лично меня удерживают тоько небрежности и глюки, встреченные в том, что пришлось использовать... Простба побоьше примеров (конфигурация?)
+
52. vandalsvq 1545 02.12.09 09:33 Сейчас в теме
Выложена версия 1.05.001 от 02.12.09 г. Кому надо смотреть.
+
53. vandalsvq 1545 07.12.09 18:13 Сейчас в теме
Выложена версия 1.05.002 от 07.12.09 г.
+
54. vandalsvq 1545 10.05.10 23:15 Сейчас в теме
Выложена версия 1.06.005 от 11.05.10 г.
+
55. vandalsvq 1545 11.05.10 17:29 Сейчас в теме
Выложена версия 1.06.006 от 11.05.10 г.
Брать обязательно.
+
56. vandalsvq 1545 30.05.10 10:56 Сейчас в теме
Давненько я здесь не появлялся. В общем очень много изменений произошло. Как всегда отражаю в топе только последние. А вообще с версии 1.06.006 вот полный список изменений:

1.07.005 от 28.05.10 г.
- Исправлена ошибка при расчете конечной даты ВТ РегистрОбороты (для регистра с типом Обороты) если дата совпадает с датой начала периода хранения оборотов.

1.07.004 от 24.05.10 г.
- Исправлена ошибка подстановки предопределенных текстовых параметров с количеством слов разделенными запятыми более 2-х.

1.07.003 от 21.05.10 г.
- Исправлена ошибка подстановки текстовых параметров с модификаторами.
- Исправлена «плавающая» ошибка парсинга ВТ без указания параметров.

1.07.002 от 18.05.10 г.
- Исправлена ошибка при формировании ВТ РегистрОстатки (по регистру с типом «Остатки») если дата получения остатков очень близка к ТА.
- Исправлена ошибка при формировании ВТ РегистрОбороты (по регистру с типом Обороты) если граница окончания получения оборотов близка к ТА. Оптимизирован расчет границ для сбора данных.
- Добавлена возможность обратной совместимости с версией 1.06.ххх. Все параметры ВТ не являются обязательными. Подставляются значения по умолчанию.

1.07.001 от 14.05.10 г. (beta)
- Добавлен новый параметр «Соединения» виртуальной таблицы РегистрОстатки.
- Добавлен новый параметр «Соединения» виртуальной таблицы РегистрОбороты.
- Добавлен новый параметр «Соединения» виртуальной таблицы РегистрОстаткиОбороты.
- Добавлен новый параметр «Соединения» виртуальной таблицы БИОстатки.
- Добавлен новый параметр «Соединения» виртуальной таблицы БИОборотыДтКт.
- Добавлен новый параметр «Соединения» виртуальной таблицы БИОбороты.
- Добавлен новый параметр «Соединения» виртуальной таблицы БИОстаткиОбороты.
- Возможна потеря обратной совместимости по всем измененным виртуальным таблицам с более ранними версиями.

1.06.007 от 14.05.10 г.
- Исправлена ошибка виртуальной таблицы РегистрОбороты при формировании по регистру с типом «Обороты» и периодичностью Декада.
- Исправлена ошибки формирования виртуальных таблиц по бухгалтерской подсистеме при наличии более 1-го плана счетов.
+
57. vandalsvq 1545 30.05.10 10:57 Сейчас в теме
Ну, начнем-с?
Предлагаю задавать вопросы относительно использования класса здесь.
+
58. orefkov 1152 01.06.10 13:24 Сейчас в теме
(57)
Узок был их круг. Страшно далеки они были от народа (с)
+
59. vandalsvq 1545 01.06.10 15:06 Сейчас в теме
(58) да уж... тут активность близка в нулю
+
60. cleaner_it 220 01.08.10 12:35 Сейчас в теме
Крутая вещь! Попробую применить в http://infostart.ru/public/72778, потом напишу что получилось:) 134 страницы документации за вечер не освоить:)
+
61. vandalsvq 1545 03.08.10 10:57 Сейчас в теме
(60) если решишь пользоваться бери с форума 1С++ новую версию. А то тут давненько не обновлял. И потом расскажи об успехах :).
+
64. cleaner_it 220 03.08.10 12:38 Сейчас в теме
(61) На работе до сих пор пользуюсь версией 2.5, нареканий нет:) На сайте последняя 3.2.1.0, конечно ее получше использовать в новых наработках (ошибок много пофиксено). На работе боязно, работает - не трогай:) Только после многократного тестирования:)
+
65. vandalsvq 1545 03.08.10 13:56 Сейчас в теме
(64) последняя счас не 3.2.1.0, а 3.2.1.17. Исправлений там на самом деле много. Переезд в принципе безболезнен, а вот возможности... особенно в части табличного поля.
+
67. cleaner_it 220 04.09.10 16:17 Сейчас в теме
(61) Результаты:

VFPOLEDB
- Для DBF делал развертку виртуальной таблицы остатков (итоги+движения). Потратил 2 дня на разбор полетов

Класс ПрямойЗапрос
- Для DBF написал запрос. Потратил 1 час, вместе с чтением документации на 1sqlite и класс ПрямойЗапрос. Скорость выполнения увеличилась даже визуально!

Итог: класс использовать нужно! Рекомендую всем, кто не хочет мучений при написании прямых запросов к DBF

На заметку: Конструктор qryConsole по умолчанию ставит между параметром и модификатором пробел ":ДатаПолученияОстатков ~", при использовании класса текст запроса необходимо править - убирать пробел: ":ДатаПолученияОстатков~"
+
62. anton.fly7 173 03.08.10 11:21 Сейчас в теме
как сделать чтоб на DBF базе работала не через SQLite а через VFPOLEDB? такое вообще возможно?
+
63. anton.fly7 173 03.08.10 11:32 Сейчас в теме
(62) разобрался
нашел 1sqlite.dll, вопрос снимается )
+
66. cleaner_it 220 04.09.10 15:50 Сейчас в теме
(0) а автоматический подбор индексов - твоя работа или Orefkov?
Выбран индекс ACDATETIM: DTOS(DATE)+TIME+IDDOC


А вообще - уже очень-очень нравится, пользоваться классом удобно:)
+
69. vandalsvq 1545 06.09.10 15:50 Сейчас в теме
(66) Подбор индексов - это работа 1sqlite, т.е. Саши Орефкова.
(67) по поводу модификатора посмотрю чтобы пробелы не учитывались.
(68) я на 1С++ писал что есть некоторые недоработки.
Цитата: "В частности Жур.$ОбщийРеквизит.ИмяРеквизита можно писать как $Жур.ИмяРеквизита, а $nolock вообще отсутствует везде.
Ну и сравнение "WHERE $Жур.ДатаДокумента"... тут такое дело что сравнивать left(date_time_iddoc,8) (для SQL будет так) не самое хорошее решение. Проще после кода поставить проверку, если это ПрямойЗапрос.ЭтоSQL = 1 то данную часть заменить на $Жур.ПозицияДокумента. Т.е. ПрямойЗапрос.Текст = СтрЗаменить(ПрямойЗапрос.Текст,"WHERE $Жур.ДатаДокумента","WHERE $Жур.ПозицияДокумента");". 8-)
+
68. cleaner_it 220 05.09.10 08:55 Сейчас в теме
Небольшой пример для тех, кто только начинает переходить на ПрямойЗапрос:

	ТекстЗапросаДвижений =
	"SELECT 
	|	  $Жур.ТекущийДокумент КАК [Документ $Документ]
	//|	  Журнал.IDDOC as [Документ $Документ]
	|	, $Жур.ВидДокумента КАК Документ_вид
	//|	, Журнал.IDDOCDef as Документ_вид
	|	, $Жур.ДатаДокумента КАК [ДатаДок $Дата]	
	//|	, "+?(БазаSQL = 0,"Журнал.DATE","$НачалоПериода.День(Журнал.DATE_TIME_IDDOC)")+" as ДатаДок
	|	
	|	, $СпрДоговора.ТекущийЭлемент КАК [Договор $Справочник.Договоры]
	//|	, СпрДоговора.ID КАК [Договор $Справочник.Договоры]
	|	, $СпрКонтрагенты.ТекущийЭлемент КАК [Покупатель $Справочник.Контрагенты]
	//|	, СпрКонтрагенты.ID КАК [Покупатель $Справочник.Контрагенты]
	|
	|	, $НаименованиеРегистра.ВидДвижения КАК ПриходРасход
	//|	, НаименованиеРегистра.DEBKRED КАК ПриходРасход
	|
	|	, НаименованиеРегистра.Фирма КАК [Фирма $Справочник.Фирмы]
	|	, НаименованиеРегистра.ВидДолга КАК [ВидДолга $Перечисление.ВидыДолга]
	|	, НаименованиеРегистра.КредДокумент КАК [КредДокумент $Документ]
	|	, НаименованиеРегистра.ДокументОплаты КАК [ДокументОплаты $Документ]
	|	, НаименованиеРегистра.КодОперации КАК [КодОперации $Перечисление.КодыОпераций]
	|
	|	, НаименованиеРегистра.СуммаРуб*(1 - $НаименованиеРегистра.ВидДвижения * 2) КАК СуммаВзаиморасчетовВВалютеБухУчета
	//|	, $НаименованиеРегистра.СуммаРуб*(1 - НаименованиеРегистра.DEBKRED * 2) КАК СуммаВзаиморасчетовВВалютеБухУчета
	|
	|	, Жур.$ОбщийРеквизит.Автор  КАК [Автор $Справочник.Пользователи]
	|	, Жур.$ОбщийРеквизит.Проект КАК [Проект $Справочник.Проекты]
	|	, Жур.$ОбщийРеквизит.ЮрЛицо КАК [ЮрЛицо $Справочник.СвоиЮрЛица]
	|
	|FROM Регистр."+НаименованиеРегистра+" КАК НаименованиеРегистра
	//|FROM $Регистр."+НаименованиеРегистра+" КАК НаименованиеРегистра
	|	INNER JOIN ЖурналДокументов КАК Жур ON $НаименованиеРегистра.ТекущийДокумент = $Жур.ТекущийДокумент
	//|	INNER JOIN "+?(БазаSQL = 0,"1SJOURN","_1SJOURN")+" AS Журнал "+?(БазаSQL = 0,"","With (NOLOCK)")+" ON НаименованиеРегистра.IDDOC = Журнал.IDDOC
	|	LEFT JOIN Справочник.Договоры КАК СпрДоговора ON $СпрДоговора.ТекущийЭлемент = НаименованиеРегистра.Договор
	//|	LEFT JOIN $Справочник.Договоры КАК СпрДоговора ON СпрДоговора.ID = $НаименованиеРегистра.Договор
	|	LEFT JOIN Справочник.Контрагенты КАК СпрКонтрагенты ON $СпрКонтрагенты.ТекущийЭлемент = СпрДоговора.ParentExt
	//|	LEFT JOIN $Справочник.Контрагенты КАК СпрКонтрагенты ON СпрКонтрагенты.ID = СпрДоговора.ParentExt
	|
	|WHERE $Жур.ДатаДокумента BETWEEN :ВыбНачПериода AND :ВыбКонПериода~
	//|WHERE ("+?(БазаSQL = 0,"Журнал.DATE","Журнал.DATE_TIME_IDDOC")+" BETWEEN :ВыбНачПериода"+?(БазаSQL = 0,"~~","")+" AND :ВыбКонПериода"+?(БазаSQL = 0,"~~","~")+")
	|
	|";
Показать


В примере показано, что меняется. Старый вариант запроса для DBF (VFPOLEDB ) и SQL закомментирован
+
70. cleaner_it 220 06.09.10 16:03 Сейчас в теме
ПрямойЗапрос.Текст = СтрЗаменить(ПрямойЗапрос.Текст,"WHERE $Жур.ДатаДокумента","WHERE $Жур.ПозицияДокумента");"

обязательно сделаю такую проверку

А по поводу $nolock я прочитал в твоей документации, что происходит подстановка автоматическая для SQL, а для 1sqlite это и не нужно. Или я не так понял?

Ну, раз уж на то пошло - можно вернуть знак $ перед регистрами движений? Не очень удобно править руками запрос qryConsole, первый раз я даже долго искал в своем запросе ошибку (спасибо Орефкову за консоль запросов 1sqlite, помогла разобраться)
+
71. cleaner_it 220 07.09.10 04:18 Сейчас в теме
(70) больше не буду дублировать:) дальнейшая переписка на http://www.1cpp.ru/forum/YaBB.pl?num=1246429625
+
72. BlueWind 27.11.10 19:16 Сейчас в теме
Поставлена задача оживить большую распределенную базу на бухгалтерской компоненте - центральная SQL и периферийные на DBF. С этой целью начал исследование возможностей 1с++ и класса ПрямойЗапрос... Начать было сложновато, но уже что-то получается, и результаты очаровывают настолько, что я для себя решил, что когда заброшу 1с и займусь скульптурой, первым делом наваяю памятник человеку, придумавшему колготки (это просто было уже решено раньше на основе весенних впечатлений), и сразу за ним - бюсты создателей 1с++ и этого класса! Ибо это - вещь!! Спасибо vandalsvq и за класс и за основательную документацию! Похоже, я буду активно его использовать..

Использую КОП ПрямойЗапрос 1.7.21, 1с++ 3.2.3.1

Вот такой запрос:
ТекстЗапроса = "
|ВЫБРАТЬ *
|ИЗ
|$БИОстатки.Основной(:КонДата~,, (Подразделения, Товары), (Количество, Сумма), ((Субконто1 = :ВыбПодразделение) И (Счет = :Счет411)),)
|КАК Би
|";

дает ошибку "В метод необходимо передавать непустые объекты типа метаданных". Если между идентификаторами видов субконто убрать пробел - все нормально. Если вместо (Подразделения, Товары) задать через пробел (Субконто1, Субконто2) - ошибки не возникает. В документации по $БИОстатки, впрочем, так и указано: "Т.е. например (Субконто1, Субконто3) или (Контрагенты,Договоры).", но при возможности влияние пробела хорошо было бы исключить..

В документации по $БИОстатки, Параметр КонецПериода сказано: "Параметр со значением даты или документа, до которого необходимо рассчитать остатки (условие <, т.е. не входит в сумму остатков). " Здесь закрались сомнения, и экспериментально установлено, что "<" справедливо для документа (т.е. остатки на начало документа), а для даты верно "<=", т.е. на конец дня.

Хотелось бы еще при выполнении запросов классом вместо "Выполняется обработка" в строке состояния наблюдать информацию именно о выполнении запроса с указанием даты - что-то вроде "Расчет итогов: 27.11.10" по аналогии с 1с..
+
73. BlueWind 27.11.10 22:16 Сейчас в теме
(72) По поводу параметра КонецПериода разобрался - если в запросе параметр КонецПериода типа Дата установлен с модификатором (:КонДата~) тогда остатки рассчитываются на конец дня, если без модификатора (:КонДата) - тогда на начало дня. В документации про влияние модификатора сказано, но хорошо бы уточнить - каким образом.

И еще вопрос: als и ints файлы для КОП ПрямойЗапрос существуют?
+
74. mybracho 23.11.11 11:20 Сейчас в теме
Ребята, скиньте ссылку где взять построитель для прямого запроса
+
75. iksanova 19.12.11 06:58 Сейчас в теме
Документация достаточно большая.
Пользоваться своим классом - это круто!
Заинтересовалась!
+
76. nll.jojo 20.01.12 15:21 Сейчас в теме
заинтригованннн
+
77. andrey314 14 22.09.13 14:37 Сейчас в теме
Круто. Понимаю что наглею, но было бы еще круче если бы в составе документации были примеры для работы с БИ.
+
78. vandalsvq 1545 22.09.13 15:38 Сейчас в теме
Данный вопрос лучше всего задать в теме на форуме 1С++ (см. тут - http://www.1cpp.ru/forum/YaBB.pl?num=1285352210). Я достаточно сильно от 7.7 отошел и очень много проектов которые сейчас веду, чтобы браться за помощь :).
+
79. sss999 48 12.11.13 08:48 Сейчас в теме
Круто конечно,но если бы мне сказали как,я бы весь синтаксис переделал под восьмерочный,ну не понятно нафига было делать какой то другой синтаксис,как будто людям делать нечего как сидеть и изучать новые языки.Документацию такую же делать нужно как и в 1с 8,при том вполне возможно даже выпустить небольшую книженцию страниц 50 и сделать небольшие денежки на этом проекте,опять же если синтаксис приведете к восьмерочному и уберете баги.Не нужен весь язык запросов,хотя бы основное для выборок.
+
81. vandalsvq 1545 16.11.13 18:39 Сейчас в теме
(79) sss999, конкрентной цели монетизации проекта не было, я делал для своих нужд, а то что синтаксис такой, за основу был взять синтаксис 1C++. На тот момент достаточно распространенный среди знатоков прямых запросов. Синтаксис к 8-му приводить не вижу смысла, вот буквально пару дней назад пользовался разработкой для написания сложных сборов данных и знаешь, мне нравится результат который получился и процесс не вызвал больших проблем. Не хватает конструктора - вот что надо было бы точно.
По документации: если посмотришь то увидишь что документация там точно за 50 страниц выпадает, не хватает конкретных примеров - это да, но описание я считаю минимально достаточным.
И еще по поводу синтаксиса, я не вижу слишком больших отличий от 8-ки. Необходимость переименования и определения вида в запросе... ну что ж... А двоеточния или @ - очень сильно нужны. Например: в коде Т.ТекущийЭлемент = :Ссылка точно видно что "Ссылка" это именно текстовый параметр который надо подставить соответствующим образом. А в коде Т.ТекущийЭлемент = @Ссылка понятно что "Ссылка" это подставляемый параметр который необходимо задавать отличным от предыдущего примера видом, и при этом понятно что запрос параметризированный и выполнение его происходит отлично от обычного запроса.
+
80. sss999 48 12.11.13 09:38 Сейчас в теме
Там в запросе можно обойтись и без всяких там долларов,двоеточий и квадратных скобок,все это можно отследить,а так я смотрю и не понимаю что это за конструкция в скобках что за синоним такой с пробелом и долларом и еще и с точкой.И еще тут же написать минимальную инструкцию,или сделать два варианта расширенный синтаксис и краткое начало работы с краткой справкой.
+
82. sss999 48 18.11.13 08:18 Сейчас в теме
А подскажите как подключить ваш класс
+
83. sss999 48 18.11.13 08:27 Сейчас в теме
А на форуме 1cpp там помойка ,два дня нужно рыться что бы найти что то,больше половины старья которое уже не актуально ввиду выхода новых версий,а норм никто не может написать инструкции.
+
84. sss999 48 26.02.14 10:32 Сейчас в теме
не подскажешь что за ошибка?Я посмотрел выходит в момент создания объекта 0,что за объект такой?в этом тексте типобъекта =0,я посмотрел он передается через параметр,а там стоит и вправду 0.
// определяем время подготовки запроса
ВремяПодготовки = _GetPerformanceCounter();

// создаем объект для получения результата запроса
ПолучательЗапроса = СоздатьОбъект(ТипОбъекта);

ПрямойЗапрос::Выполнить(Число ТипОбъекта=0, Строка ТекстВыполнения=, Число БезПодготовки=0) : Неудачная попытка создания объекта
ПолучательЗапроса = СоздатьОбъект(ТипОбъекта);
{C:\Base77\База\ПрямойЗапрос.ert(13386) }

тЗапроса = Запрос.Выполнить(0);
{F:\SQLЗАПРОС2.ERT(183)}: ПрямойЗапрос::Выполнить(Число ТипОбъекта=0, Строка ТекстВыполнения=, Число БезПодготовки=0) : Неудачная попытка создания объекта
ПолучательЗапроса = СоздатьОбъект(ТипОбъекта);
{C:\Base77\База\ПрямойЗапрос.ert(13386) }
+
85. sss999 48 26.02.14 10:48 Сейчас в теме
ПрямойЗапрос::СоздатьОбъектыЗапроса(Строка ПутьКБазеSQL=:memory:) : Неудачная попытка создания объекта
БазаSQLite = СоздатьОбъект("SQLiteBase");
{C:\Base77\База\ПрямойЗапрос.ert(1057) }

Запрос = СоздатьОбъект("ПрямойЗапрос");
{F:\SQLЗАПРОС2.ERT(146)}: ПрямойЗапрос::СоздатьОбъектыЗапроса(Строка ПутьКБазеSQL=:memory:) : Неудачная попытка создания объекта
БазаSQLite = СоздатьОбъект("SQLiteBase");
{C:\Base77\База\ПрямойЗапрос.ert(1057) }

Хотя dll лежит sqllite
+
86. vandalsvq 1545 26.02.14 10:52 Сейчас в теме
(85) sss999, посмотри, может в коде при выполнении запроса вызываешь Выполнить с неправильными параметрами. Потому что 0 может быть только если он извне пришел именно так. А вообще там должно быть ИндексированнаяТаблица или ТаблицаЗначений. В общем в документацию посмотри.
Что же касается sqlite, может версия компоненты старая? Может не загрузилась ВК? Отдельно попробуй объект создать, проходит/нет.
+
87. sss999 48 26.02.14 11:35 Сейчас в теме
отредактировал,обработку твою,запрос отработал.Для дбф.
Текст заменил так
было:
ИначеЕсли ЭтоSQL = 0 Тогда
ЗапросSQLite.Отладка(РежимОтладкиЗапроса);
ЗапросSQLite.ВыполнитьЗапрос(ТекстЗапроса,ПолучательЗапроса=);
КонецЕсли;
стало:
ИначеЕсли ЭтоSQL = 0 Тогда
ЗапросSQLite.Отладка(РежимОтладкиЗапроса);
ПолучательЗапроса=ЗапросSQLite.ВыполнитьЗапрос(ТекстЗапроса);
КонецЕсли;
и перед этим поменял
ПолучательЗапроса = СоздатьОбъект(ТипОбъекта);
заменил на
ПолучательЗапроса=0;
+
89. vandalsvq 1545 26.02.14 12:33 Сейчас в теме
(87) sss999, в итоге у тебя всегда результат будет в ИТ. Смотри сам, но проблема была не в коде класса, а в твоем коде.
+
90. sss999 48 26.02.14 14:19 Сейчас в теме
(89) ну вот так консоль захотела только через такой код работать,а обработка работает через старый код,проблемы в консоли как я понял
+
88. sss999 48 26.02.14 12:31 Сейчас в теме
а то что не создавался СоздатьОбъект("SQLiteBase"); это видно проблема консоли,открыл другую обработку в которой объект создается и консоль заработала.
+
91. sss999 48 26.02.14 14:20 Сейчас в теме
а зачем создается объект такой? ПолучательЗапроса = СоздатьОбъект(ТипОбъекта); у меня в типеобъекта стояло 0 и не отрабатывало через консоль
+
92. vandalsvq 1545 26.02.14 15:45 Сейчас в теме
(91) sss999, я не совсем понимаю про какую консоль ты говоришь? А в "СоздатьОбъект(ТипОбъекта)" не совсем понятно почему ноль приходит, туда должна приходить строка, с указанием типа объекта для получения результата запроса. Вероятнее всего проблема в вызове "Выполнить", посмотри параметры согласно документации, сравни с параметрами которые передаются, там ошибка.
+
93. korpas 03.06.15 13:37 Сейчас в теме
При попытке выполнить запрос появляются сообщения:

Процедура не обнаружена (вирт)
Процедура не обнаружена (я)
и
Внимание! Инициализация класса: ПрямойЗапрос закончилась неудачно!

В файле ПрямойЗапрос.ert не вижу, где объявляются процедуры вирт() и я()...

P.S. Видимо надо обновить 1cpp до 3ей версии...
+
94. vandalsvq 1545 30.06.15 09:31 Сейчас в теме
(93) korpas, советую за более актуальной версией, а также сборками с необходимыми dll и другими компонентами ходить на 1cpp.ru. В частности тут - http://www.1cpp.ru/forum/YaBB.pl?num=1273512019, выкладываются последние сборки. Правда давненько их не было и я не уверен что с моим авторством еще будут. Но кто знает. Сейчас функционал весьма стабилен и очень даже работоспособен.
В общем, ищите инфу на 1С++, тут я редко пишу ответы.
+
96. ManyakRus 484 31.03.16 17:47 Сейчас в теме
маленький глюк:
В $РегистрОстаткиОбороты.ОстаткиТМЦ() Условия приходится писать в одной строке, с новой строки выдаёт ошибки
Meta name parser error: не указан параметр ":rg_405"
+
97. Mikeware 9 07.04.16 16:24 Сейчас в теме
Хочу совета!
ВЫБРАТЬ
    Рег.ТекущийДокумент КАК [Документ $Документ]
    ,Рег.ВидДокумента КАК [Документ_вид $ВидДокумента]
    ,Рег.Фирма КАК [Фирма $Справочник.Фирмы]
    ,Рег.Договор КАК [Договор $Справочник.Договоры]
    ,Рег.СуммаРубНачальныйОстаток КАК ОстатокНач
    ,Рег.СуммаРубОборот КАК Оборот
    ,Рег.СуммаРубПриход КАК Приход
    ,Рег.СуммаРубРасход КАК Расход
    ,Рег.СуммаРубКонечныйОстаток КАК ОстатокКон
,СпрФирмы.ТекущийЭлемент КАК [ФирмаСпр ]
ИЗ $РегистрОстаткиОбороты.Покупатели(:НачПериода
        ,:КонПериода
        ,Документ
        ,ДвиженияИГраницыПериода
        ,        ,(Фирма,Договор)
        ,(СуммаРуб)) КАК Рег

ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.Фирмы   Как Фирмы 
ПО   Рег.Фирма= Фирмы.id
Показать

дает ошибку
near "AS": syntax error


Собственно, менял условия соединения и на ЛЕВОЕ СОЕДИНЕНИЕ $Справочник.Фирмы Как Фирмы
ПО Рег.Фирма= $Фирмы.ТекущийЭлемент, и т.п. - та же ошибка.
Классы обновил на версию от 22.05.13
в режиме отладки выдает текст, который визуально ошибок не имеет
без левого соединения (сама ВТ) работает....
база- ДБФ.
+
98. vandalsvq 1545 07.04.16 20:58 Сейчас в теме
(97) Mikeware, отправь на почту или в скайп текст отладочного режима, хочу посмотреть, поскольку так с ходу не видно в чем проблема может быть.
+
99. Mikeware 9 08.04.16 16:53 Сейчас в теме
(98) спасибо, я сам разобрался. накосячил с типизацией. она немного отличается от "классической", привычной в одбсшных...
+
Внимание! Тема сдана в архив