Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Сдаюсь. Буду рисовать говнобазу (число прочтений - 8003 )
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Сдаюсь. Буду рисовать говнобазу
28. Февраля 2011 :: 07:56
Печать  
Я плакаю...
С начала года пытаюсь сделать на этой говноплатформе базу. Суть такова: переписываю работающую на 7.7 базу на 8.2. База простейшая - пяток таблиц, сильно связанных друг с другом. Нормализованная база. И во всех формах справочников (а их аж три ) - нужны фильтры, отборы, сортировка по полям, которые тянутся из остальных справочников.
В 7.7 это решается собственным класом, который на основании запроса рисует табличное поле с отборами, сортировками и т. д.
А в 8.2 - такого нет. И подобного нет. И хваленые управляемые формы при попытке скормить им запрос более чем к одной таблице показывают 4-10 строк вместо десятков тысяч.
И даже эмулировать справочник с помощью табличного поля невозможно: корреллированных подзапросов - нет. Возможности перехватить нажатие Ins и Del - нет. Возможности отработать клик на заголовке колонки табличного поля - нет. Даже свое меню по ПКМ для табличного поля, похоже, добавить нельзя без тыканья мышкой.

Остается одно: забить на нормализацию, добавлять в справочники дублирующие реквизиты (подзапросов-то нет), прописать заполнение... Чем и буду сейчас заниматься.
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #1 - 28. Февраля 2011 :: 09:17
Печать  
1. Нафига тебе УФ? Не умеешь - делай обычные, а они от 7.7 отличаются мало и только в лучшую сторону.
2. Процент "говна" в базе зависит только от аналогичного процента в голове разработчика... сама платформа 8.2 стала намного лучше, чем была 7.7 за исключением того, что в ней еще не применены усилия энтузиастов.

classic писал(а) 28. Февраля 2011 :: 07:56:
В 7.7 это решается собственным класом, который на основании запроса рисует табличное поле с отборами, сортировками и т. д.
А в 8.2 - такого нет. И подобного нет.

А вот это откровенная ложь - запросы и ТП там есть, а не хватать может только понимания, как этим пользоваться...

Задавай уже вопрос: что именно у тебя не получается?
  
Наверх
 
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #2 - 28. Февраля 2011 :: 10:22
Печать  
Dmitry The Wing писал(а) 28. Февраля 2011 :: 09:17:
Задавай уже вопрос: что именно у тебя не получается?

Хорошо. Вот вопрос: как сделать форму списка справочника на основании данных запроса, хорошо, без подзапросов - но с соединениями, минимум парой. С возможностью фильтрации и сортировки по данным из присоединенных таблиц.
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #3 - 28. Февраля 2011 :: 10:31
Печать  
classic писал(а) 28. Февраля 2011 :: 10:22:
Хорошо. Вот вопрос: как сделать форму списка справочника на основании данных запроса, хорошо, без подзапросов - но с соединениями, минимум парой. С возможностью фильтрации и сортировки по данным из присоединенных таблиц.

Также как и в семерке:
1. Грамотно составить запрос с необходимым числом соединений, подзапросов, сортировок и т.д.
2. Грамотно описать форму, кнопки, ТП, события и т.д.

Если не понимаешь, как составить запрос - попробуй выложить его семерочную версию...

P.S.: Сегодня я уже уехал домой...
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


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

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #4 - 28. Февраля 2011 :: 10:43
Печать  
classic писал(а) 28. Февраля 2011 :: 10:22:
Dmitry The Wing писал(а) 28. Февраля 2011 :: 09:17:
Задавай уже вопрос: что именно у тебя не получается?

Хорошо. Вот вопрос: как сделать форму списка справочника на основании данных запроса, хорошо, без подзапросов - но с соединениями, минимум парой. С возможностью фильтрации и сортировки по данным из присоединенных таблиц.


Объект ДинамическийСписок не спасет ?

этот самый ДинамическийСписок - это наше ТабличноеПоле, только в слегка урезанном варианте.

update:
какие кнопочки нажимать чтобы поработать с этим списком можно тут подсмотреть
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #5 - 28. Февраля 2011 :: 11:05
Печать  
Динамический список показывает всего несколько строк из результата работы запроса (до десяти, закономерности не выявил), хотя тот же запрос в консоли запросов возвращает их десятки тысяч. Что интересно, проверял на 8.2.12.96 и на 8.2. 13.(202, 205) - все равно, поведение не меняется.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


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

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #6 - 28. Февраля 2011 :: 11:13
Печать  
classic писал(а) 28. Февраля 2011 :: 11:05:
Динамический список показывает всего несколько строк из результата работы запроса (до десяти, закономерности не выявил), хотя тот же запрос в консоли запросов возвращает их десятки тысяч. Что интересно, проверял на 8.2.12.96 и на 8.2. 13.(202, 205) - все равно, поведение не меняется.


Этож какое-то не штатное поведение  Улыбка. Я так понимаю что такого быть не должно.

Явно "эта сволочь" (который динамический список) накладывает какие то свои фильтры  Подмигивание
Особенно если стоит признак "Динамическое считывание данных"

update: я думаю нужен текст запроса, для того чтобы победить (или подтвердить тезис про говноплатформу).
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #7 - 28. Февраля 2011 :: 11:46
Печать  
Код
Выбрать все
ВЫБРАТЬ
	Спр.Ссылка,
	Договор.Организация
