gifts2017

Получить идентификатор формы

Опубликовал Михаил Семенов (Shaman100M) в раздел Программирование - Практика программирования

получить  стандартными средствами языка 1с идентификатор формы по передаваемому в кач-ве параметра групповому контексту.

Эта обработка предназначена для наглядного представления работы
функции ПолучитьИдентификаторФормы() - получить идентификатор формы
диалога по передаваемому в кач-ве параметра групповому контексту
стандартными средствами языка 1с.

Идея основана на определении объекта метаданных - владельца формы диалога,
поиска реквизитов диалога в соответствии со свойствами объекта метаданных,
объединения их в общую строку, а затем ее сжатие с помощью словаря замены
наиболее часто употребляемых слов и словосочетаний в метаданных

В форме диалога обработки:

 - Текст на форме бордовым цветом - найденный идентификатор формы
 - Таблица значений с именами форм и найденным по клику сокращенным
    идентификатором формы
 - Список значений - найденные реквизиты диалога открываемой формы
 - Флаг "Переходить на следующую форму" - переходить после клика на
    следующую строку в таблице значений
 - Кнопка "Сортировать" - сортировать таблицу значений по текущему
    столбцу
 - Кнопка "Закрыть"   
 - Переключатель "Полный - Сокращенный" - тип идентификатора, выводимого в окно сообщений

 
Формы диалога, по контексту которых возвращается не пустой идентификатор:

  ФормаОперации
  ФормаДокумента
  ФормаПланаСчетов
  ФормаСчета
  ФормаСпискаСправочника
  ФормаЭлементаИлиГруппыСправочника
  ФормаЖурналаДокументов
  ФормаЖурналаРасчетов
  ФормаЖурналаОпераций
  ФормаЖурналаПроводок               
  ФормаВнешнегоОтчета (идентификатор формируется по имени файла)


Описание функции:

ПолучитьИдентификаторФормы(<КонтекстФормы>,<СписокНайденныхРеквизитов>,<ДополнительныйИДФормы>,<СокрВариант>)

        Процедура возвращает строковый идентификатор формы по переданному
    групповому контексту формы (кроме форм отчетов и обработок, окна
    истории значений).
        Идентификатор формируется конкатенацией всех найденных
    идентификаторов реквизитов формы, и последующим сжатием строки
 без потери "качества".
 
    Параметры:
    <КонтекстФормы>                 передаваемый контекст формы
    <СписокНайденныхРеквизитов>     переменная типа СписокЗначений, сюда
        функция вернет значения, - найденные идентификаторы реквизиты
        формы из всех возможных, соответствующих ее свойствам или
        свойствам открываемого объекта метаданных.
    <ДополнительныйИДФормы>         строка, постфикс к формируемому
        возвращаемому значению
    <СокрВариант>                   число, 1 или 0 (по умолчанию), -
        полученный идентификатор сжать (=1) с применением словаря
        наиболее употребимых слов/составных слов - идентификаторов
        метаданных различных конфигураций.

для отчетов и обработок не работает.

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
GetIDForm v2
.1175096682 52,09Kb
25.09.09
48
.1175096682 52,09Kb 48 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. artbear2 29.03.07 13:03
А что есть идентификатор формы?
И для чего он может быть использован?
2. Михаил Семенов (Shaman100M) 29.03.07 14:01
Ну, например, для универсального сохранения / восстановления каких-либо настроек формы, позиционирование в спискезначений открытых форм (<КонтекстФормы>,<ИдентификаторФормы>), и с-но, возможность манипуляции с ними.

Ближе, ИМХО, будет определение "идентификатор контекста", замена ЗначениеВСтрокуВнутр(Контекст)
3. Аркадий Кучер (Abadonna) 31.03.07 05:29
Чебурашка очень хотел знать КАКАЯ ИМЕННО форма списка справочника, отсюда, к сожалению, не узнаешь
4. Михаил Семенов (Shaman100M) 01.04.07 09:58
КАКАЯ ИМЕННО не узнаешь, к сожалению. Но идентификаторы у них м.б. разные.
5. Михаил Семенов (Shaman100M) 09.04.07 11:08
А в общем-то, можно. Для этого нужно хранить идентификаторы всех форм списков.
6. Михаил Семенов (Shaman100M) 15.04.09 18:59
Добавлены формы списков, список реквизитов, сокращенный ID
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа