Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Свойства формы ТолькоПросмотр
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
jonson_r
Конфигурация УТП для Украины 1.2.27.6
Платформа 8.2.16.352

В общей форме НастройкаПараметровУчета использую ПриОткрытии()

ЭтаФорма.ТолькоПросмотр = Истина;


Все элементы формы (поля ввода, флажки и т.д.) становятся неактивны

Аналогичное проделываю для общей формы УстановкаДатыЗапретаИзмененияДанных - результата никакого. Даже кнопки основной панели доступны.
Пробовал пойти через:

ЭлементыФормы.ДеревоОсновнойДаты.ТолькоПросмотр = Истина;
ЭлементыФормы.ДеревоРеглДаты.ТолькоПросмотр = Истина;

тоже безрезультатно.

Пришлось делать так:

ЭлементыФормы.ОсновныеДействияФормы.Кнопки.КнопкаУстановить.Доступность = Ложь;

ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Ложь;

ЭлементыФормы.Панель1.Страницы.Страница2.Доступность = Ложь;


Что не совсем удобно, т.к. переход между страницами панели невозможен, а желательно бы иметь данные для просмотра.

Читал синтаксис-помощник (по форме неуправляемой):

Описание:
Тип: Булево.
Содержит признак использования формы в режиме просмотра. Если свойство установлено в Истина, то становятся не доступны
для изменения все дочерние элементы вне зависимости от значения их свойств ТолькоПросмотр.

Читал необходимо зарегистрироваться для просмотра ссылки отличную статью на форуме, но либо не док конца понял либо... ответа не нашел.
Может кто сталкивался или знает хоть в какую сторону копнуть?
Заранее спасибо!
logist
В типовой конфигурации в ПриОткрытии есть код
    ТолькоПросмотр = НЕ ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ГраницыЗапретаИзмененияДанных);

Измените его на
    ТолькоПросмотр = Истина;


В остальном - суть в том, что это как бы не элементы формы, а элементы регистра сведений, как-то так.
jonson_r
logist, большое спасибо за ответ!
Да, я уже пробовал устанавливать вместо
ТолькоПросмотр = НЕ ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ГраницыЗапретаИзмененияДанных);

сразу
ТолькоПросмотр = Истина;

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

Да, это вывод записей регистра, но ведь через элемент на форме. В реквизитах формы ДеревоОсновнойДаты и ДеревоРеглДаты имеют тип ДеревоЗначений, вначале идет запрос к регистру, а затем в цикле добавляются данные в эти два дерева, записываются же эти данные через НаборЗаписей. Т.е. я к тому, что прямого вывода регистра на форму нет, объект РегистрСписок отсутствует...
Единственное до чего я додумался - просмотр для элемента формы с типом ДеревоЗначенй просто недоступен.
Позже попробую это проверить, путем добавления дерева на форму НастройкаПараметровУчета

Добавил таки на общую форму НастройкаПараметровУчета (на которой отрабатывает ТолькоПросмотр = Истина;) новую страницу, на ней разместил три элемента - поле ввода, флажок, табличное поле с типом значения ДеревоЗначений.
И... все неактивно - а мои новые элементы доступны и активны, в поле ввода можно ввести строковое значение, покликать флажок, добавить строку в табличное поле. o_0
Видимо, я схожу с ума icon_cuss.gif
logist
Цитата(jonson_r @ 01.04.15, 14:31) необходимо зарегистрироваться для просмотра ссылки
но дает возможность изменить дату

Уберите права на изменение регистра
Vofka
Всё, что мы видим на форме - это не может быть не элементами формы.

jonson_r, а так:

ЭлементыФормы.ОсновнаяПанельФормы.Страницы.ОбщаяДата.Доступность = Ложь;
ЭлементыФормы.ОсновнаяПанельФормы.Страницы.ДатыПоОрганизациям.Доступность = Ложь;


?
jonson_r
Цитата(logist @ 01.04.15, 15:49) необходимо зарегистрироваться для просмотра ссылки
Уберите права на изменение регистра

Это вариант, благодарю.

Vofka, как и писал выше - это работает вот так:
Цитата(jonson_r @ 01.04.15, 13:41) необходимо зарегистрироваться для просмотра ссылки
Пришлось делать так:

ЭлементыФормы.ОсновныеДействияФормы.Кнопки.КнопкаУстановить.Доступность = Ложь;

ЭлементыФормы.Панель1.Страницы.Страница1.Доступность = Ложь;

ЭлементыФормы.Панель1.Страницы.Страница2.Доступность = Ложь;


Что не совсем удобно, т.к. переход между страницами панели невозможен, а желательно бы иметь данные для просмотра.

Vofka
jonson_r, у меня работает как я ожидал. Переклацываю "Способ указания даты запрета редактирования данных" и у меня отображается нужная страница, которая не доступна для изменения. А вообще совет logist-a выше
Цитата(logist @ 01.04.15, 15:49) необходимо зарегистрироваться для просмотра ссылки
Уберите права на изменение регистра

на мой взгляд, самое правильное решение.
jonson_r
я бы давно махнул рукой, ведь решений задачи много, но почему на той форме, где отрабатывает ТолькоПросмотр = Истина, новые элементы "не поддаются" этой настройке?

Vofka,
Цитата(Vofka @ 01.04.15, 16:56) необходимо зарегистрироваться для просмотра ссылки
jonson_r, у меня работает как я ожидал. Переклацываю "Способ указания даты запрета редактирования данных" и у меня отображается нужная страница, которая не доступна для изменения. А вообще совет logist-a выше

Вы переходите по страницам на панели, доступность которых отключили?
У меня просто не переходит. Вариант с правами на регистр правильно и хорошо, но тут уже спортивный интерес. В чем разница между вашими и моими страницами...

Vofka, а простите, у вас наверное Бухгалтерия? тогда все понятно, вы выбором способа указания даты принудительно отображаете текущей страницей нужную, но если бы у вас все страници были видимы на панели и отключена доступность каждой - вы бы не смогли переходить по ним.
Vofka
А, точно. Я не обратил внимание, что речь про УТП. В общем, попробовал поиграться с доступностью страниц на примере УТ - у меня тоже ничего не вышло. Если чисто ради спортивного интереса, то у меня вышло только так:

...
ЭлементыФормы.КоманднаяПанельДереваОсновнойДаты.Кнопки.УдалитьСтроку.Доступность = Ложь;
ЭлементыФормы.ДеревоОсновнойДаты.ТолькоПросмотр = Истина;
...


Короче говоря для каждого элемента только специально прописать.
jonson_r
Цитата(Vofka @ 01.04.15, 17:45) необходимо зарегистрироваться для просмотра ссылки
Если чисто ради спортивного интереса, то у меня вышло только так

Я вначале так тоже делал - и что-то не успешно (видимо уже тогда что-то напутал и наложил одно на другое smile.gif ), но теперь отработало корректно, спасибо. Поэтому так и оставил:
ЭлементыФормы.ДеревоОсновнойДаты.ТолькоПросмотр = Истина;
ЭлементыФормы.ДеревоРеглДаты.ТолькоПросмотр     = Истина;


но все равно ума не приложу, почему для этой формы в целом это не отрабатывает и почему там где отрабатывает - не распространяется на новые элементы...
jonson_r
РЕШЕНИЕ
Подсказали на другом форуме.
Оказывается, у элементов формы есть флаг ИзменяетДанные, установив его будет отрабатывать не только прямое управления:
ЭлементыФормы.ДеревоОсновнойДаты.ТолькоПросмотр = Истина;

Но и в целом через форму как и хотел:
ЭтаФорма.ТолькоПросмотр = Истина;

Хотя синтакс-помощник по ИзменяетДанные не оговаривает влияние на ТолькоПросмотр, собственно как и наоборот.
Petre
Цитата(jonson_r @ 02.04.15, 12:51) необходимо зарегистрироваться для просмотра ссылки
собственно как и наоборот

Может СП устарел?
Цитата
УправляемаяФорма (ManagedForm)
ТолькоПросмотр (ReadOnly)
Использование:

Чтение и запись.
Описание:

Тип: Булево.
Содержит признак возможности/невозможности редактирования отображаемых данных. Установка данного свойства в Истина приведет все элементы управления, связанные с реквизитами формы, а также элементы управления, для которых установлено свойство ИзменяетДанные, в состояние запрета редактирования.
...
Vofka
А в описании свойства для обычной формы такая информация отсутствует:
Цитата
Форма (Form)
ТолькоПросмотр (ReadOnly)
Использование:

Чтение и запись.
Описание:

Тип: Булево.
Содержит признак использования формы в режиме просмотра. Если свойство установлено в Истина, то становятся не доступны для изменения все дочерние элементы вне зависимости от значения их свойств ТолькоПросмотр.

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

Толстый клиент.
jonson_r
Да, все верно. Если бы в описании для обычных форм было это, топика может бы и не было вовсе...)
Всем большое спасибо за подсказки и участие wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.