Переключение на Главную Страницу Страницы: 1 ... 42 43 [44] 45 46 ... 60 ОтправитьПечать
Очень популярная тема (более 25 ответов) Класс "ПрямойЗапрос" (число прочтений - 314466 )
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #645 - 13. Мая 2010 :: 11:44
Печать  
Тип: Дата, Документ.

Пы.сы. что касается позиции документа это позже. Когда я соединения добью.
  

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


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #646 - 13. Мая 2010 :: 12:33
Печать  
vandalsvq писал(а) 13. Мая 2010 :: 04:43:
Пы.сы. а разве ты пользуешься моим классом?

Нет. Если бы пользовался, соединения там уже были бы.  Улыбка

Подозреваю, что "локальный" интерес многоуважаемого Ивана (и надеюсь не "временный") к ПрямомуЗапросу вызван моими сообщениями в теме "Конструктор запросов 1C++ (SQL) v3.26"
http://www.1cpp.ru/forum/YaBB.pl?num=1148127139/180#180

Вообще, уважаемые Александр и Иван, как думаете, имеет смысл быть связке ПрямогоЗапроса и Конструктора/Консоли запросов? Мне кажеться, эта связка может быть довольно перспективна...
Под связкой я понимаю:
1) запрос, построенный с помощью Конструктора запросов - корректно отрабатывается ПрямымЗапросом;
2) Консоль запросов может в качестве выполнителя использовать ПрямойЗапрос (хотя если честно - консоль почти не использовал, поэтому могу быть не совсем "в теме").
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #647 - 13. Мая 2010 :: 12:41
Печать  
Связку уже сейчас можно сделать, как предложил Александр:
Цитата:
Если только опять таки кто-то не сделает надстройку для "предварительного парсинга".

Но это получается быть еще одному парсингу (доп. временные затраты на сопровождение, возможные ошибки и прочее + имхо теряется прозрачность) - не слишком ли много их будет в итоге? Улыбка
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #648 - 13. Мая 2010 :: 13:34
Печать  
zar писал(а) 12. Мая 2010 :: 15:17:
Действительно - парсинг проходит в два этапа. Сделано это исключительно для того чтобы сделать параметр "Соединение" необязательным. Как с помощью рег. выражений отловить оба варианта входных параметров за один проход - я не  знаю Улыбка Да и реально ли?


В который раз убеждаюсь что ВСЕ реально! Улыбка
Спасибо Ивану! Улыбка
А вообще считал что при парсинге ВТ остатков с 5 параметрами, если в запросе будет 4 параметра и после определения ВТ в запросе не будет ни одной запятой - то ничего не найдется... Рад что это не так!
  
Наверх
 
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #649 - 13. Мая 2010 :: 14:17
Печать  
vandalsvq писал(а) 13. Мая 2010 :: 08:49:
В общем кто хочет выступить тестером?


хм... у меня не работает ничего из того что раньше работало... Печаль
1) если параметров меньше (нет Соединения) - то при парсинге в качестве соединения попадает вся строка после определения ВТ до последующей запятой
2) если параметров максимум (с Сеодениями) - то не учитывается ситуация когда измерение может стоять в конце строки и после него нет ни одного символа (парсер просто не находит это значение для замены на ИД) например Соединения = "inner join Справочник.Контрагенты as СпрКонтрагенты on  СпрКонтрагенты.id = Клиент". Именно поэтому я до парсинга Соединений добавлял в конце разделитель строк
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #650 - 13. Мая 2010 :: 14:20
Печать  
Ну вот видишь какие-то ошибки пошли, это нормально. Все отладится, скоро Улыбка.

А параметры хоть и не обязательные, но желательные. Думаю тут и Иван согласится. Ошибки возможны. Шаблон параметра там сложный.
Сегодня не мой день
  

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


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #651 - 13. Мая 2010 :: 14:31
Печать  
Мда... нет никаких магических трех строчек к моему великому сожалению... Печаль
Иван просто не там закоментарил доп. вызов парсера с 4мя вх. параметрами - он закоментарил вызов при парсинге ВТ ОстаткиОбороты, а надо было в "ПодготовитьТекстЗапроса"
Счастье не состоялось Улыбка Вернее так - оно откладывается Улыбка
Кстати, после того как закоментарил доп. вызов парсера с 4мя вх. параметрами в "ПодготовитьТекстЗапроса" - запрос у меня отработал на ура... и я уже было обрадовался... но нет... в этом случае парсинг ВТ вообще не выполнился, а выполнился он уже средствами 1С++
  
