Версия для печати темы (https://pro1c.org.ua/index.php?s=cefbe2975a3a67c1c7e6444662dd06f3&showtopic=22716)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Свойства формы ТолькоПросмотр

Автор: jonson_r 01.04.15, 12:41

Конфигурация УТП для Украины 1.2.27.6
Платформа 8.2.16.352

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

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


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

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

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

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

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

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

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

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


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

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

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

Читал http://pro1c.org.ua/index.php?showtopic=277 отличную статью на форуме, но либо не док конца понял либо... ответа не нашел.
Может кто сталкивался или знает хоть в какую сторону копнуть?
Заранее спасибо!

Автор: logist 01.04.15, 12:54

В типовой конфигурации в ПриОткрытии есть код

    ТолькоПросмотр = НЕ ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ГраницыЗапретаИзмененияДанных);

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


В остальном - суть в том, что это как бы не элементы формы, а элементы регистра сведений, как-то так.

Автор: jonson_r 01.04.15, 14:31

logist, большое спасибо за ответ!
Да, я уже пробовал устанавливать вместо

ТолькоПросмотр = НЕ ПравоДоступа("Изменение", Метаданные.РегистрыСведений.ГраницыЗапретаИзмененияДанных);

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

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

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

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

Автор: logist 01.04.15, 14:49

Цитата(jonson_r @ 01.04.15, 14:31) *
но дает возможность изменить дату

Уберите права на изменение регистра

Автор: Vofka 01.04.15, 14:49

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

jonson_r, а так:

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


?

Автор: jonson_r 01.04.15, 15:34

Цитата(logist @ 01.04.15, 15:49) http://pro1c.org.ua/index.php?act=findpost&pid=97700
Пришлось делать так:

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

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

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


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


Автор: Vofka 01.04.15, 15:56

jonson_r, у меня работает как я ожидал. Переклацываю "Способ указания даты запрета редактирования данных" и у меня отображается нужная страница, которая не доступна для изменения. А вообще совет logist-a выше

Цитата(logist @ 01.04.15, 15:49) *
Уберите права на изменение регистра

на мой взгляд, самое правильное решение.

Автор: jonson_r 01.04.15, 16:10

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

Vofka,

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

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

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

Автор: Vofka 01.04.15, 16:45

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

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


Короче говоря для каждого элемента только специально прописать.

Автор: jonson_r 02.04.15, 9:36

Цитата(Vofka @ 01.04.15, 17:45) *
Если чисто ради спортивного интереса, то у меня вышло только так

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


но все равно ума не приложу, почему для этой формы в целом это не отрабатывает и почему там где отрабатывает - не распространяется на новые элементы...

Автор: jonson_r 02.04.15, 12:51

РЕШЕНИЕ
Подсказали на другом форуме.
Оказывается, у элементов формы есть флаг ИзменяетДанные, установив его будет отрабатывать не только прямое управления:

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

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

Хотя синтакс-помощник по ИзменяетДанные не оговаривает влияние на ТолькоПросмотр, собственно как и наоборот.

Автор: Petre 02.04.15, 13:52

Цитата(jonson_r @ 02.04.15, 12:51) *
собственно как и наоборот

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

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

Тип: Булево.
Содержит признак возможности/невозможности редактирования отображаемых данных. Установка данного свойства в Истина приведет все элементы управления, связанные с реквизитами формы, а также элементы управления, для которых установлено свойство ИзменяетДанные, в состояние запрета редактирования.
...

Автор: Vofka 02.04.15, 14:12

А в описании свойства для обычной формы такая информация отсутствует:

Цитата
Форма (Form)
ТолькоПросмотр (ReadOnly)
Использование:

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

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

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

Толстый клиент.

Автор: jonson_r 06.04.15, 9:26

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua