Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 17:42

Получить имя формы

Автор nuraez, 15 сен 2014, 14:28

0 Пользователей и 1 гость просматривают эту тему.

nuraez

Добрый день!  Как получить имя формы списка документов или имя самого документа. в функцию передаеться только ЭтаФорма.

TreeDogNight

Ну так и пиши
ЭтаФорма.ИмяФормы
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

nuraez

Цитата: TreeDogNight от 15 сен 2014, 14:39
Ну так и пиши
ЭтаФорма.ИмяФормы
Я так пробовала но при открытии формв срабатывает ошибка Поле объекта не обнаружено.

TreeDogNight

Забыл сказать, что этот метод работает только &НаСервере
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

nuraez

И как быть в такой ситуации?

TreeDogNight

Хотя нет, вру, на клиенте работает тоже...
Можете написать версию платформы и скинуть процедуру/функцию в которой вы хотите получить имя формы..
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

nuraez

Функция дкСписокПередОткрытием(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт

// Может быть отраслевое переопределение функции модуля...
Результат = орФормаПередОткрытием(ЭтаФорма, Отказ, СтандартнаяОбработка);
Если Результат <> Неопределено Тогда
Возврат Результат;

Иначе
Результат = Истина;
КонецЕсли;

Попытка ПраваПользователя = ЭтаФорма.ЭтотОбъект.Права; Исключение ПраваПользователя = НЕОПРЕДЕЛЕНО; КонецПопытки;
Попытка
ОтношениеКРегламентированномуУчету = обПраво("ОтношениеКРегламентированномуУчету",ПраваПользователя,,ЭтаФорма.Отбор.Ссылка.Значение);
Если ОтношениеКРегламентированномуУчету = Перечисления.ОтношениеКРегламентированномуУчету.ПросмотрТолькоРегламентированныхДокументов Тогда
ЭтаФорма.ДокументСписок.Отбор.РегламентированныйУчет.Значение = Истина;
ЭтаФорма.ДокументСписок.Отбор.РегламентированныйУчет.Использование = Истина;
ЭтаФорма.ЭлементыФормы.список.НастройкаОтбора.РегламентированныйУчет.Доступность = Ложь;
ИначеЕсли ОтношениеКРегламентированномуУчету = Перечисления.ОтношениеКРегламентированномуУчету.ПросмотрТолькоНеРегламентированныхДокументов Тогда
ЭтаФорма.ДокументСписок.Отбор.РегламентированныйУчет.Значение = Ложь;
ЭтаФорма.ДокументСписок.Отбор.РегламентированныйУчет.Использование = Истина;
ЭтаФорма.ЭлементыФормы.список.НастройкаОтбора.РегламентированныйУчет.Доступность = Ложь;
КонецЕсли;
Исключение
КонецПопытки;
           
//Аня проверка по регистру сведений Расширение прав доступа
глПрава=обПолучитьПраваИНастройкиПользователя("");
[size=24pt] Если ОбПраво("Ограничить операции с " +  ЭтаФорма.ИмяФормы)= Истина Тогда[/size][size=14pt][/size]

Запрос =  Новый Запрос();
Запрос = "ВЫБРАТЬ
         | РасширениеПравДоступа.Пользователь,
         | РасширениеПравДоступа.Право,
         | РасширениеПравДоступа.Объект,
         | РасширениеПравДоступа.Значение
         |ИЗ
         | РегистрСведений.РасширениеПравДоступа КАК РасширениеПравДоступа
         |ГДЕ
         | РасширениеПравДоступа.Пользователь = &Пользователь
         | И РасширениеПравДоступа.Право = &Право
         | И РасширениеПравДоступа.Объект = &Объект
         | И РасширениеПравДоступа.Значение = &Значение";


Если ПараметрыСеанса.Пользователь.ШаблонПрав= НЕОПРЕДЕЛЕНО
тогда
   Пользователь =  ПараметрыСеанса.Пользователь ;
     иначе
   Пользователь = ПараметрыСеанса.Пользователь.ШаблонПрав;
КонецЕсли;
Право =  глПрава.Получить("Ограничить операции с" + ЭтаФорма);
Запрос.УстановитьПараметр("Пользователь",Пользователь);
Запрос.УстановитьПараметр("Право",Право);
Запрос.УстановитьПараметр("Объект","Просмотр");
Запрос.установитьПараметр("Значение", "Истина");
РезультатЗапроса= Запрос.Выполнить();
   Если РезультатЗапроса.Пустой() тогда
  результат = Ложь;
   КонецЕсли;
   КонецЕсли;
   //////////////////////////////////////////////////////////////////
// Стандартная обработка
удФормаПередОткрытием(ЭтаФорма, Отказ, СтандартнаяОбработка);
//заполним доп. свойства формы документов
удЗаполнитьДополнительныеДействияДокументов(ЭтаФорма);

Возврат Результат;

КонецФункции // дкСписокПередОткрытием()


Версия 8.1

TreeDogNight

Скажу честно, в 8.1 не работал... Попробуйте найти этот метод в синтаксис-помощнике.
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

nuraez

почему то в этой функции уже есть ЭтаФорма.ЭтотОбъект.Права, а когда я это же самое прописываю выдает ошибку. почему так?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск