Имя: Пароль:
1C
1С v8
Можно ли проверить на заполненность всей таблицы сразу?
,
0 AnisaL
 
19.02.14
08:47
Доброе утро!
Можно ли проверить заполненность всей таблицы сразу, а не проходя по ее строкам?
1 Azverin
 
19.02.14
08:48
(0) имхо, нет.
2 AnisaL
 
19.02.14
08:48
(0) Точнее заполненность табличной части формы обработки
3 Chikko
 
19.02.14
08:49
(2) НЕ ТЧ.Количество() = 0 так?=)
4 1Сергей
 
19.02.14
08:50
(0) на наличие пустых ячеек или (3)?
5 lxndr
 
19.02.14
08:50
ПроверитьЗаполнение()
6 AnisaL
 
19.02.14
08:50
(3) неа, заполненность всех полей
7 AnisaL
 
19.02.14
08:51
(4) да, пустых ячеек
8 1Сергей
 
19.02.14
08:52
(7) без цикла никак. делай цикл + (5)
9 lxndr
 
19.02.14
08:52
оно и без цыыклов работает :)
10 1Сергей
 
19.02.14
09:02
(9) эм.... Ну, да, вообще-то.

(8) сторно. не смотреть
11 kosts
 
19.02.14
09:06
Можно поискать пустое значение
ТаблицаЗначений (ValueTable)
Найти (Find)
Синтаксис:

Найти(<Значение>, <Колонки>)
12 jsmith82
 
19.02.14
09:08
нет, нельзя
13 kosts
 
19.02.14
09:09
(12) Думаешь не найдется?
14 jsmith82
 
19.02.14
09:10
(12) что не найдётся?
15 AnisaL
 
19.02.14
09:15
(11) а как указать что пустое значение?
16 CashtanePC
 
19.02.14
09:17
(14) Диалог зашел в бесконечный цикл:)
17 jsmith82
 
19.02.14
09:22
(15)
Таблица = Объект.Таблица.Выгрузить();
Таблица.Очистить();
НоваяСтрока = Таблица.Добавить();

Нашли = Ложь;
Для Каждого Колонка Из Таблица.Колонки Цикл
Значение = НоваяСтрока[Колонка.Имя];
НайденнаяСтрока = Объект.Таблица.Найти(Значение, Колонка.Имя);
Если НайденнаяСтрока <> Неопределено Тогда
Нашли = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
18 AnisaL
 
19.02.14
09:23
(17) а под Значением что подразумевается7
19 jsmith82
 
19.02.14
09:24
(18) НоваяСтрока[Колонка.Имя]
20 Irbis
 
19.02.14
09:24
А проверять заполненность реквизитов перед окончанием редактирования строки?
21 1Сергей
 
19.02.14
09:25
(17)


Значение = НоваяСтрока[Колонка.Имя];
НайденнаяСтрока = Объект.Таблица.Найти(Значение, Колонка.Имя);


Это пять! он будет в этой же строке и находить
22 AnisaL
 
19.02.14
09:27
(20) таблица заполняется в течение дня, а проверка на заполненность нужна в конце дня
23 AnisaL
 
19.02.14
09:28
(17) объясни этот цикл пожалуйста
24 jsmith82
 
19.02.14
09:29
(21) гонишь
25 jsmith82
 
19.02.14
09:30
(23) а ты по коду ничего понять не можешь?
26 catena
 
19.02.14
09:30
(17)А если у колонки составной тип?
27 jsmith82
 
19.02.14
09:32
(26) Не вижу проблемы в этом
28 1Сергей
 
19.02.14
09:32
блин, ну в (5) дали же уже правильный ответ. Нет, блин, начали изобретать квадртноколесный велосипед...
29 AnisaL
 
19.02.14
09:35
(28) я не нашла свойство "Проверка заполнения" у таб части
30 jsmith82
 
19.02.14
09:35
(28) метод используется до записи объекта в базу
а автор хочет проверить после записи в базу
чуешь разницу?
31 РеализоВано
 
19.02.14
09:35
(0)Запрос
32 jsmith82
 
19.02.14
09:36
(29) что такое СП знаешь хотя бы?
вбей туда имя метода, поищи
33 jsmith82
 
19.02.14
09:37
(22) ты обслуживаешь клиентов с уровнем "турист"?
34 Irbis
 
19.02.14
09:37
(22) то есть предполагается возможность неправильного заполнения (недозаполнения)
А если проверка нужна 1 раз в день, зачем выносить мозг применять цикл или нет. Время проверки ничтожно в сравнении со временем процесса.
35 jsmith82
 
19.02.14
09:38
вообще, правильно будет писать свой метод проверки заполнения в модуль менеджера документа
ибо есть числовые и булевы типы, там по дефолту 0 и ложь стоит, а может быть так и надо
36 catena
 
19.02.14
09:38
(27)Не найдет, если где-то тип выбрали, а значения нет. И NULL, кстати, пропускает.
37 jsmith82
 
19.02.14
09:39
(36) NULL откуда-то
а вот если тип выбрали - это да, что-то не подумал
38 1Сергей
 
19.02.14
09:40
(30)(35) у неё не документ, а обработка
39 AnisaL
 
19.02.14
09:40
(32) я уже искала в СП, где думаешь про свойство "Проверка заполнения" вычитала. Цитирую:
ОбработкаОбъект.<Имя обработки> (DataProcessorObject.<Имя обработки>)
ПроверитьЗаполнение (CheckFilling)
Синтаксис:

ПроверитьЗаполнение()
Возвращаемое значение:

Тип: Булево.
Истина - ошибок не обнаружено, Ложь - в противном случае.
Описание:

Проверяет заполнение реквизитов. Для реквизитов, у которых при конфигурировании свойство "Проверка заполнения" установлено в значение "Показывать ошибку" и реквизит не заполнен, будет сформировано сообщение об ошибке.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Выполнение метода приводит к возникновению события ОбработкаПроверкиЗаполнения.
40 jsmith82
 
19.02.14
09:41
(38) не меняет дела
41 catena
 
19.02.14
09:41
(38)Обработка, которая заполняет весь день таблицу?

(37)А я не знаю, как там та таблица заполняется и хранится.
42 jsmith82
 
19.02.14
09:42
(41) обработка, которая проверяет документ, видимо
43 AnisaL
 
19.02.14
09:42
(41) она никак не хранится, данные подгружаются из регистра
44 1Сергей
 
19.02.14
09:42
(40) Серьёзно? не меняет дела? т.е. обработку можно проверять до записи или после записи, так?
(41) как я понял, она формируется в конце дня
45 jsmith82
 
19.02.14
09:43
(44) я изначально думал, дело про (42)
46 1Сергей
 
19.02.14
09:44
хватит дискутировать.
ответ в (5) + ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
47 KUBIK
 
19.02.14
09:45
(43) нулевые значения исключены как класс? не поверю
48 AnisaL
 
19.02.14
09:45
(42) загружает данные в документ "Табель учета рабочего времени", в обработку вводятся данные о времени прихода и у хода физ лиц на работу, в конце дня на основании введенных данных формируются документы Табели учета. Почему пришлось так сделать - у нас каждое физ лицо имеет несколько должностей в разных подразделениях 6 организаций. В программе нужно вводить табеля по каждому подразделению отдельно, получается что диспетчерам пришлось бы заполнять кучу табелей.
49 jsmith82
 
19.02.14
09:46
(46) а нуль и булево?
50 AnisaL
 
19.02.14
09:46
(46) подскажи где свойство установить для проверки заполнения?
51 jsmith82
 
19.02.14
09:49
(50) что такое палитра свойств знаешь?
52 jsmith82
 
19.02.14
09:50
с одной стороны, серьёзные задачи
с другой, несерьёзные вопросы
у меня разрыв шаблонов
53 AnisaL
 
19.02.14
09:51
(51) я уже всю палитру пересмотрела 20 раз, может скрин скинуть?
54 AnisaL
 
19.02.14
09:53
(17) ошибку выдает:
{Обработка.ФормаВводаДанных.Форма.Форма.Форма(238)}: Метод объекта не обнаружен (Найти)
    НайденнаяСтрока = Объект.ТабличнаяЧастьФизЛица.Найти(Значение, Колонка.Имя);
55 jsmith82
 
19.02.14
09:54
56 jsmith82
 
19.02.14
09:54
(54) забей
юзай (5) (46) и (49)
57 AnisaL
 
19.02.14
10:07
(56) Спасибо! Все получилось
58 kosts
 
19.02.14
10:07
Для табеля не все так просто.
Для каждого дня там восемь колонок. Для 4-х видов времени. Все равно придется проверять циклом и анализировать. Причем для некоторых видов времени часы могут и не заполняться.
ПервыйВидВремени1
ВторойВидВремени1
ТретийВидВремени1
ЧетвертыйВидВремени1
ПервыйЧасов1
ВторойЧасов1
ТретийЧасов1
ЧетвертыйЧасов1
59 kosts
 
19.02.14
10:07
(58)+ При чем для авансового табеля заполняется только половина реквизитов.
60 1Сергей
 
19.02.14
10:09
(58) (59) для этого и существует ОбработкаПроверкиЗаполнения
61 AnisaL
 
19.02.14
10:15
(60) Да, кстати очень хорошая обработка
Закон Брукера: Даже маленькая практика стоит большой теории.