Имя: Пароль:
1C
 
Как проверить пусто ТабличноеПоле или нет?
0 slnes
 
30.08.07
05:56
Как проверить пусто ТабличноеПоле или нет?
1 Андрюха
 
30.08.07
05:57
Пробежаться по содержимому
2 slnes
 
30.08.07
06:02
Конкретней пожалуйста.
3 evd
 
30.08.07
06:06
Количество строк можно посчитать
4 slnes
 
30.08.07
06:24
Напишите код пожалуйста.
5 Андрюха
 
30.08.07
06:24
(2) В смысле "конкретней"? Тебе код написать что-ли?
6 slnes
 
30.08.07
06:28
(5) да
7 Андрюха
 
30.08.07
06:32
(6) Держи:
Еслив ЭлементыФормы.ТабличноеПоле.Строки.Количество() = 0 Тогда
   Сообщить("Поле пустое");
КонецЕслив;
8 Андрюха
 
30.08.07
06:33
Или в цикле, если нужна проверка на содержимое
9 slnes
 
30.08.07
06:46
Ошибка получается
{Документ.ПлатежныйОрдерПоступлениеДенежныхСредств.Форма.ФормаДокумента(264)}: Поле объекта не обнаружено (Строки)
       Если ЭлементыФормы.РазбивкаПоФондам.Строки.Количество() = 0 Тогда
10 Андрюха
 
30.08.07
06:48
У тебя это ТабличноеПоле или ТабличныйДокумент?
11 slnes
 
30.08.07
06:52
ТабличноеПоле, которое вместе со своими колонками привязанна к ТабличнаяЧасть
12 Андрюха
 
30.08.07
06:54
А че ты в Документ полез? Я ж тебе написал, что ЭлементыФормы!
13 Андрюха
 
30.08.07
06:54
Или тебе ТабличнуюЧасть проверить нужно?
14 Андрюха
 
30.08.07
06:55
(13)+ Тогда так:
Документ.ПлатежныйОрдерПоступлениеДенежныхСредств.ИмяТабличнойЧасти.Строки.Количество
15 Андрюха
 
30.08.07
06:55
Скобки забыл
16 slnes
 
30.08.07
06:56
ТабличноеПоле находиться на форме Документ.ПлатежныйОрдерПоступлениеДенежныхСредств.
Я его туда добавил, надо очень
17 Андрюха
 
30.08.07
06:57
(16) В модуле документа проверяй, когда он открыт
18 Diman000
 
30.08.07
06:57
(9)
Встаем в отладчике в модуле формы, нажимаем Shift-F9, пишем в окне ЭлементыФормы и внимательно изучаем вышедший список
А вообще, если не сможешь сам решить вопрос в (0) не получится из тебя 1Сника.
19 TormozIT
 
гуру
30.08.07
06:58
Для таблицы значений или табличной части пойдет такой способ
ЭлементыФормы.РазбивкаПоФондам.Значение.Количество()
20 slnes
 
30.08.07
06:58
(7) и (13) тоже самое.
У меня табличное поле ссылается на табличную часть и имена у низ одинаковые.
21 Андрюха
 
30.08.07
07:05
Если не из открытого документа работаешь, то должен сначала выбрать конкретный документ, а не лезть в абстрактный Документ.ПлатежныйОрдерПоступлениеДенежныхСредств
22 slnes
 
30.08.07
07:08
(21) из открытого документа работаю
(19) это работает
спасибо
23 slnes
 
30.08.07
07:10
24 slnes
 
30.08.07
07:11
Темы так похожи, а как до элемента добраться все равно не знаю
25 Андрюха
 
30.08.07
07:16
До какого элемента?
26 slnes
 
30.08.07
07:18
3 элемента, дальше я сам из вышесказанного
27 ShoGUN
 
30.08.07
07:27
(26) 3 элемента чего? 3 табличных части? колонки? строки? До чего вообще добраться надо?
А вообще - отладчик и СП в зубы и вперед...
28 slnes
 
30.08.07
07:29
Нужно добраться до всех элементов.
29 slnes
 
30.08.07
07:32
Т.е.

-----------------------------------
|   Колонка1            |Колонка2 |
-----------------------------------
| Элемент11             |  12     |
|     21                |  22     |
...................................
|     n1                |  nn     |
-----------------------------------
Нужно получить 11,12 .. nn
30 AndrewHoUs
 
30.08.07
08:51
Для каждого ТекСтрока Из НазваниеТабличнойЧасти Цикл
   Если ТекСтрока.Колонка2 = null Тогда
   КонецЕсли;
КонецЦикла;
31 AndrewHoUs
 
30.08.07
08:53

Для Каждого ТекСтрока Из НазваниеТабличнойЧасти Цикл
   Если ТекСтрока.Колонка2 = null Тогда
       //Пустое значение нашли
   КонецЕсли;
КонецЦикла;
32 ShoGUN
 
30.08.07
08:53
(30) Да ладно? Сам-то проверял?
33 AndrewHoUs
 
30.08.07
09:01
(32) Для тех, кто в танке: вместо "НазваниеТабличнойЧасти" надо подставлять название табличной части документа как оно задано в конфигураторе.
34 ShoGUN
 
30.08.07
09:03
(33) Для тех кто на бронепоезде, повторяю вопрос - Сам-то проверял?
35 AndrewHoUs
 
30.08.07
09:06
(34) Ну ты точно в танке )
Вместо null 0
36 ShoGUN
 
30.08.07
09:08
(35) Какой null? Какой 0? А если колонка строковая? И вообще, если колонок штук 200, что делать?
37 ShoGUN
 
30.08.07
09:09
+(36) Откуда вообще в колонке null возьмется?
38 AndrewHoUs
 
30.08.07
09:11
(36) Танкист, посмотри (29) :)
39 ShoGUN
 
30.08.07
09:14
(38) И что? Элемент обязан быть числом? Хрен знает, что он там хранит. Колонок показано 2, хрен знает, сколько их. Правильней количество строк считать, а проверка на содержимое вообще идет лесом. К тому же, это 2 разных вопроса, смотри тему из (23), танкист. :)
40 AndrewHoUs
 
30.08.07
09:21
(39) Кароче, сейчас я тебе сформулирую вопрос за автора. Потому что для того, чтобы правильно сформулировать вопрос надо знать 80% ответа на него.
Вопрос: Нужно проверить табличную часть документа на предмет заполнения обязательного реквизита табличной части колонкаХ (к примеру сумма).
Ответ нужно перебрать коллецию строк указанной табличной части документа и проверить для каждой реквизит КолонкаХ

Для Каждого ТекСтрока Из НазваниеТабличнойЧасти Цикл
   Если ТекСтрока.КолонкаХ = 0 Тогда // :P
       //Пустое значение нашли

   КонецЕсли;
КонецЦикла;
41 DimG
 
30.08.07
09:23
А как номер текущей (выделенной) строки табличного поля определить?
42 AndrewHoUs
 
30.08.07
09:27

ТекущаяСтрокаВФорме = ЭлементыФормы.НазваниеТабличнойЧасти.ТекущиеДанные;

Данная конструкция может использоваться в модуле формы докумнета для интерактивного изменения содержимого колонок (например для пересчета суммы по количеству и цене).
43 ShoGUN
 
30.08.07
09:28
(40) Ты не прочитал и трети темы(первый пост и чуть в конце), сформулировал свой собственный вопрос и сам на него ответил. Умница, возьми с полки пирожок!
44 AndrewHoUs
 
30.08.07
09:35
(43) Зато ты прочитал всё полностью, а так и не понял о чем просит автор )
45 ShoGUN
 
30.08.07
09:39
(44) Читай тему из (23), автор давно ответ получил.
46 AndrewHoUs
 
30.08.07
09:43
(45) У меня это выглядит покрасивее.
Еще раз скажу что ты танкист )
Это даже по твоему коду видно )
47 ShoGUN
 
30.08.07
09:46
(46) Что - это? Сравнение с null? Что может быть видно по 5 строчкам кода - не знаю. Но видимо, саперам виднее... :)
48 AndrewHoUs
 
30.08.07
09:50
Сравни

Для m = 0 по (ТЗ.Количество()-1) Цикл
Для n = 0 по (ТЗ.Колонки.Количество()-1) Цикл
ОчереднойЭлемент = ТЗ.Получить(m).Получить(n);
КонецЦикла;
КонецЦикла;

и

Для Каждого ТекСтрока Из НазваниеТабличнойЧасти Цикл
   Если ТекСтрока.КолонкаХ = 0 Тогда // :P
       //Пустое значение нашли
   КонецЕсли;
КонецЦикла;
49 ShoGUN
 
30.08.07
09:54
(48) Ну что поделать, гуру...
За сим умолкаю, оставлю саперов онанировать на собственный код в одиновчестве. :)
50 slnes
 
31.08.07
07:39
(48) для меня и (7) хватит.
(48) два разных кода один работает(верхний) другой нет(нижний).
51 slnes
 
31.08.07
07:41
Нет хотя и нижний работает, только какая разница как перебирать