Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Отбор в табличной части документа (число прочтений - 7886 )
spag10
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 18. Декабря 2007
Отбор в табличной части документа
19. Декабря 2007 :: 07:40
Печать  
Здравствуйте! Можно ли с помощью 1С++ реализовать отбор строк в табличной части документа? То есть чтобы строки, не удовлетворяющие определенному критерию, на форме не отображались. Или стоит помучать таблица значений в режиме редактирования (была такая обработка где-то). Пользователи интенсивно редактируют данные в многострочной части и интенсивно пользуются отбором. В документе может быть до 30000 строк. Если использовать дополнительную таблицу значений, в которую выгружать скрываемые строки с удалением их из документа, то работает очень медленно.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Отбор в табличной части документа
Ответ #1 - 19. Декабря 2007 :: 07:54
Печать  
spag10 писал(а) 19. Декабря 2007 :: 07:40:
Можно ли с помощью 1С++ реализовать отбор строк в табличной части документа? То есть чтобы строки,  удовлетворяющие определенному критерию, на форме  отображались.Пользователи интенсивно редактируют данные в многострочной части и интенсивно пользуются отбором. В документе может быть до 30000 строк.

Можно есть два способа
1 способ выгружать из прямого запроса в ТаблицуЗначений. При этом Таблица значений
невидима. ТЗ становиться видимой только после выгрузки данный
2 способ использовать табличное поле 1с++.

Также можно подумать чтобы хранить Табличную часть во временной таблице sql
или временной таблице sqlite.

Вопрос эти документы с  30 000 строк проводяться или нет ??
  
Наверх
 
IP записан
 
spag10
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 18. Декабря 2007
Re: Отбор в табличной части документа
Ответ #2 - 19. Декабря 2007 :: 07:59
Печать  
Z1 писал(а) 19. Декабря 2007 :: 07:54:
Вопрос эти документы с  30 000 строк проводяться или нет ??


Нет.
  
Наверх
 
IP записан
 
spag10
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 18. Декабря 2007
Re: Отбор в табличной части документа
Ответ #3 - 19. Декабря 2007 :: 08:01
Печать  
Я вот ещё подумал тут.
Может сделать индексированную таблицу, добавить индекс для колонок, участвующих в отборе, применять к ним фильтр и эту таблицу выгружать в документ?
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Отбор в табличной части документа
Ответ #4 - 19. Декабря 2007 :: 08:02
Печать  
spag10 писал(а) 19. Декабря 2007 :: 07:59:
Z1 писал(а) 19. Декабря 2007 :: 07:54:
Вопрос эти документы с  30 000 строк проводяться или нет ??


Нет.


Тогда можно рекомендовать еще одно решение табличную часть этого документа храни в отдельном справочнике.
  
Наверх
 
IP записан
 
spag10
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 18. Декабря 2007
Re: Отбор в табличной части документа
Ответ #5 - 19. Декабря 2007 :: 08:04
Печать  
Z1 писал(а) 19. Декабря 2007 :: 07:54:
2 способ использовать табличное поле 1с++.


А как его здесь можно использовать? Я просто 1С++ только три дня назад нашел и не очень в нем разбираюсь. Во хелпе прочитал про него, но пока еще не пробовал вживую.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Отбор в табличной части документа
Ответ #6 - 19. Декабря 2007 :: 08:05
Печать  
spag10 писал(а) 19. Декабря 2007 :: 08:01:
Я вот ещё подумал тут.
Может сделать индексированную таблицу, добавить индекс для колонок, участвующих в отборе, применять к ним фильтр и эту таблицу выгружать в документ?

чтобы что-то рекомендовать надо знать всю задачу.
неизвесно даже какая у тебя база ( dbf, sql) и твоя задаче чем подробней постановка задаче тем лучше тебе что-то можно посоветовать.
Отдельный вспомагат док это хорошо но проблема как все это обратно переносить
в табличную часть основного документа и при этом еще и менять ИТЗ.
  
Наверх
 
IP записан
 
spag10
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 18. Декабря 2007
Re: Отбор в табличной части документа
Ответ #7 - 19. Декабря 2007 :: 08:12
Печать  
Да, извиняюсь.
База в dbf. Сама проблема в том, чтобы сделать множественный отбор в табличной части документа. Реквизиты табличной части - справочники и числа. Пользователи работают так:
Открыли документ. Применили фильтр к табличной части. Чего-нибудь поизменяли (отредактировали, добавили строку, удалили строку). Потом опять применяют фильтр для ВСЕХ строк документа (то есть каждый раз нужно фильтрацию убирать и применять ее ко всем строкам табличной части).
Соответственно нужно оставить функциональность по редактированию табличной части, поэтому использовать таблицу значений на форме неудобно.
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Отбор в табличной части документа
Ответ #8 - 19. Декабря 2007 :: 10:11
Печать  
Да не вопрос.
у мене в ТЧ использется то что ты хочешь.
При открытии перегружаем ТЧ и сбрасываем флаг модифицированности.
а потом при закрытии востанавливаем до нужново состояния с учетов того что дыло внесено в ТЧ.
Если что то стучись.167643923
  
Наверх
 
IP записан
 
spag10
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 18. Декабря 2007
Re: Отбор в табличной части документа
Ответ #9 - 19. Декабря 2007 :: 11:38
Печать  
А нельзя ли как-нибудь перехватить отрисовку строки в табличной части и при надобности эту отрисовку не производить? Типа сделать строку невидимой.
При таком варианте не нужно будет заморачиваться с дополнительными таблицами, которые, судя по всему, приходится использовать во всех остальных способах.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Отбор в табличной части документа
Ответ #10 - 19. Декабря 2007 :: 12:16
Печать  
При отрисовки делать их невидимыми, на сколько я знаю, не получится. Есть такая идея:
Код
Выбрать все
Перем итТабЧасть;

//============================================================
Процедура УстановитьФильтр()
	итТабЧасть.Загрузить(Контекст);
	итТабЧасть.ДобавитьИндекс("Сотрудники","Сотрудники");
	итТабЧасть.УстановитьФильтр(КлючМин, КлючМакс, "Сотрудники");

	итТабЧасть.Выгрузить(Контекст, "Сотрудники");
	итТабЧасть.УдалитьСтроки("Сотрудники");
КонецПроцедуры	// УстановитьФильтр

//============================================================
Процедура Применить()
	итСФильтром=СоздатьОбъект("ИндексированнаяТаблица");
	итСФильтром.Загрузить(Контекст);
	итТабЧасть.Объединить(итСФильтром);
	итТабЧасть.Выгрузить(Контекст);
КонецПроцедуры	// Применить

итТабЧасть=СоздатьОбъект("ИндексированнаяТаблица"); 


т.е. у тебя на форме есть кнопка, которая устанавливает некий фильтр по колонке "Сотрудники". И есть кнопка "Применить", которую ОБЯЗАТЕЛЬНО надо жать после каждого редактирования отфильтрованной МЧ.
  
Наверх
 
IP записан
 
spag10
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 18. Декабря 2007
Re: Отбор в табличной части документа
Ответ #11 - 19. Декабря 2007 :: 13:11
Печать  
Спасибо, буду пробовать. Varelchik, кстати, такую же идею предложил. Вроде должно сработать.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать