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

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    21559    54    Gvozdod    8    

14

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

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

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

1 стартмани

23.04.2014    165696    1864    Alexoniq    1596    

496

Tray Informer

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

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

1 стартмани

04.09.2013    32877    61    O-Planet    78    

49

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

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

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

1 стартмани

13.08.2013    21197    Reptile    5    

35

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

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

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

1 стартмани

21.02.2013    18029    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    36103    51    venger    7    

23

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

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

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

10 стартмани

25.11.2012    34957    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 1537 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 1537 05.07.09 01:23 Сейчас в теме
Добавлена новая версия КОП и обновленная документация.
Готов озвучить часть плана по развитию класса, правда без сроков:
- доработка документации по индексам реализованным в таблицах 1С
- доработка документации по инструкциям языка запросов
- доработка ВТ по бухгалтерским таблицам
- реализация ВТ по регистрам
- реализация ВТ СрезПервых
- реализация различных функций и инструкций
По пути посмотрим что еще будет.
8. acsent 1199 05.07.09 02:37 Сейчас в теме
В чем отличие от обычного запроса через 1С++?
9. vandalsvq 1537 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) ты главное забыл сказать. Теперь можно не думать о формате БД, в которой работаешь ;)
15. vandalsvq 1537 05.07.09 13:44 Сейчас в теме
(10) ну да... спасибо что напомнил :)
Кстати по просьбе Donat-а ВТ по регистрам будет аккурат после документации по индексам и инструкциям языка (те которые не описаны до конца).
16. Ёпрст 1063 05.07.09 16:14 Сейчас в теме
(15)
Интересно, сколько времени уходит на документацию ?...Так, для справки.
95. succub1_5 88 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 1537 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 1537 06.07.09 10:25 Сейчас в теме
Вышло обновление 1.01.003.
Доработана документация и исправлены ошибки выявленные мною.

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



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

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

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

Пы.сы. Если на форуме 1С++ активность в теме про класс хоть какая-то. То здесь я не вижу не активности, ни заинтересованности. Что не так? Или разработка показалось "не особо нужной".... странной даже.
41. vandalsvq 1537 22.08.09 20:32 Сейчас в теме
Выложил обновление. Исправлена ошибка связанная с подготовкой запроса для dbf формата базы данных если в запросе участвовали объекты с наличием символа "_" в виде объекта (справочник, документа, регистр).
42. vandalsvq 1537 02.09.09 17:39 Сейчас в теме
Новая версия: 1.03.004. Смотреть в документацию и продолжать пробовать. Если смельчаки конечно же имеются ;)
43. vandalsvq 1537 09.09.09 15:31 Сейчас в теме
Вышла новая версия. 1.03.005.
Добавлена ВТ БИОбороты, существенно проработаны БИОстатки и БИОборотыДтКт.
Исправлены другие мелкие недочеты и недоделки.
44. vandalsvq 1537 16.09.09 19:14 Сейчас в теме
Класс заменен без изменения версии. Небольшой багофикс некоторых косячков.
45. vandalsvq 1537 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 1537 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 1537 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 1537 02.12.09 09:33 Сейчас в теме
Выложена версия 1.05.001 от 02.12.09 г. Кому надо смотреть.
53. vandalsvq 1537 07.12.09 18:13 Сейчас в теме
Выложена версия 1.05.002 от 07.12.09 г.
54. vandalsvq 1537 10.05.10 23:15 Сейчас в теме
Выложена версия 1.06.005 от 11.05.10 г.
55. vandalsvq 1537 11.05.10 17:29 Сейчас в теме
Выложена версия 1.06.006 от 11.05.10 г.
Брать обязательно.
56. vandalsvq 1537 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 1537 30.05.10 10:57 Сейчас в теме
Ну, начнем-с?
Предлагаю задавать вопросы относительно использования класса здесь.
58. orefkov 1152 01.06.10 13:24 Сейчас в теме
(57)
Узок был их круг. Страшно далеки они были от народа (с)
59. vandalsvq 1537 01.06.10 15:06 Сейчас в теме
(58) да уж... тут активность близка в нулю
60. cleaner_it 220 01.08.10 12:35 Сейчас в теме
Крутая вещь! Попробую применить в http://infostart.ru/public/72778, потом напишу что получилось:) 134 страницы документации за вечер не освоить:)
61. vandalsvq 1537 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 1537 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 1537 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 1537 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 1537 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 1537 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 1537 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 1537 26.02.14 15:45 Сейчас в теме
(91) sss999, я не совсем понимаю про какую консоль ты говоришь? А в "СоздатьОбъект(ТипОбъекта)" не совсем понятно почему ноль приходит, туда должна приходить строка, с указанием типа объекта для получения результата запроса. Вероятнее всего проблема в вызове "Выполнить", посмотри параметры согласно документации, сравни с параметрами которые передаются, там ошибка.
93. korpas 03.06.15 13:37 Сейчас в теме
При попытке выполнить запрос появляются сообщения:

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

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

P.S. Видимо надо обновить 1cpp до 3ей версии...
94. vandalsvq 1537 30.06.15 09:31 Сейчас в теме
(93) korpas, советую за более актуальной версией, а также сборками с необходимыми dll и другими компонентами ходить на 1cpp.ru. В частности тут - http://www.1cpp.ru/forum/YaBB.pl?num=1273512019, выкладываются последние сборки. Правда давненько их не было и я не уверен что с моим авторством еще будут. Но кто знает. Сейчас функционал весьма стабилен и очень даже работоспособен.
В общем, ищите инфу на 1С++, тут я редко пишу ответы.
96. ManyakRus 483 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 1537 07.04.16 20:58 Сейчас в теме
(97) Mikeware, отправь на почту или в скайп текст отладочного режима, хочу посмотреть, поскольку так с ходу не видно в чем проблема может быть.
99. Mikeware 9 08.04.16 16:53 Сейчас в теме
(98) спасибо, я сам разобрался. накосячил с типизацией. она немного отличается от "классической", привычной в одбсшных...
Оставьте свое сообщение