Версия для печати темы (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
Видимо, я схожу с ума
Автор: 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)
Если чисто ради спортивного интереса, то у меня вышло только так
Я вначале так тоже делал - и что-то не успешно (видимо уже тогда что-то напутал и наложил одно на другое
), но теперь отработало корректно, спасибо. Поэтому так и оставил:
ЭлементыФормы.ДеревоОсновнойДаты.ТолькоПросмотр = Истина;
ЭлементыФормы.ДеревоРеглДаты.ТолькоПросмотр = Истина;
но все равно ума не приложу, почему для этой формы в целом это не отрабатывает и почему там где отрабатывает - не распространяется на новые элементы...
Автор: 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
Да, все верно. Если бы в описании для обычных форм было это, топика может бы и не было вовсе...)
Всем большое спасибо за подсказки и участие
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua