|
v7: Как проверить наличие поля в дбф-файле? | ☑ | ||
---|---|---|---|---|
0
mikecool
09.01.12
✎
20:30
|
Пробовал в попытке ПолуитьЗначениеПоля - исключения нет, тупо валится ошибка иксбазе
как можно проверить наличие поля? |
|||
1
ДенисЧ
09.01.12
✎
20:31
|
Перебрать через КоличествоПолей()/ОписаниеПоля()...?
|
|||
2
mikecool
09.01.12
✎
20:35
|
(1) ээх... делать нечего, придется )
расслабила восьмерка |
|||
3
Torquader
09.01.12
✎
20:42
|
Ну, можешь ещё файл, как текст открыть и получить список полей там - может даже будет проще (и можно открыть файл только на чтение).
|
|||
4
BlackSeaCat
09.01.12
✎
20:49
|
(3) Ага, попадется (и наверняка!) в начале заголовка файла символ с кодом 0 - и фиг ты чего получишь!
|
|||
5
Torquader
09.01.12
✎
20:51
|
(4) Ну, если "попросить" Scripting.FileSystemObject открыть файл через OpenTextFile, то не стоит бояться нулевого символа, если читать посимвольно, то можно даже и нулевые символы прочесть (если прочиталась строка нулевой для 1С длины, то для нормальных программ - там нулевой символ).
|
|||
6
BlackSeaCat
09.01.12
✎
20:59
|
(5) По мне так проще через цикл. Но это дело вкуса.
(0) А если попробовать использовать в Попытка/Исключение не метод, а обращение к полю, как к атрибуту? Типа: Попытка А=Xbase.Проверяемое поле; Исключение Сообщить("Нет такого поля!"); КонецПопытки; P.S. Хотя не люблю я вообще попытки с исключениями... |
|||
7
Torquader
09.01.12
✎
21:03
|
(6) XBase открывает файл монопольно, и невозможно заглянуть в собственные файлы 1С (а это иногда нужно).
|
|||
8
Cthulhu
09.01.12
✎
21:13
|
(6): правильно не любишь. помимо некошерности - ещё и тормозит нещадно.
(кстати, не так давно нашел случайно способ определить "в одно действие"(!), без возникновения ошибки или исключения, и быстро проверить наличие в ТЗ колонки с заданным идентификатором)))) |
|||
9
Cthulhu
09.01.12
✎
21:14
|
(8)+: (а может и баян. но я просто не знал и нашел методом тыка - чему рад))))
|
|||
10
mikecool
09.01.12
✎
21:15
|
замутил цикл )
|
|||
14
Torquader
09.01.12
✎
21:36
|
(9) Есть мнение, что "ВидимостьКолонки" возвращает -1, если идентификатор передан неверно.
|
|||
15
Cthulhu
09.01.12
✎
21:37
|
(14): угумц.
|
|||
16
Torquader
09.01.12
✎
21:40
|
Попытка с исключением тоже хороши, но в 1С нельзя самому генерировать исключения, и прекрасный механизм оказывается "микроскопом для забивания гвоздей".
|
|||
17
Дядя Васька
09.01.12
✎
21:41
|
А я говорил... Ромиксу-то, про попытку-исключение ))))
|
|||
18
Дядя Васька
09.01.12
✎
21:44
|
Когда уже народ поймет что исключительная ситуация, это именно исключение, а не если - тогда? Ну нельзя же так ей-богу...
|
|||
19
Cthulhu
09.01.12
✎
21:45
|
(16): даладно. в глоб.переменную - код исключения + делишь на ноль - и телемаркет.
|
|||
20
Torquader
09.01.12
✎
21:45
|
(18) Это ты программистам на Java порассказывай - там без исключений ничего путного не слепишь.
|
|||
21
Torquader
09.01.12
✎
21:47
|
(19) Это совсем некошерно - проще в функции ноль вернуть, а информацию в ту же глобальную переменную (слава богу, что в 1С нет параллельного исполнения - на Сях у меня глобальные переменные не приживались).
|
|||
22
Дядя Васька
09.01.12
✎
21:58
|
(20) А может руки?
|
|||
23
Torquader
09.01.12
✎
22:00
|
(22) В 1С, может быть, и руки, только тех, кто 1С придумал.
Если происходит ошибка, то её передавать проще через исключения, только в 1С инструкции finally нет, чтобы завершать исполнение корректно. |
|||
24
Дядя Васька
09.01.12
✎
22:04
|
(23) Ну вообще-то можно и "пердусмотреть"...
|
|||
25
Ковычки
09.01.12
✎
22:18
|
Мнение про -1 уточняйте у Ёпрст о первенстве
|
|||
26
Torquader
10.01.12
✎
00:38
|
(25) Если вы про (14) то я просто посмотрел на (8) и (9) и быстренько проверил, какой из методов не возвращает ошибки - оказалось "ВидимостьКолонки".
|
|||
27
slowpoke1C
11.01.12
✎
15:24
|
(14) не знал.. Возьму на вооружение :-)
|
|||
28
1Сергей
11.01.12
✎
15:34
|
(14) рваный
|
|||
29
НЕА123
11.01.12
✎
15:41
|
НомерПоля(ИмяПоля) может не упадет?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |