Имя: Пароль:
1C
1C 7.7
v7: Как проверить, существует ли колонка с заданным именем в таблице значений?
0 Chai Nic
 
15.11.23
13:44
Существует ли красивый способ? ПолучитьПараметрыКолонки(ИмяКолонки) выдает ошибку при отсутствии колонки. То есть, можно конечно её перехватить в Попытке, но существует ли более корректный способ? Перебирать колонки в цикле по номерам тоже не очень красивый вариант.
1 big
 
15.11.23
13:54
ЕМНИП при отсутствии колонки метод ВидимостьКолонки() = -1
2 big
 
15.11.23
14:01
(1) Да, так оно и есть. Перепроверил.
3 Chai Nic
 
15.11.23
14:16
(1) Это не для таблицы на форме, а вообще, в том числе и для простого объекта ТаблицаЗначений?
4 big
 
15.11.23
14:18
(3) Проверял на объекте ТаблицаЗначений. НЕ на форме
5 big
 
15.11.23
14:20
(4) С таблицей на форме тоже работает
6 Chai Nic
 
15.11.23
15:56
Спасибо! Всё работает!
7 uno-group
 
15.11.23
15:56
В FormEx есть ПолучитьИменаТаблицы()
8 Злопчинский
 
15.11.23
16:41
Не пускайте восьмерочников в клюшки! они от этого умнеют! ;-)
9 Злопчинский
 
15.11.23
16:43
(7) это для макета
10 uno-group
 
15.11.23
16:53
Тогда можно через
Стр=ЗначениеВСтроку(Тз);
Если Найти(Стр,"{"""+НужнаяКолонка+""",")>1 Тогда
11 uno-group
 
15.11.23
16:56
(8) Рынок 8 сужается вот они и вынуждены искать где бы подработать чтобы семью прокормить.
То на всякие Жавы кидаются то за клюшки берутся, это все с голодухи.
12 Андрей_Андреич
 
naïve
15.11.23
17:00
(10) Прикольно на ТЗ с сотней полей и сотней тысяч строк работать будет
Тогда уж ПолучитьПараметрыКолонки(ИмяКолонки)<=0
13 Андрей_Андреич
 
naïve
15.11.23
17:01
(12) Блин тупой! в (0) написано что нет
14 uno-group
 
15.11.23
17:27
(12) никто не мешает перед проверкой выгрузить в другую тз 1 строку и по ней проверять.
15 dmitn
 
15.11.23
17:34
(8) Ты ошибаешься!
16 dmitn
 
15.11.23
17:35
(11) Ты не понимаешь! Расширяет.
17 Андрей_Андреич
 
naïve
16.11.23
07:23
(14) Угу. А если в таблице есть значение, совпадающее с искомым именем? Но это я так - докапываюсь
18 Bigbro
 
16.11.23
07:33
(17) удалитьстроки()
19 Андрей_Андреич
 
naïve
16.11.23
08:05
(18) В результате количество строк почти сравняется с классическим обходом всех колонок методом ПолучитьПараметрыКолонки, а наглядность пострадает. Сделать один раз функцию
Функция ЕстьТакаяКолонка(ТЗ,ИскомоеИмя)
    Перем НомерКолонки;
    Для НомерКолонки = 1 По ТЗ.КоличествоКолонок() Цикл
        Если ВРег(ТЗ.ПолучитьПараметрыКолонки(НомерКолонки)=ВРег(ИскомоеИмя)) Тогда
            Возврат Да;
        КонецЕсли;
    КонецЦикла;
    Возврат Нет;
КонецФункцмм
20 Chai Nic
 
16.11.23
08:20
(11) Это не про меня, я семеркой с 1999 года занимаюсь. И решил вот свою давнюю самописку модернизировать слегка набором универсальных механизмов.
По теме - решение в (1) - лучшее.
21 Андрей_Андреич
 
naïve
16.11.23
08:22
(20) Лучшее. Но некошерное - надо всегда помнить, что эот метод означает в данной ситуации
22 Андрей_Андреич
 
naïve
16.11.23
08:23
(20) Или хотя бы "обернуть" решение (1) в функцию ЕстьТакаяКолонка()
23 Гена
 
16.11.23
08:53
Помню только шестёрку, а с пятёркой кто-нибудь работал?
24 Андрей_Андреич
 
naïve
16.11.23
09:10
(23) Я со 2 начинал
25 Гена
 
16.11.23
09:12
(24) Не было такой... вроде
26 Андрей_Андреич
 
naïve
16.11.23
09:16
(25) Была для DOS
27 Дмитрий
 
16.11.23
14:36
(23) Да.
28 Злопчинский
 
16.11.23
15:20
Что вы тут бодягу развели?
(1) прекрасно работает.