Опрос
Опрос закрыт Тема Опроса: Поправить работу метапарсера?
bars   pie
*** Этот Опрос был завершен ***


Да    
  3 (33.3%)
Нет    
  6 (66.7%)




Всего голосов: 9
« Создано: spock : 03. Апреля 2007 :: 04:41 »
Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Нужно ли поправить метапарсер для такого рода QRY? (число прочтений - 6211 )
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Нужно ли поправить метапарсер для такого рода QRY?
03. Апреля 2007 :: 04:40
Печать  
Например, запрос такого вида не проходит через метапарсер:
Код
Выбрать все
SELECT $ДокументСтроки.РасходнаяНакладная.iddoc
FROM $ДокументСтроки.РасходнаяНакладная (nolock)
 


Ругается на iddoc, что нет такого метаимени. И я с ним согласен.
Если iddoc заменить на идентификатор из метаданных, то все ОК.
Конечно, если переписать запрос через алиасы, то такой проблемы не будет:
Код
Выбрать все
SELECT Dt.iddoc
FROM $ДокументСтроки.РасходнаяНакладная as Dt (nolock)
 


Но тогда требуется уточнить документацию и отразить такой момент.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #1 - 03. Апреля 2007 :: 04:44
Печать  
ИМХО - поведение верное.
Нужно просто поправить доку, указав этот момент.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #2 - 03. Апреля 2007 :: 04:47
Печать  
artbear писал(а) 03. Апреля 2007 :: 04:44:
ИМХО - поведение верное.

Нука, а почему ты так считаешь?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #3 - 03. Апреля 2007 :: 05:13
Печать  
Мое имхо - меня устроят оба варианта Улыбка
но ты дал только два варианта - да или нет Улыбка
И я выбрал нет  Смех
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #4 - 03. Апреля 2007 :: 07:54
Печать  
Не хватает варианта 'хз',   Подмигивание
т.к. через метапарсер проходит такой
Код
Выбрать все
SELECT $ДокументСтроки.РасходнаяНакладная .iddoc
FROM $ДокументСтроки.РасходнаяНакладная (nolock) 

  

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



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #5 - 03. Апреля 2007 :: 18:14
Печать  
Я за! Облегчит чтение кода...



Вопрос не по теме. А почему Select $Константа.КакойНиТоПрописанныйОбъект (например справочник), не возвращает значение данной константы?
Может быть логичнее возвращать? Улыбка
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #6 - 03. Апреля 2007 :: 22:19
Печать  
Непривычно ты предлагаешь Улыбка
Главное шоп работало...
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #7 - 04. Апреля 2007 :: 05:30
Печать  
IMHO, это не облегчение кода, а восстановление логичного поведения.
Получается, что, начав писать, запрос без алиасов, получаешь ошибку, которой не должно быть.

По мне, так выражение
Код
Выбрать все
$ДокументСтроки.РасходнаяНакладная.IDDOC 


должно с таким же успехом транслироваться, как и
Код
Выбрать все
$ДокументСтроки.РасходнаяНакладная.Товар 

  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #8 - 04. Апреля 2007 :: 05:54
Печать  
гипотетически представим наличие реквизита документа с идентификатором iddoc
  

1&&2&&3
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #9 - 04. Апреля 2007 :: 05:57
Печать  
trad писал(а) 04. Апреля 2007 :: 05:54:
гипотетически представим наличие реквизита документа с идентификатором iddoc

Замечательная причина Улыбка
+1
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #10 - 04. Апреля 2007 :: 06:22
Печать  
Гипотетически еще нужно представить реквизиты:
ROW_ID
LINENO_
IDDOC
PERIOD
ACTNO
DEBKRED
IDDOCDEF
DATE_TIME_IDDOC
ID
CODE
DESCR
ISMARK
VERSTAMP
PARENTEX
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #11 - 04. Апреля 2007 :: 07:29
Печать  
ну да, и их тоже
  

1&&2&&3
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #12 - 04. Апреля 2007 :: 07:44
Печать  
$ДокументСтроки.РасходнаяНакладная.<ХитроеПоле>

Если <ХитроеПоле> реквизит метаданных, то резольвим как метаданные.
Если <ХитроеПоле> не реквизит метаданных, то валится исключение (а оно валится), которое ловим и проверяем <ХитроеПоле> на принадлежность списку внутренних полей.
Если <ХитроеПоле> не метаданные и не принадлежит списку полей, то отправляем исключение дальше.

Что за детсад? Все уже продумано. Улыбка
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #13 - 04. Апреля 2007 :: 08:33
Печать  
spock писал(а) 04. Апреля 2007 :: 07:44:
Что за детсад? Все уже продумано. Улыбка

Улыбка
Никто и не спорит - реализация, конечно же, очевидна.
Думаешь, при реализации метапарсера, DmitrO не прорабатывал эту ситуацию?
Дело, имхо, всеже в разделении понимания метаимен и не метаимен.
Методолгия типа...
Может я, конечно, заблуждаюсь.
  

1&&2&&3
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #14 - 04. Апреля 2007 :: 08:36
Печать  
Если честно, то эта ветка как раз на DmitrO и была расчитана.
А голосУвалка для вида Улыбка
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #15 - 04. Апреля 2007 :: 09:26
Печать  
По поводу неточности документации.
В документации написано что так идет обращение к реквизитам объектов метаданных. Поля типа iddoc не реквизиты метаданных, так что считаю что в доке все правильно.

По поводу расширения функционала парсера.
1)При наличии реквизита с именем IsFolder в иерархическом справочнике, программисту достаточно легко сделать ошибку в запросе (толи ставить $ толи нет), которую парсер не найдет, ее вообще может никто не заметить долгое время. Считаю что это нехорошо. Компиляторы/парсеры должны искать ошибки - это важнейшая их работа.
2)Наличие внутренних полей в таблицах может зависеть от других значений свойств объекта метаданных. spock, ты готов уложить эту логику в парсер?
Я был не готов, и учитывая 1 пункт отказался от этого.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #16 - 04. Апреля 2007 :: 13:44
Печать  
на этом и порешим.
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #17 - 04. Апреля 2007 :: 13:53
Печать  
чета я не понял.. я ведь тебе вопрос задал, а ты сразу в кусты.. неужели я так страшен?
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #18 - 04. Апреля 2007 :: 14:01
Печать  
Справедливости ради, надо заметить, что когда-то давно, этот вопрос поднимался и обсуждался на итленде, и даже вроде как было выработано что-то, и даже я согласился выработанное решение закодить, при условии что активист, который это предлагал, разработает и предоставит мне подробную информацию об условиях наличия внутренних полей в таблицах.. но активист так ничего и не предоставил, судя по всему просто забил на это.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #19 - 04. Апреля 2007 :: 14:27
Печать  
DmitrO писал(а) 04. Апреля 2007 :: 13:53:
а ты сразу в кусты..

Ты не поддерживаешь + народ большинством проголосовал против = не требуется.
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Нужно ли поправить метапарсер для такого рода
Ответ #20 - 04. Апреля 2007 :: 14:32
Печать  
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать