Имя: Пароль:
1C
1С v8
Проверка заполнения колонки в ТЧ
0 mzelensky
 
01.12.11
14:52
Доброго времени суток!
Допустим имеется ТЧ с 10 колонками и 50 строками. Колонки могут быть заполнены, а могут быть пустыми.

Подскажите плиз, как БЫСТРО/ОПТИМАЛЬНО определить какие из колонок пустые (т.е. не имею значения ни в одной из строк) ?!
1 Buster007
 
01.12.11
14:54
НайтиСтроки()?
2 чувак
 
01.12.11
14:55
А значения в колонках какого типа?
3 Defender aka LINN
 
01.12.11
14:56
Запросом, например.
4 mzelensky
 
01.12.11
14:57
(1) Типа:

ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Колонка1", 0);
НайденныеСтроки = Состав.НайтиСтроки(ПараметрыОтбора);

а потом на количество проверять?!

А еще быстрее?
5 mzelensky
 
01.12.11
14:57
(2) число
6 Defender aka LINN
 
01.12.11
14:58
(5) ТЗ.Итог("Колонка") = 0.
Ну, если не может быть ситуации, что в одной строке 1, а в другой -1 :)
7 DrShad
 
01.12.11
14:58
Итог() если нет отрицательных
8 чувак
 
01.12.11
14:59
(5) А так?
ТЧ.Итог(ИмяКолонки) = 0
9 mzelensky
 
01.12.11
14:59
(5) точнее не так - колонки идет парами. Т.е. Колонка1_1, Колонка1_2, Колонка2_1, Колонка2_2.

У первой тип сторока у второй число
10 Buster007
 
01.12.11
15:00
а я думал что в одной колонке может быть как заполнены, так и не заполнены и надо показать в каких строках не заполнено )
11 mzelensky
 
01.12.11
15:00
(8) а если проверять с типом "строка" ?
12 mzelensky
 
01.12.11
15:01
(10) не, меня интересуют не строки ,а колонки. Мне нужно выяснить каки колонки ПУСТЫЕ и просто скрыть их.
13 Buster007
 
01.12.11
15:05
да проверяй тогда первую строку на пустые значения и всё.
14 Buster007
 
01.12.11
15:06
да 1 строка будет летать, хоть как сделай. Не заметишь.
15 DrShad
 
01.12.11
15:12
(12) делай копию таблицы, сортируй, получай последнюю/первую строку (в зависимости от сортировки) и заполненности ячейки узнаешь какая колонка пустая, потом опять сортировка но по другой колонке - получив ИМЯ колонки в базовой таблице скрывай
16 vmv
 
01.12.11
15:14
к 100-му сообщению тут будет запрос с вложенными или временными таблицами и будет утверждено, что это супер.

старайтесь - вы уже приближаеетесь к оптиме)
17 vmv
 
01.12.11
15:16
(15) аццке ресурсно затратно, как-то лет 10 назаз на Т1С була тема про оптимальное удаление строк строк ТЗ в 7.7.

Там было доказано, что использовение сортировок и сверток - ппц накладно, в 8.1, 8.2 думаю тоже самое
18 DrShad
 
01.12.11
15:18
(17) есть лучше вариант? слушаем
19 DrShad
 
01.12.11
15:18
(17) по-крайней мере сортировке пофигу на тип колонки
20 mzelensky
 
01.12.11
15:19
Я думаю все-таки запросом (примерно так, доводить потом буду). Обработать нужно итоговую строчку:

ВЫБРАТЬ
   ТСДТабличнаяТСД.Ссылка КАК Ссылка,
   ВЫБОР
       КОГДА ТСДТабличнаяТСД.Эл1Наимен = ""
           ТОГДА 0
       ИНАЧЕ 1
   КОНЕЦ КАК Эл1,
   ВЫБОР
       КОГДА ТСДТабличнаяТСД.Эл2Наимен = ""
           ТОГДА 0
       ИНАЧЕ 1
   КОНЕЦ КАК Эл2,
   ВЫБОР
       КОГДА ТСДТабличнаяТСД.Эл3Наимен = ""
           ТОГДА 0
       ИНАЧЕ 1
   КОНЕЦ КАК Эл3,
   ВЫБОР
       КОГДА ТСДТабличнаяТСД.Эл4Наимен = ""
           ТОГДА 0
       ИНАЧЕ 1
   КОНЕЦ КАК Эл4,
   ВЫБОР
       КОГДА ТСДТабличнаяТСД.Эл5Наимен = ""
           ТОГДА 0
       ИНАЧЕ 1
   КОНЕЦ КАК Эл5
ИЗ
   Документ.ТСД.ТабличнаяТСД КАК ТСДТабличнаяТСД
ГДЕ
   ТСДТабличнаяТСД.Ссылка = &Док
ИТОГИ
   СУММА(Эл1),
   СУММА(Эл2),
   СУММА(Эл3),
   СУММА(Эл4),
   СУММА(Эл5)
ПО
   Ссылка
21 чувак
 
01.12.11
15:20
(20) А как быть с числами?
22 mzelensky
 
01.12.11
15:21
(20) колонка в ТЧ тоже называется "Эл1", "эл2" и т.д. ... так что обращаться удобно будет!
23 mzelensky
 
01.12.11
15:22
(21) я этот момент уточню у заказчика. Там проверка будет ток по одной из колонки (либо по колонки с числом, либо по колонки со строкой). В зависимости от типа и буду проверять.