1с форматированный документ толькопросмотр не работает
Открыта форма, только на просмотр. Как узнать в этом же сеансе - форма открыта с блокировкой или без?
.
вроде вот так работает:
.
Есть родительская форма документа открытая, только на просмотр
Как сделать так, чтобы открыть из ВПФ другую модальную обработку диалоговую, которая изменяет реквизиты исходного документа и показать форму родительского документа в режиме просмотра с уже измененными реквизитами
Формекс есть, 1С++ есть, можно переоткрывать обработки прочее. Должно по возможности все "прозрачно", без лишних морганий.
.
.
И еще вопрос - как программно открыть форму документа (и соотв.справочника тоже, один механизм наверное) - в таком же режиме, как открывается на просмотр с панели инструментов на просмотр "лупой".
а если весь код убрать (временно) - блокировка так и останется?
(6) Как я понимаю, ты либо открыл на просмотр (лупой), либо на изменение - и тогда нет разницы есть ТолькоПросмотр() или нет.
Наверное, перехватывать при открытии формы, закрывать ее и после закрытия открывать ВПФ
(8) "ты либо открыл на просмотр (лупой), либо на изменение" - нет, есть еще третий вариант ОткрытьФорму(,,1) или в открытой форме Форма.ТолькоПросмотр(1) - и еть большая разница как открыто на просмотр - лупой или программно.
(8) "как программно открыть форму документа (и соотв.справочника тоже, один механизм наверное) - в таком же режиме, как открывается на просмотр с панели инструментов на просмотр "лупой".." - этот вопрос к проблеме с формадокумента+ВПФ не относится, это отдельный вопрос
(14) смысл сего кода? Док.Записать() и так в транзакции выполняется
а если нужно узнать заблокирован ли объект этой формой или какой-то другой, то да: "Стучаться в метод Блокировка()"
на счет побочного эффекта от Форма.ТолькоПросмотр(0) вот
Мот это последствия короновируса - старческий маразм ? )(20) Вообще не понимаю зубоскальства к Чу.
За себя скажу: за 25 лет в семерке - дофига осталось черных зон, с которыми не разбирался в виду ненужности. Ещё больше серых зон, которые просто обходил стороной, где можно было обойтись: быстро сделал, все довольны. Плюс приобретённые серые зоны - 15 лет назад разобрался, а потом ни разу не пригодилось, вот и стёрлось.
"по лупе" - то же самое что ОткрытьФорму с 1 в параметре ТолькоПросмотр.
"показать измененный" - тупо ОткрытьФорму с 1 в параметре ТолькоПросмотр (если эта форма была открыта ранее - она переоткроется т.е. обновится в соответствии с данными и активизируется)
Соори за суматошное ночное изложение и толику бреда.
Сказывается самоизяоляция и ночные посиделки.
.
В результате с божей помощью. АнедейАндреича итд, по сущетсу разобрался. Все ожидаемо и логично.
Но есть один затык..
исходные условия теста.
- документ записан.
- открытая форма документа.
тест
1. ОткрытьФорму(,,0) + Форма.ТолькоПросмотр(1) - Объект заблокирован, только просмотр, ВПФ из контекста формы, изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - все ок, форма только на просмотр и реквизиты изменены. Все как хотелось.
2. ОткрытьФорму(,,0) - Объект заблокирован, форма доступна редактирование, ВПФ из контекста формы, изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - все ок, форма только на доступна на изменение, реквизиты изменены. все как хотелось.
2. ОткрытьФорму(,,1)+Форма.ТолькоПросмотр(1) - Объект свободен (логично), только просмотр, ВПФ из контекста формы изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - ничего не ругается, все типа ок, форма только на просмотр и реквизиты НЕ изменены (что как бы тоже логично). Тут как бы понятно, но не то что хотелось.
4. ОткрытьФорму(,,1) - Объект свободен (логично), только просмотр, ВПФ из контекста формы изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - ничего не ругается, все типа ок, форма только на просмотр и реквизиты НЕ изменены (что как бы тоже логично). Тут как бы понятно, но не то что хотелось.
5. Лупа "на просмотр" - Объект свободен (логично), только просмотр, ВПФ из контекста формы изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - ничего не ругается, все типа ок, форма только на просмотр и реквизиты НЕ изменены (что как бы тоже логично). Тут как бы понятно, но не то что хотелось.
6. Лупа "на просмотр"+Форма.ТолькоПросмотр(1) - Объект свободен (логично), только просмотр, ВПФ из контекста формы изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - ничего не ругается, все типа ок, форма только на просмотр и реквизиты НЕ изменены (что как бы тоже логично). Тут как бы понятно, но не то что хотелось.
итого: при изменении реквизитов контекста формы
- обновление реквизитов на форме (и в объекте) ПРОИСХОДИТ когда объект заблокирован, в пп.1,2 - то что надо
- обновление реквизитов на форме (и в объекте) НЕ происходит когда объект свободен, в пп.2-6 - это не устраивает.
Хочется, значит, в пп.2-6 - в ВПФ проверяем свободен ли объект- документ текущего контекста формы (это сумеем), и если объект-документ свободен -
тогда реквизиты объекта меняем не через контекст формы, а через объект (это тоже сумеем). ОК.
. Но после изменения объекта - хочется актуализировать отображение формы, открытой ранее на просмотр, для отображения изменившихся реквизитов.
И тут вот затык - сделать как из ВПФ переоткрыть форму в режиме просмотра?
И что важно - без правки типовой конфы?!
Используется УТ 11.0.5.4, платформа 8.2.12.96
Суть задачи: Для любой печатной формы документа можно отключить режим "Только просмотр" если зайти в меню -> Таблица -> Вид -> Редактирование.
Но это не совсем удобно и хотелось бы вынести эту кнопку непосредственно на форму печати.
В 8.1 это решалось установкой:
ТабДокумент.ТолькоПросмотр = Ложь;
а тут табличный документ и так имеет свойство ТолькоПросмотр = Ложь, и Защита = Ложь,
пробовала обращаться и к полю на форме и к самому табличному документу.
Задачка простая, но никак не пойму что надо сделать. :o
З.Ы. пробовала и на стандартной форме (ОбщиеФормы-ПечатьДокументов) и на собственной форме отчета.
Не в курсе как в УТ, а в УПП есть общий модуль УниверсальныеМеханизмы.НапечататьДокумент()а в нем примерно такая конструкция
..
ФормаПечати.Защита = УправлениеДопПравамиПользователей.ЗащитаТаблиц();
..
т.е защита таблиц зависит от доп прав. Что то похожее должно быть и у тебя. И заодно проверь у себя самой допправа. В УТ ред 11. вывод печатной формы делается через общий модуль УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(), в которой открывется ОбщаяФорма.ПечатьДокументов.
Именно в этой форме хочу добавить кнопку.
Вопрос состоит не в том, как разрешить редактировать (права это позволяют, если зайти в меню -> Таблица -> Вид -> Редактирование), а в том КАК это сделать кнопкой на форме.
(3) Если нужна как я понял кнопка - то делайте кнопку и обработчик события нажатия
Процедура КоманднаяПанельФормыТолькоПросмотр(Кнопка)
ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр = НЕ ЭлементыФормы.ПолеТабличногоДокумента.ТолькоПросмотр;
ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ТолькоПросмотр.Пометка = НЕ ЭлементыФормы.КоманднаяПанельФормы.Кнопки.ТолькоПросмотр.Пометка;
КонецПроцедуры
Может, кто-то все-таки работал именно с УТ ред 11 и подскажет как именно это делается в меню -> Таблица -> Вид -> Редактирование.
Может там есть какое-то дополнительное свойство у формы/элемента формы/таб поля?
Вопрос остается открытым.
Тем не менее ты проверь права на редактирование таблиц у пользователя которым ты заходишь.
И отладчиком тыкнись, когда все таки ТолькоПросмотр становится истиной.
При открытии стандартной формы просмотра она получает параметры. Ровно то что ты в нее передаешь, ты и получаешь на выходе.
>И отладчиком тыкнись, когда все таки ТолькоПросмотр становится истиной.
ну я же уже сказала, что не становится оно истиной.
Так, давайте сначала:
Я захожу под Администратором, у меня полные права.
Вывожу печатную форму на печать, и у табличного поля, повторяюсь:
>а тут табличный документ и так имеет свойство ТолькоПросмотр = Ложь, и Защита = Ложь,
То есть ТолькоПросмотр = ЛОЖЬ И редактировать НЕЛЬЗЯ.
Отладчиком проходила все, и свойство ТолькоПросмотр как было ложь так и осталось.
А вот если зайти в меню -> Таблица -> Вид -> Редактирование, то редактировать табличное поле становится можно (права это позволяют),
при этом свойство ТолькоПросмотр НЕ ИЗМЕНЯЕТСЯ, а так и остается ЛОЖЬ.
ВОПРОС: что делает стандартный пункт в меню и как это повторить на действии в кнопке.
Открыта форма, только на просмотр. Как узнать в этом же сеансе - форма открыта с блокировкой или без?
.
вроде вот так работает:
.
Есть родительская форма документа открытая, только на просмотр
Как сделать так, чтобы открыть из ВПФ другую модальную обработку диалоговую, которая изменяет реквизиты исходного документа и показать форму родительского документа в режиме просмотра с уже измененными реквизитами
Формекс есть, 1С++ есть, можно переоткрывать обработки прочее. Должно по возможности все "прозрачно", без лишних морганий.
.
.
И еще вопрос - как программно открыть форму документа (и соотв.справочника тоже, один механизм наверное) - в таком же режиме, как открывается на просмотр с панели инструментов на просмотр "лупой".
а если весь код убрать (временно) - блокировка так и останется?
(6) Как я понимаю, ты либо открыл на просмотр (лупой), либо на изменение - и тогда нет разницы есть ТолькоПросмотр() или нет.
Наверное, перехватывать при открытии формы, закрывать ее и после закрытия открывать ВПФ
(8) "ты либо открыл на просмотр (лупой), либо на изменение" - нет, есть еще третий вариант ОткрытьФорму(,,1) или в открытой форме Форма.ТолькоПросмотр(1) - и еть большая разница как открыто на просмотр - лупой или программно.
(8) "как программно открыть форму документа (и соотв.справочника тоже, один механизм наверное) - в таком же режиме, как открывается на просмотр с панели инструментов на просмотр "лупой".." - этот вопрос к проблеме с формадокумента+ВПФ не относится, это отдельный вопрос
(14) смысл сего кода? Док.Записать() и так в транзакции выполняется
а если нужно узнать заблокирован ли объект этой формой или какой-то другой, то да: "Стучаться в метод Блокировка()"
на счет побочного эффекта от Форма.ТолькоПросмотр(0) вот
Мот это последствия короновируса - старческий маразм ? )(20) Вообще не понимаю зубоскальства к Чу.
За себя скажу: за 25 лет в семерке - дофига осталось черных зон, с которыми не разбирался в виду ненужности. Ещё больше серых зон, которые просто обходил стороной, где можно было обойтись: быстро сделал, все довольны. Плюс приобретённые серые зоны - 15 лет назад разобрался, а потом ни разу не пригодилось, вот и стёрлось.
"по лупе" - то же самое что ОткрытьФорму с 1 в параметре ТолькоПросмотр.
"показать измененный" - тупо ОткрытьФорму с 1 в параметре ТолькоПросмотр (если эта форма была открыта ранее - она переоткроется т.е. обновится в соответствии с данными и активизируется)
Соори за суматошное ночное изложение и толику бреда.
Сказывается самоизяоляция и ночные посиделки.
.
В результате с божей помощью. АнедейАндреича итд, по сущетсу разобрался. Все ожидаемо и логично.
Но есть один затык..
исходные условия теста.
- документ записан.
- открытая форма документа.
тест
1. ОткрытьФорму(,,0) + Форма.ТолькоПросмотр(1) - Объект заблокирован, только просмотр, ВПФ из контекста формы, изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - все ок, форма только на просмотр и реквизиты изменены. Все как хотелось.
2. ОткрытьФорму(,,0) - Объект заблокирован, форма доступна редактирование, ВПФ из контекста формы, изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - все ок, форма только на доступна на изменение, реквизиты изменены. все как хотелось.
2. ОткрытьФорму(,,1)+Форма.ТолькоПросмотр(1) - Объект свободен (логично), только просмотр, ВПФ из контекста формы изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - ничего не ругается, все типа ок, форма только на просмотр и реквизиты НЕ изменены (что как бы тоже логично). Тут как бы понятно, но не то что хотелось.
4. ОткрытьФорму(,,1) - Объект свободен (логично), только просмотр, ВПФ из контекста формы изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - ничего не ругается, все типа ок, форма только на просмотр и реквизиты НЕ изменены (что как бы тоже логично). Тут как бы понятно, но не то что хотелось.
5. Лупа "на просмотр" - Объект свободен (логично), только просмотр, ВПФ из контекста формы изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - ничего не ругается, все типа ок, форма только на просмотр и реквизиты НЕ изменены (что как бы тоже логично). Тут как бы понятно, но не то что хотелось.
6. Лупа "на просмотр"+Форма.ТолькоПросмотр(1) - Объект свободен (логично), только просмотр, ВПФ из контекста формы изменяем реквизиты контекста. Контекст.Форма.Обновить()+Контекст.Записать() - ничего не ругается, все типа ок, форма только на просмотр и реквизиты НЕ изменены (что как бы тоже логично). Тут как бы понятно, но не то что хотелось.
итого: при изменении реквизитов контекста формы
- обновление реквизитов на форме (и в объекте) ПРОИСХОДИТ когда объект заблокирован, в пп.1,2 - то что надо
- обновление реквизитов на форме (и в объекте) НЕ происходит когда объект свободен, в пп.2-6 - это не устраивает.
Хочется, значит, в пп.2-6 - в ВПФ проверяем свободен ли объект- документ текущего контекста формы (это сумеем), и если объект-документ свободен -
тогда реквизиты объекта меняем не через контекст формы, а через объект (это тоже сумеем). ОК.
. Но после изменения объекта - хочется актуализировать отображение формы, открытой ранее на просмотр, для отображения изменившихся реквизитов.
И тут вот затык - сделать как из ВПФ переоткрыть форму в режиме просмотра?
И что важно - без правки типовой конфы?!
Собственно вопрос в следующем. Имеется некий документ, на управляемых формах. Когда документ проведен, т.е. после того как нажали кнопку Провести, все поля документа, включая таб. части, должны стать недоступными для редактирования, форма документа при этом не закрывается.
В модуле документа в ОбработкеПроведения() недоступны интерактивные операции, т.е. операции с формой, да и как то это неправильно из модуля документа работать с его формой.
Если кто сталкивался, подскажите, пжл.
__________________Помощь в написании контрольных, курсовых и дипломных работ здесь
Как в 1С 8.1 учебная версия Конфигурирование сделать запрет проведения документа с пустыми незаполненными поля
Как в 1С 8.1 учебная версия Конфигурирование сделать запрет проведения документа с пустыми.
Как сделать недоступными поля
Доброго времени суток! Подскажите, пожалуйста, нужно сделать так, чтобы при выборе из списка.
Универсальная программа для создания, редактирования и проведения тестов
Тема не новая в рассмотрении и вполне уже заезженная. В мире(то бишь в интернете, есть куча.
Изменить значение реквизитов ТЧ документа по событию проведения другого документа
Здравствуйте.В собственной конфе 1С 8.3 есть документ "ОбъектныйГрафик" с ТЧ "Задания". Также есть.
ПриЗаписи() и ПриОткрытии() вставляешь процедуру УстановитьДоступностьЭлементовФормы()
по-моему, кнопки всё равно нажимаются. Их надо отдельно проходить.Спасибо, но все равно немного не то. У меня сейчас ПриОткрытии() формы документа уже анализируется
Когда я закрываю и открываю этот вновь созданный документ, тогда все ОК, стреляет обработка ПриОткрытии(), вышеуказанный кусок кода делает поля формы недоступными. Да, кнопки действительно доступны, но это не суть, нужно только поля "закрыть".
Читайте также: