Имя: Пароль:
1C
1С v8
Открыть форму только для просмотра
,
0 Alex70
 
25.07.18
07:51
Привет всем! Нужно реализовать когда выделяешь строку в Списоке Документов и  нажимаешь на кнопку "ОткрытьТолькоДляПрочтения" открывалась форма Документа с установленной галочкой "ОткрытьТолькоДляПрочтения" и документ был в режиме только просмотр. Подскажите все никак не могу получить саму форму?



Процедура ДействияФормыОткрытьНаЧтение(Кнопка)
        
    ТекСтрока = ЭлементыФормы.ДокументСписок.ТекущаяСтрока;    
    ФормаДокумента = ПолучитьФорму("ФормаДокумента");
    Если ФормаДокумента.ОткрытьТолькоНаЧтение = Истина Тогда
        Форма.Открыть();
    КонецЕсли;    
        
    
КонецПроцедуры
1 Малыш Джон
 
25.07.18
07:52
У формы разве нет свойства "Только просмотр"?
2 Wirtuozzz_II
 
25.07.18
07:58
Форма.ТолькоПросмотр = Истина;
3 Alex70
 
25.07.18
07:58
(1) Св-во такое есть. Но в будущем планируется устанавливать "только просмотр" для определенных пользователей.
4 Малыш Джон
 
25.07.18
08:00
(3) я не против, устанавливай и им
5 Малыш Джон
 
25.07.18
08:00
Если ПользовательОпределенный(ПараметрыСеанса.ТекущийПользователь) Тогда
  Форма.ТолькоПросмотр = Истина;
КонецЕсли;
6 Alex70
 
25.07.18
08:03
Проблема основная в том что не могу получить форму. Ругается:
_____________________________________
{Документ.тлкГрупповаяСпецификация.Форма.ФормаСписка.Форма(120)}: Ошибка при вызове метода контекста (ПолучитьФорму)
    Форма = ПолучитьФорму("ФормаДокумента");
по причине:
Неизвестное имя формы. Имя: "ФормаДокумента"
7 Малыш Джон
 
25.07.18
08:05
(6) потому что в этом контексте так форму не получишь.

ТекущаяСтрока = ЭлементыФормы.ДокументСписок.ТекущаяСтрока;
НужнаяФорма = ТекущаяСтрока.ПолучитьФорму();
НужнаяФорма.ТолькоПросмотр = Истина;
НужнаяФорма.Открыть();
8 Малыш Джон
 
25.07.18
08:05
+(7) это если ДокументСписок - это список документов
9 Wirtuozzz_II
 
25.07.18
08:06
Глобальный контекст.ПолучитьФорму (Global context.GetForm)
Глобальный контекст (Global context)
ПолучитьФорму (GetForm)
Синтаксис:

ПолучитьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>)
Параметры:

<ИмяФормы> (обязательный)

Тип: Строка.
Имя формы. Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта", "ОбщаяФорма.ФормаСохраненияФайла") или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора").
Имена форм по умолчанию:
ФормаОбъекта (ObjectForm) - форма объекта по умолчанию;
ФормаГруппы (FolderForm) - форма группы по умолчанию;
ФормаЗаписи (RecordForm) - форма записи регистра по умолчанию;
ФормаСписка (ListForm) - форма списка по умолчанию;
ФормаВыбора (ChoiceForm) - форма выбора по умолчанию;
ФормаВыбораГруппы (FolderChoiceForm) - форма выбора группы по умолчанию;
ФормаКонстант (ConstantsForm) - форма констант по умолчанию для обычного режима, установленная как форма констант для конфигурации;
Форма (Form) - форма константы, отчета и обработки по умолчанию;
ОбщаяФорма (CommonForm) - общая форма;
ФормаНастроек (SettingsForm) - форма настроек отчета по умолчанию;
ФормаЗагрузки (LoadForm) - форма загрузки настроек;
ФормаСохранения (SaveForm) - форма сохранения настроек;
ФормаВарианта (VariantForm) - форма редактирования варианта отчета;
ФормаЗагрузкиПользовательскихНастроекОтчетов (ReportUserSettingsLoadForm) - форма загрузки настроек отчета;
ФормаСохраненияПользовательскихНастроекОтчетов (ReportUserSettingsSaveForm) - форма сохранения настроек отчета;
ФормаЗагрузкиВариантовОтчетов (ReportVariantsLoadForm) - форма загрузки варианта отчета;
ФормаСохраненияВариантовОтчетов (ReportVariantsSaveForm) - форма сохранения варианта отчета;
ФормаЗагрузкиНастроекДанныхФорм (FormDataSettingsLoadForm) - форма загрузки настроек данных форм;
ФормаСохраненияНастроекДанныхФорм (FormDataSettingsSaveForm) - форма сохранения настроек данных форм;
ФормаПоиска (SearchForm) - форма полнотекстового поиска в данных.
Например, для получения общей формы "ОбщиеНастройки" следует в модуле написать код:
Форма = ПолучитьФорму("ОбщаяФорма.ОбщиеНастройки");


Для внешних отчетов и обработок имя формы задается следующим образом:
ВнешнийОтчет.<имя отчета>.Форма.<имя формы>;
ВнешнийОтчет.<имя отчета>.<имя стандартной формы>;
ВнешняяОбработка.<имя обработки>.Форма.<имя формы>;
ВнешняяОбработка.<имя обработки>.<имя стандартной формы>.
При этом внешний отчет или обработка должны быть предварительно зарегистрированы в системе.
<Параметры> (необязательный)

Тип: Структура.
Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();


<Владелец> (необязательный)

Владелец формы - форма или элемент управления другой формы.
<Уникальность> (необязательный)

Тип: Произвольный.
В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма.
Ложь - искать форму с ключом уникальности по умолчанию, Истина - не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск.
Значение по умолчанию: Ложь.
<Окно> (необязательный)

Тип: ОкноКлиентскогоПриложения.
Окно приложения, в котором будет открыта форма.
Применимо только для управляемой формы. Окном может быть только основное окно приложения или вспомогательное окно формы.
<НавигационнаяСсылка> (необязательный)

Тип: Строка; Неопределено.
Если содержит значение, отличное от Неопределено, то это значение присваивается свойству НавигационнаяСсылка формы, полученной в результате вызова данного метода, и свойство АвтоНавигационнаяСсылка этой формы устанавливается в Ложь.
Значение по умолчанию: Неопределено.
Возвращаемое значение:

Тип: Форма; УправляемаяФорма; Неопределено.
Неопределено - если в обработчике ПриСозданииНаСервере установлен признак отказа от создания формы.
Описание:

Получает форму или управляемую форму. Перед получением осуществляется поиск уже открытой такой же формы.
Поиск осуществляется по типу формы, значениям ключевых параметров формы, владельцу формы, пользовательскому ключу уникальности.
Если в параметре <Уникальность> передано значение Истина, то поиск уже открытых форм не осуществляется.

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение(клиент).
Вызов метода выполняет обращение к серверу.

Примечание:

В тонком и веб-клиенте получает только управляемую форму.
Обычные формы внешних обработок не поддерживаются.
Если при получении обычной формы в параметре <ИмяФормы> указано не стандартное имя формы, передаваемые параметры не обрабатываются.
См. также:

Глобальный контекст, метод ОткрытьФорму
Глобальный контекст, метод ОткрытьФормуМодально
Глобальный контекст, метод ПолучитьОбщуюФорму

--------------------------------------------------------------------------------

     Методическая информация
10 Малыш Джон
 
25.07.18
08:08
Интерактивный СП) круто)
11 Alex70
 
25.07.18
08:16
(7) Спасибо уже близко к истине. Но получается что все документы открывются только для просмотра, а нужно в чтобы открывались те в доки в которых стоит галочка "ОткрытьТолькоНаЧтение"
12 Малыш Джон
 
25.07.18
08:22
(11) ну тут уже давай думай) включай фантазию, логику

здравый смысл наконец

Подсказка: это конечно очень неожиданно,необычно и новаторски, но... попробуй сочетать (7) и (5)
13 Alex70
 
25.07.18
08:58
Получилось! Всем спасибо огромное
_____________________________________________
Процедура ДействияФормыОткрытьНаЧтение(Кнопка)
        
    ТекущаяСтрока = ЭлементыФормы.ДокументСписок.ТекущаяСтрока;
    НужнаяФорма = ТекущаяСтрока.ПолучитьФорму();
    
    Если НужнаяФорма.ОткрытьТолькоНаЧтение = Истина Тогда
        НужнаяФорма.ТолькоПросмотр = Истина;
        НужнаяФорма.Открыть();
    КонецЕсли;
            
КонецПроцедуры
14 Малыш Джон
 
25.07.18
08:59
(13) "НужнаяФорма.Открыть()" из условия вытащи
15 Alex70
 
25.07.18
09:03
Спасибо ешё раз! Теперь идеально работает
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший