Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 10 11 ... 60 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПрямойЗапрос" (число прочтений - 305053 )
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #120 - 07. Августа 2009 :: 13:48
Печать  
п.1 На самом деле время подготовки запроса намного больше времени запроса... может у меня слишком много регэкспов проходит по запросу, и вполне возможно что это не самое эффективное решение. Зато работает Улыбка будем думать. Хотя в рамках моей конфигурации время подготовки запроса как правило меньше времени выполнения. Так что я пока не парюсь. Согласись лучше функционал пошире, а потом оптимизация Улыбка

п.4 Не совсем то... но что-то близко. А вообще можно использовать "НазначитьБазуОсновной" Улыбка правда я никогда не проверял а будет ли работать запрос к таблицам 1С. Улыбка Проверить чтоли...
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
nvg
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 72
Местоположение: Киев
Зарегистрирован: 14. Сентября 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #121 - 07. Августа 2009 :: 14:09
Печать  
vandalsvq писал(а) 07. Августа 2009 :: 13:48:
Хотя в рамках моей конфигурации время подготовки запроса как правило меньше времени выполнения.

На самом деле, так оно и есть. Удивило просто, что такой маааленький текст обрабатывался дольше, чем более длинные запросы на вставку данных.

vandalsvq писал(а) 07. Августа 2009 :: 13:48:
Так что я пока не парюсь. Согласись лучше функционал пошире, а потом оптимизация Улыбка

Я тоже так считаю. Вообще, идея очень понравилась, вот и хочу все переписать под класс.

vandalsvq писал(а) 07. Августа 2009 :: 13:48:
п.4 Не совсем то... но что-то близко. А вообще можно использовать "НазначитьБазуОсновной" Улыбка правда я никогда не проверял а будет ли работать запрос к таблицам 1С. Улыбка Проверить чтоли...


В данный момент для меня это не слишком критично. Действительно для создания таблиц просто создам отдельный экземпляр класса.

Спасибо за поддерку подключения сторонних БД!!!
  
Наверх
ICQ  
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #122 - 08. Августа 2009 :: 11:50
Печать  
vandalsvq
Хотел ПрямойЗапрос.ПодготовитьТекстЗапроса к редактору на Scintilla приспособить, а нынешний РежимОтладки много чего из задумок не позволяет сделать  Нерешительный
Можно ли доработать класс чтоб исключения при ошибках обработки запроса выкидывались?
Или добавить ПрямойЗапрос.ТекстОшибки. Или строки "Если РежимОтладки = 1 Тогда Сообщить(...); КонецЕсли;" в процедуру переделать (чтоб если изменять поведение отладки то хоть не по всему коду).
  
Наверх
www  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #123 - 08. Августа 2009 :: 14:52
Печать  
Djelf писал(а) 08. Августа 2009 :: 11:50:
vandalsvq
Хотел ПрямойЗапрос.ПодготовитьТекстЗапроса к редактору на Scintilla приспособить, а нынешний РежимОтладки много чего из задумок не позволяет сделать  Нерешительный
Можно ли доработать класс чтоб исключения при ошибках обработки запроса выкидывались?
Или добавить ПрямойЗапрос.ТекстОшибки. Или строки "Если РежимОтладки = 1 Тогда Сообщить(...); КонецЕсли;" в процедуру переделать (чтоб если изменять поведение отладки то хоть не по всему коду).


Надо думать, насколько критично? Просто у меня счас есть свои задачи, а между делом ВТ по бух. итогам... вот.  Круглые глаза
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #124 - 08. Августа 2009 :: 16:09
Печать  
Совершенно не критично и не срочно Подмигивание
Это я и сам могу сделать, просто если класс будет усовершенствоваться мне придется все время его править и делать его ответвление, а этого совсем не хочется Очень довольный
  
Наверх
www  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #125 - 08. Августа 2009 :: 19:14
Печать  
Djelf писал(а) 08. Августа 2009 :: 16:09:
Совершенно не критично и не срочно Подмигивание
Это я и сам могу сделать, просто если класс будет усовершенствоваться мне придется все время его править и делать его ответвление, а этого совсем не хочется Очень довольный


Предложи свою реализацию и я постараюсь по мере выхода релизов вставить внутрь разработки.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #126 - 09. Августа 2009 :: 10:15
Печать  
ОК. Тогда я слегка перепишу класс (только в части сообщений, добавлю режимотладки=2) и сюда его выложу.
  
Наверх
www  
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Класс "ПрямойЗапрос"
Ответ #127 - 09. Августа 2009 :: 13:26
Печать  
vandalsvq писал(а) 08. Августа 2009 :: 14:52:
а между делом ВТ по бух. итогам... вот.  Круглые глаза
Жду, не дождусь  Подмигивание А то все регистры  Ужас Смех
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #128 - 09. Августа 2009 :: 19:48
Печать  
Alister писал(а) 09. Августа 2009 :: 13:26:
vandalsvq писал(а) 08. Августа 2009 :: 14:52:
а между делом ВТ по бух. итогам... вот.  Круглые глаза
Жду, не дождусь  Подмигивание А то все регистры  Ужас Смех


Регистры проще в понимании и эффективнее в реализации, в виду этого анонсированы были раньше.
С бух. итогами же и работать сложнее и отдачи должной добиться тяжело. По крайней мере могу сказать что  данное положение дел имеет место быть для DBF форматов БД. А для SQL давно существует AccountRecordset откуда я в свое время многое подсмотрел. Подмигивание
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #129 - 10. Августа 2009 :: 10:38
Печать  
vandalsvq писал(а) 08. Августа 2009 :: 19:14:
Предложи свою реализацию и я постараюсь по мере выхода релизов вставить внутрь разработки.


Сделал на базе ПрямойЗапрос скачанного 09.08.09

Добавлены РежимОтладки = 2 и 3.
2 - при ошибках выбрасывает исключения, 3 - РежимОтладки 2+1 (исключения + отладочные сообщения 1с++ и 1sqlite)

Слегка улучшено сообщение о неверной подстановке даты + добавлено распознавание ошибок Даты - "пустая дата" и "неверный формат даты" (замедлит парсинг на ~0,026мс).

Вроде ничего не сломал  Круглые глаза

З.Ы. Не понял в чем дело, но время подготовки небольшого запроса упало с 44мс до 35мс  Ужас
  

____________.zip ( 44 KB | Загрузки )
Наверх
www  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #130 - 10. Августа 2009 :: 15:03
Печать  
В общем вышел бета-релиз. Почему бета? Дык потому что изменения нужные, важные, а релиз запланирован позже Подмигивание

1.03.001 (beta) от 15.08.09 г.
- Некоторые изменения направленные на оптимизацию времени подготовки запросов
- Исправлена ошибка при сборе ВТ РегистрОбороты с периодичностью < МЕСЯЦ при флаге БыстраяОбработкаДвижений = 0
- Новая функция ОКРУГЛИТЬ(Число,Разряд)
- Добавлена ВТ БИОстатки
- Новые значения для атрибута РежимОтладки. 2 – выброс исключений при ошибках, 3 = 1+2 (по просьбе и при помощи тов. Djelf)

КОП и документацию качать в голове.
Обратите внимание на параметры ВТ БИОстатки.

Кстати интересует мнение по поводу изменения времени подготовки запроса... если не сложно, выложите примеры выполнения на версии 1.02.004 (с последними изменениями) и на версии 1.03.001.
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 634
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #131 - 10. Августа 2009 :: 16:32
Печать  
Огромное спасибо! То что надо!

Только
ОбработкаОшибки("При обработке реквизитов таблиц тип данных '"+ТипВидДанных+"' не определен.");
измени пожалуйста на
ОбработкаОшибки("При обработке реквизитов таблиц тип данных '"+ТипВидДанных+"' не определен.","i");
или вот так
Если ПустоеЗначение(ТипВидДанных)=0 Тогда
ОбработкаОшибки("При обработке реквизитов таблиц тип данных '"+ТипВидДанных+"' не определен.");
Иначе
ОбработкаОшибки("При обработке реквизитов таблиц тип данных '"+ТипВидДанных+"' не определен.","i");
КонецЕсли;
а то без "i" в РежимОтладки 2 и 3 при пустом значении ТипВидДанных будет выкидывается исключение.

А зачем выдается это предупреждение при пустом значении ТипВидДанных? Запрос ведь парсится нормально и работает...
  
Наверх
www  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #132 - 10. Августа 2009 :: 16:46
Печать  
Вообще есть подозрение что там данная проверка и вывод служебного сообщения совсем ни к чему. В смысле что вообще никакое служебное сообщение там не надо... ничего особенного там нет

Пы.сы. только что обнаружил что иногда мой КОП рекламируют в темах "вирт. таблицы для DBF"... хм... при этом никто особо не горит желанием пользоваться...
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #133 - 11. Августа 2009 :: 07:21
Печать  
Почему же не горят пользоваться? Просто класс у тебя уж больно качественно написан. И документация на 7 по пятибальной шкале. Никаких вопросов и не возникает при использованииУлыбка Вот народ и не отписывается. Да и баз ДБФ мало осталось, у меня - так может 2 из 10.

А можешь хоть в двух словах написать про виртуальные таблицы бухитогов? Хотя бы названия и названия параметров?
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #134 - 11. Августа 2009 :: 07:32
Печать  
Ну может я и соглашусь. Хотя к своей разработке отношусь с большой долей критичности. Именно в плане "что еще не хватает". Можно было бы например добавить секцию ИТОГИ... но как ее счас реализовать я пока даже не придумал.

По бухгалтерии только одна пока таблица:
БИОстатки(ГраницаРасчета,СписокСчетов,СписокСубконто,ВидОстатков,ПрочиеУсловия)
ГраницаРасчета - дата, или документ по которую необходимо расчитать остатки. Для даты можно использовать модификатор ~, тогда граница расчитывается с учетом этой даты
СписокСчетов - Идентификатор вирт. таблицы для отбора по счетам (Например: #Счета60)
СписокСубконто - перечисление через запятую СубконтоХ (х-номер субконто) или видов субконто. Например: (Субконто1,Субконто2) или (Контрагенты,Договоры)
ВидыОстатков - перечисление через запятую видов остатков для таблицы. Возможные значения (Сумма,Количество,Валюта). Соответственно колонки существуют только по переданным видам. Пустое значение = Сумма + Количество + Валюта
ПрочиеУсловия - прочие условия для фильтрации данных в запросе. Например (РазделительУчета = :НашаФирма И Субконто1 = :ВыбКонтрагент).
« Последняя редакция: 11. Августа 2009 :: 08:39 - vandalsvq »  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 7 8 [9] 10 11 ... 60
ОтправитьПечать