Наверх
 
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #652 - 13. Мая 2010 :: 14:54
Печать  
В общем zar, советую тебе подождать до завтра, сегодня ночью будет правильная версия. Наверное Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #653 - 13. Мая 2010 :: 14:58
Печать  
zar писал(а) 13. Мая 2010 :: 14:31:
Мда... нет никаких магических трех строчек к моему великому сожалению... Печаль
Иван просто не там закоментарил доп. вызов парсера с 4мя вх. параметрами - он закоментарил вызов при парсинге ВТ ОстаткиОбороты, а надо было в "ПодготовитьТекстЗапроса"
Счастье не состоялось Улыбка Вернее так - оно откладывается Улыбка
Кстати, после того как закоментарил доп. вызов парсера с 4мя вх. параметрами в "ПодготовитьТекстЗапроса" - запрос у меня отработал на ура... и я уже было обрадовался... но нет... в этом случае парсинг ВТ вообще не выполнился, а выполнился он уже средствами 1С++

Ээ.. ну, может с наскоку не разобрался.. Нерешительный Но второй проход там точно лишний. Тестовую обработку для 4 и 5 параметров для SQL можешь сделать? Я классом не пользуюсь, могу чего-то не учитывать.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #654 - 13. Мая 2010 :: 15:02
Печать  
Иван, там если делать прерывание как ты написал то парсинг двух одинаковых ВТ (подряд в текста) проходить не будет. Но если прерывание не делать тогда получается то что получается (он лишнего съедает). Я по твоим следам Acc изучая думаю что осилю. Если что на помощь позову... можно?
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #655 - 13. Мая 2010 :: 15:19
Печать  
vandalsvq писал(а) 13. Мая 2010 :: 15:02:
Если что на помощь позову... можно?

Конечно. Там без 100 грамм не разберёшься.  Смех
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
zar
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #656 - 13. Мая 2010 :: 15:28
Печать  
возможно Иван имел ввиду такой вариант магических строчек.. парсинг однопроходный... правда строчек не три оказалось Улыбка
  

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


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

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

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
vandalsvq
1c++ power user
Отсутствует


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

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #658 - 13. Мая 2010 :: 20:20
Печать  
В общем в связи с очередным потеряным днем получается следующее:
- версия 1.06.ххх - официальная версия
- версия 1.07.ххх - beta версия

Выход новой версии:
1.06.007 от 14.05.10 г.
- Исправлена ошибка виртуальной таблицы РегистрОбороты при формировании по регистру с типом «Обороты» и периодичностью Декада.
- Исправлена ошибки формирования виртуальных таблиц по бухгалтерской подсистеме при наличии более 1-го плана счетов.

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

Версия 1.07.001 будет выкладываться в сообщениях. Версия 1.06.ххх в топе темы.

Ошибки прошу указывать вместе с версией которой пользуетесь.

И самое главное: НЕОБЯЗАТЕЛЬНЫХ ПАРАМЕТРОВ НЕТ. Все параметры должны быть размечены в тексте запроса.
  

1Cv7_query_107001_001.rar ( 273 KB | Загрузки )

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


1C++ rocks!

Сообщений: 82
Местоположение: Киров
Зарегистрирован: 17. Августа 2009
Пол: Мужской
Re: Класс "ПрямойЗапрос"
Ответ #659 - 14. Мая 2010 :: 05:50
Печать  
мда... действительно вторую ВТ парсер уже не находит.... хотя вот что странно - специально разобрал 2 ВТ с текущим шаблоном поиска в Regex Builder'е (http://regexbuilder.codeplex.com/) - там все разбирается нормально независимо от кол-ва параметров... причем такое ощущение что как раз нахождение начала второй ВТ является окончанием для парсинга первой... мда... маловато опыта еще в рег. выражениях.. Печаль

в Regex Builder'е так же все... стоит только после второй ВТ поставить "," - и все... вторую ВТ уже не парсит...
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 42 43 [44] 45 46 ... 60
ОтправитьПечать