ИЗ  Справочник.Арендодатели КАК Спр
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.Договор.Арендодатели КАК ТЧАрендодатели ПО ТЧАрендодатели.Арендодатель = Спр.Ссылка
	ЛЕВОЕ СОЕДИНЕНИЕ Документ.Договор КАК Договор ПО ТЧАрендодатели.Ссылка = Договор.Ссылка 


Ну хотя бы так - в крайне упрощенной форме...
Т. е. хотелось бы вытащить реквизит из шапки документа, в табличной тасти которого есть данный элемент справочника. Конечно, нужно вытаскивать организацию из последнего активного договора - но пусть хоть так заработает.

Сейчас вернулось строк - чуть меньше экрана. Гипотеза о условиях скорее всего верна, только не понятно, что оно там фильтрует.
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #8 - 28. Февраля 2011 :: 11:50
Печать  
Попробуй добавить IsNull() для Договор.Организация
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #9 - 28. Февраля 2011 :: 12:05
Печать  
быстрого поиска по колонке тоже нема Улыбка)
Тоже плююсь от снеговика пару недель.
  
Наверх
 
IP записан
 
lustin
1c++ power user
Отсутствует


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

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #10 - 28. Февраля 2011 :: 12:21
Печать  
classic писал(а) 28. Февраля 2011 :: 11:46:
Код
Выбрать все
ВЫБРАТЬ
	Спр.Ссылка,
	Договор.Организация
ИЗ  Справочник.Арендодатели КАК Спр
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.Договор.Арендодатели КАК ТЧАрендодатели ПО ТЧАрендодатели.Арендодатель = Спр.Ссылка
	ЛЕВОЕ СОЕДИНЕНИЕ Документ.Договор КАК Договор ПО ТЧАрендодатели.Ссылка = Договор.Ссылка 


Ну хотя бы так - в крайне упрощенной форме...
Т. е. хотелось бы вытащить реквизит из шапки документа, в табличной тасти которого есть данный элемент справочника. Конечно, нужно вытаскивать организацию из последнего активного договора - но пусть хоть так заработает.

Сейчас вернулось строк - чуть меньше экрана. Гипотеза о условиях скорее всего верна, только не понятно, что оно там фильтрует.


Попробуем...
Если ДС ведет себя также как и ТП, то для него важен КлючСтроки - чтобы накладывать ограничения при динамическом считывании.

Учитывая что управление КлючомСтроки от нас в явном виде скрыто, значит надо смотреть: "Динамичекий список -> Произвольный запрос -> Настройка", что стоит там в качестве отборов и сортировок

P.S. Хотя если честно интуитивно мне не нравится сам запрос (пока не знаю чем)





  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #11 - 28. Февраля 2011 :: 12:28
Печать  
А еще упрощенней
просто выборка из справочника без всяких соединений?
  

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


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #12 - 28. Февраля 2011 :: 12:32
Печать  
В отборах и сортировках ничего вообще - нужно добиться работы простого, а потом усложнять.
  
Наверх
 
IP записан
 
classic
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 330
Местоположение: г. Харьков
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #13 - 28. Февраля 2011 :: 12:34
Печать  
artbear писал(а) 28. Февраля 2011 :: 12:28:
А еще упрощенней
просто выборка из справочника без всяких соединений?

Да куда же еще упрощеннееУлыбка

Задача такова: в форме списка справочника показать организацию и еще пару реквизитов из последнего активного договора с данным арендодателем, с возможностью фильтрации и сортировки по всем этим полям.

upd. В данной задаче 99.99% договоров - по одному договору на арендодателя - т. е. даже простого соединения хватило бы, без ухищрений для отбора последнего активного. Это уже задел на будущее.

upd++ Да, просто выборка без соединений - работает. Но нафига он нужен, произвольный запрос, в котором нельзя делать соединения и подзапросы?
« Последняя редакция: 28. Февраля 2011 :: 13:49 - classic »  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Сдаюсь. Буду рисовать говнобазу
Ответ #14 - 01. Марта 2011 :: 04:09
Печать  
Eprst писал(а) 28. Февраля 2011 :: 12:05:
быстрого поиска по колонке тоже нема Улыбка)
Тоже плююсь от снеговика пару недель.

Поясни. Вроде бы поиск есть...

classic писал(а) 28. Февраля 2011 :: 12:34:
Задача такова: в форме списка справочника показать организацию и еще пару реквизитов из последнего активного договора с данным арендодателем, с возможностью фильтрации и сортировки по всем этим полям.

upd. В данной задаче 99.99% договоров - по одному договору на арендодателя - т. е. даже простого соединения хватило бы, без ухищрений для отбора последнего активного. Это уже задел на будущее.

upd++ Да, просто выборка без соединений - работает. Но нафига он нужен, произвольный запрос, в котором нельзя делать соединения и подзапросы?

У меня прекрасно строятся соединения и подзапросы, но вот в твоей задаче мне непонятно, как определить, что договор является последним активным...

P.S.: У запросов восьмерки сильно не хватает всяких там преобразований (чего стоит одно только отображение даты в строке), но связать и показать данные они вполне способны!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать