Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Создание ТЗ при "OLEDBCommand.ВыполнитьИнструкцию" (число прочтений - 6119 )
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Создание ТЗ при "OLEDBCommand.ВыполнитьИнструкцию"
06. Июня 2007 :: 15:18
Печать  
Нарвался на такую штуку - "вдруг" перестали работать ВСЕ прямые запросы.

Ковыряние кода ничего не дало. Самые простые запросы намертво валили 1С.

Проблема была в том, что в конфигурации был определен класс "ТаблицаЗначений" (наследник от "ValueTable") с целью добавления нового функционала в стандартный объект.
Получается, что при выполнении запроса 1С++ создает ТЗ так же как и СоздатьОбъект("ТаблицаЗначений"), но работать с ним также не может?
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #1 - 06. Июня 2007 :: 16:14
Печать  
Chieftain писал(а) 06. Июня 2007 :: 15:18:
при выполнении запроса 1С++ создает ТЗ так же как и СоздатьОбъект("ТаблицаЗначений")

точно
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #2 - 06. Июня 2007 :: 18:54
Печать  
А с какими еще объектами можно нарваться также?


ЗЫ.. Может можно такие варианты переделать на английские синонимы или на "ЗначениеИзСтроки"
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #3 - 07. Июня 2007 :: 06:08
Печать  
Наверняка со СпискомЗначений можно нарваться.

Насчет переделки внутреннего кода 1С++ при создании подобных объектов ИМХО есть смысл поправить.
  

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


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #4 - 07. Июня 2007 :: 07:22
Печать  
artbear писал(а) 07. Июня 2007 :: 06:08:
Наверняка со СпискомЗначений можно нарваться.

Насчет переделки внутреннего кода 1С++ при создании подобных объектов ИМХО есть смысл поправить.


Тока кто бы этим занялся?

ЗЫ.. посмотрел сейчас исходники 2.5.0.1 - там вроде совсем немного мест, где идет создание объектов с русским названием.
Есть ТЗ, ИТЗ, Структура.
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #5 - 08. Июня 2007 :: 10:24
Печать  
to all 1c++ developer

Так что с этим вопросом?
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #6 - 08. Июня 2007 :: 10:46
Печать  
А что будем делать, когда на форуме появится такой же вопрос, но про английский синоним?
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #7 - 08. Июня 2007 :: 10:53
Печать  
spock писал(а) 08. Июня 2007 :: 10:46:
А что будем делать, когда на форуме появится такой же вопрос, но про английский синоним?


Возможно... Но сейчас нет однообразия создания объектов внутри 1С++.
Плюс, насколько я знаю - большинство использует именно русские названия.

ЗЫ. Там ведь делов-то на пять минут
  
Наверх
ICQ  
IP записан
 
Палыч
1c++ power user
Отсутствует


I Love 1Cv8!

Сообщений: 217
Зарегистрирован: 19. Мая 2006
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #8 - 08. Июня 2007 :: 15:06
Печать  
Chieftain писал(а) 06. Июня 2007 :: 15:18:
в конфигурации был определен класс "ТаблицаЗначений" (наследник от "ValueTable")


Какой объект должен создаваться при создатьОбъект("ТаблицаЗначений") ?
Базовый или наследник?
  
Наверх
ICQ  
IP записан
 
Chieftain
Senior Member
****
Отсутствует


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #9 - 08. Июня 2007 :: 18:56
Печать  
Цитата:
Chieftain писал(а) 06. Июня 2007 :: 15:18:
в конфигурации был определен класс "ТаблицаЗначений" (наследник от "ValueTable")


Какой объект должен создаваться при создатьОбъект("ТаблицаЗначений") ?
Базовый или наследник?


В том то и дело, что наследник. И он создается. Но 1С++ не может с ним работать как с базовым объектом "ТаблицаЗначений"
  
Наверх
ICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #10 - 08. Июня 2007 :: 19:49
Печать  
Цитата:
Chieftain писал(а) 06. Июня 2007 :: 15:18:
в конфигурации был определен класс "ТаблицаЗначений" (наследник от "ValueTable")


Какой объект должен создаваться при создатьОбъект("ТаблицаЗначений") ?
Базовый или наследник?


Интересно а если я создам файл пользовательского класса "WSHELL.Script", наследник от стандартного WSHELL.Script где-нибудь в среде VBA интересно что должна создать инструкция CreateObject("WSHELL.Script")

По моему должна произойти исключительная ситуация и среда разработки должна мне сообщить об ошибке с именами классов


Я лично считаю что конструкция создатьОбъект("ТаблицаЗначений") должна однозначно создавть Базовый класс ТаблицаЗначений

Но это лишь моё мнение....

P.S> А подобные переопределения мы уже проходили (для построение универсального механизма встраиваемого в любую КОНФУ простым определением в файле defcls.prm), они (эти переопределения) в конечном итоге приведут к "танцам с бубном"....
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #11 - 09. Июня 2007 :: 08:15
Печать  
Цитата:
Я лично считаю что конструкция создатьОбъект("ТаблицаЗначений") должна однозначно создавть Базовый класс ТаблицаЗначений

Но это лишь моё мнение....  

Очень правильное мнение. Нельзя чтобы среда разработки позволяла переопределять имена классов путем объявления нового класса это ведет к трудноуловимым ошибкам программирования/проектирования. Кроме того среда разработки какраз таки и должна искать и указывать на подобные ошибки в коде.

А кто это вообще добавил в 1с++, имхо раньше этого небыло?
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #12 - 13. Июня 2007 :: 07:21
Печать  
1) ДмитрО, ИМХО добавил это ты Улыбка - когда написал код по ускоренному созданию объектов Улыбка
Там вроде сначала проводится поиск по имени среди классов, а уж потом все остальные объекты.

2) ИМХО подобная фича слишком опасна и в итоге вызовывает кучу непонятных багов.
Хотя иногда очень хочется ее использовать, особенно в типовых конфах, код которых менять не хочется Улыбка
  

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


___

Сообщений: 498
Местоположение: Тула
Зарегистрирован: 15. Февраля 2007
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #13 - 13. Июня 2007 :: 07:56
Печать  
artbear писал(а) 13. Июня 2007 :: 07:21:
1) Хотя иногда очень хочется ее использовать, особенно в типовых конфах, код которых менять не хочется Улыбка


Именно это преимущество я и видел... тока все похоже против
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Создание ТЗ при "OLEDBCommand.ВыполнитьИнструк
Ответ #14 - 13. Июня 2007 :: 07:56
Печать  
artbear писал(а) 13. Июня 2007 :: 07:21:
1) ДмитрО, ИМХО добавил это ты Улыбка - когда написал код по ускоренному созданию объектов Улыбка
Там вроде сначала проводится поиск по имени среди классов, а уж потом все остальные объекты.

А причем тут код ускорения создания объектов? Он ведь ускоряет только то, что регистрируется.. А я говорил о том, что вообще нельзя регистрировать если такое имя уже зарегистрировано.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать