Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как узнать идентификатор колонки по номеру в журнале документов?

v7: Как узнать идентификатор колонки по номеру в журнале документов?
Я
   BalBess
 
08.05.19 - 07:48
Всем здрасте! Подскажите пож-та, что-то подзабыл..
Мне нужно для функции Активизировать(<ИмяРеквизита>,<Режим>) знать идентификатор первой колонки в журнале документов
Как это узнать?
 
 
   Ёпрст
 
1 - 08.05.19 - 08:54
Открыть пофигуратор и посмотреть
   trad
 
2 - 08.05.19 - 09:28
(1) а если полиморфизму охота?
   BalBess
 
3 - 08.05.19 - 09:57
(1) мне надо для любого журнала, т.е. программно узнать
   HawkEye
 
4 - 08.05.19 - 10:14
(3) зачем?
   Ёпрст
 
5 - 08.05.19 - 10:14
(3)
Тогда только через РасширениеФормы получать атрибуты табличнойЧасти.
   Ёпрст
 
6 - 08.05.19 - 10:16
Ибо, идентификатора колонки могёт и не быть, если это текстовая колонка.
А через метаданные ты все колонки не получишь
   Ёпрст
 
7 - 08.05.19 - 10:16
Можно конечно, штатно получить через Tab ..но это для гурманов.
   BalBess
 
8 - 08.05.19 - 10:19
(5) не подскажите как, или какой функцией?
   BalBess
 
9 - 08.05.19 - 10:25
(4) делаю поиск документов по определенным условиям (вместо штатного поиска по номеру)
и после того как нашел
Конт.АктивизироватьОбъект(НайденныйДокумент);
Конт.Активизировать(Конт.Форма.ТекущаяКолонка(), 0);

Если до вызова формы колонка была сфокусированна (выделена) , то метод Активизировать(Конт.Форма.ТекущаяКолонка(), 0) - срабытывает, т.е. позиционируется на документе и фокус остается в этой колонке
и по нажатию интер, открывается этот документ
А если колонка НЕ была выделена , то не срабатывает, и по нажатию интер - снова открывается форма поиска
т.к. фокус был на кнопке
   HawkEye
 
10 - 08.05.19 - 10:27
(9) зачем именно первая? через метаданные получить весь список колонок и активизировать ту, в которой Тип = Документ...
   BalBess
 
11 - 08.05.19 - 10:30
надеюсь понятно описал ситуацию
и я хочу
    ТекКолонка = Конт.Форма.ТекущаяКолонка();
    Если ПустоеЗначение(ТекКолонка) = 1 Тогда
//        ТекКолонка = Конт.ПолучитьПараметрыКолонки(1);

// тут надо получить идентификатор колонки
    КонецЕсли;


может есть другие пути решения
   BalBess
 
12 - 08.05.19 - 10:33
(10) "через метаданные получить весь список колонок " - как это сделать?
речь про журналы
   Ёпрст
 
13 - 08.05.19 - 10:36
будь проще, активизируй датаДок
   HawkEye
 
14 - 08.05.19 - 10:45
(11) пффф 
Конт.Активизировать("ДатаДок", 0);
   HawkEye
 
15 - 08.05.19 - 10:45
(13) не обновил ))
   HawkEye
 
16 - 08.05.19 - 10:51
(12) Графы журналы документов
Графы по умолчанию
Есть графы по умолчанию, которые присутствуют в любом журнале документов, в котором есть документы. Это:
ДатаДок
ВремяДок
НомерДок
ВидДок
Так же к графам по умолчанию относятся все общие реквизиты документов. Отличить графу реквизит табличной части, от графы реквизит шапки можно по наличию спецефического для табличной части атрибута ИтогПоКолонке.
Количество
Метаданные.Журнал(i).Графа()
Назначение:
Возвращает количество граф журнала, 0 если их нет
Графа()
Метаданные.Журнал(i).Графа(j)
Назначение:
Возвращает j-тую графу i-того журнала
Выбран()
Метаданные.Журнал(i).Графа(j).Выбран()
Назначение:
Возвращает 1 если j-тая графа i-того журнала есть, 0 если нет
Примечание:
i может быть как номером графы отбора, так и именем.
Идентификатор
Метаданные.Журнал(i).Графа(j).Идентификатор
Назначение:
Возвращает идентификатор j-той графы i-того журнала.
Возвращаемое значение:
Строка.
Синоним
Метаданные.Журнал(i).Графа(j).Синоним
Назначение:
Возвращает синоним j-той графы i-того журнала.
Возвращаемое значение:
Строка.
Комментарий
Метаданные.Журнал(i).Графа(j).Комментарий
Назначение:
Возвращает комментарий j-той графы i-того журнала.
Возвращаемое значение:
Строка.
Формы списка журнала документов
   BalBess
 
17 - 08.05.19 - 10:57
(13) так я делал, получается немного не кошерно )
поле дата не всегда первое, и получается фокус не в первую колонку
   BalBess
 
18 - 08.05.19 - 11:01
Как вариант завести невидимую колонку во всех журналах (первой)
и ее активизировать
   BalBess
 
19 - 08.05.19 - 11:07
В общем сделал так
    Конт.АктивизироватьОбъект(НайденныйДокумент);
    ТекКолонка = Конт.Форма.ТекущаяКолонка();
    Если ПустоеЗначение(ТекКолонка) = 1 Тогда
        ТекКолонка = "ДатаДок";
    КонецЕсли;
    Конт.Активизировать(ТекКолонка, 0);

такие ситуации возникают редко, когда не выделенна колонка, в этом случае будет выделяться колонка Дата
всем спасибо

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.