1с как узнать открыта ли форма документа

v8: как проверить программно что форма уже была открыта?!

ProfforG 16.11.2011 19:31
Прочитано: 13964
00
у меня некоторые Элементы на форме имеют закрытый доступ или видимость. при повторном открытии мне нужно проверить форма открыта повторно или нет?! как условие будет выглядеть?!

ПриПовторномОткрытии()
Если ЭтаФорма. = Истино Тогда
//
//выставляю все доступы элементов и видимость как мне надо
//
КонецЕсли;
КонецПроцедуры

Yandex
Возможно, вас также заинтересует
rekl150103

если форма документа(ранее созданного) открывается повторно, то тогда (пишу необходимый обработчик)

а вот почему мне нужна такая проверка при повторном открытии формы документа:

у меня видимость к некоторым полям стоит изначально закрытая. при заполнении одного поля открывается другое, оно заполняется соответственно. провожу документ. закрываю его. потом пытаюсь документ к примеру изменить или добавляю копированием или просто открываю его, открывается форма, и те реквизиты которые заполнены, у них видимость = ложь, а мне надо чтобы видимость = истина была.

в обработчике ПриПОвторном открытии будет так:

Если (форма документа открыта повторно?! )=да тогда
реквизиты.видимость = истина

Источник

как узнаешь, что документ открыт именно для редактирования?

ЗЫ. почитай про блокировки

Форма осуществляет запись только поверх той версии объекта, из которой она открывалась. В твоем примере, насколько я понял:
1. Открывается форма версии 1.
2. Обработка читает из БД документ версии 1
3. Обработка изменяет и записывает документов. Ставится версия 2 у этого документа.
4. При попытке записать форму, система проверяет текущую версию в БД (она там будет уже за номером 2). Найдя расхождение, система ругается.
5.
6. ПРОФИТ!
7-Uho > что то никак с ней не разбирусь.
«ЗаблокироватьДанныеФормы:Для установки пессимистической блокировки»
Написал в Основную Форму
в процедуру Перед ОТкрытием
КлючУникальности = Новый УникальныйИдентификатор;
ЗаблокироватьДанныеДляРедактирования(ссылка,,КлючУ никальности);

Создаю новый документ, записываю его (не провожу) произвожу в нем после этого изменения

(4) Что за чушь? В данном применении, совершенно бредово сохранить отредактированное письмо, хотя отправлен был совершенно другой экземпляр. Опиши конкретную ситуацию, тогда и можно говорить. 10-med > в обработке используй

Попытка
ЗаблокироватьДанныеДляРедактирования()
Исключение

Источник

Открытие форм

Область применения: управляемое приложение, мобильное приложение.

Рекомендация обусловлена соображениями

2. В случаях когда форма требует параметризации при открытии, все ее параметры следует указывать в наборе параметров формы. Таким образом, набор параметров формы декларативно описывает возможности формы по ее параметризации.

Параметры формы из этого набора могут быть указаны в вызывающем коде при открытии формы ( ОткрытьФорму ).

3. Не следует применять другие способы параметризации формы при открытии. Например, нужно избегать обращения к методам и свойствам формы после ее открытия.
Например, вместо

ФормаПутеводитель = Форма.ОткрытьФорму(«ОбщаяФорма.ПутеводительПоСистеме»);
ФормаПутеводитель.Элементы.ГруппаШаг.ТекущаяСтраница = ФормаПутеводитель.Элементы.ГруппаШаг.Страницы.Приветствие;

следует по той же причине использовать параметры формы:

ОткрытьФорму(«ОбщаяФорма.ПутеводительПоСистеме», Новый Структура(«РежимОткрытия», «Приветствие»));

4. Для получения результата работы формы, вместо непосредственного обращения к элементам и реквизитам формы

ФормаВопроса = ПолучитьФорму(«ОбщаяФорма.ФормаВопроса»);
ФормаВопроса.ОткрытьМодально();
Если ФормаВопроса.БольшеНеПоказыватьНапоминание Тогда
// …

следует использовать процедуры-обработчики оповещений, которые будут вызваны при завершении работы пользователя с формой:

Оповещение = Новый ОписаниеОповещения(«БольшеНеПоказыватьНапоминаниеЗавершение», ЭтотОбъект);
ОткрытьФорму(«ОбщаяФорма.ФормаВопроса». Оповещение, РежимОткрытияОкнаФормы.БлокироватьВеcьИнтерфейс);
.

&НаКлиенте
Процедура БольшеНеПоказыватьНапоминаниеЗавершение(БольшеНеПоказыватьНапоминание, Параметры) Экспорт

Если БольшеНеПоказыватьНапоминание = Неопределено Тогда
Возврат;
КонецЕсли;

Если БольшеНеПоказыватьНапоминание Тогда
// …

5. Другие ограничения:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Не ПользователиКлиентСервер.ЭтоСеансВнешнегоПользователя() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;

КонецПроцедуры

6. Следующие виды форм должны быть всегда доступны пользователю в режиме 1С:Предприятия из меню «Все функции» вне зависимости от того, размещены ли соответствующие объекты в командном интерфейсе приложения или нет:

Источник

Узнать, открыта ли форма документа

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Как узнать, открыта ли форма каким-то пользователем?
Добрый день! Ситуация такова: в сетевой базе 1С 8.1 (сервер 1С 8.1) есть обработка, которая по.

Как узнать открыта ли определенная форма
Есть две формы. На ВТОРОЙ форме определенные действия должны происходить ТОЛЬКО в том случае, если.

Как узнать какая форма открыта?
Допустим у меня в программе 10 форм Form1, Form2 и т.д. и например открыты 1, 3, 6, 8 формы, как.

Сразу возникает вопрос: а зачем?

А если эта форма открыта у другого пользователя на другом компьютере, то узнать об этом будет невозможно.

Ну если спрашиваю, значит нужно.
Если прям очень интересно, то инвентаризация проводится долго, а документами, которые могут висеть открытыми пользуются многие. Если они у кого-то долго будут висеть открытыми, то другие не смогут их редактировать.

Другие пользователи мне не нужны. Нужно узнать, открыта ли у текущего пользователя.

tickУзнать с какой формы открыта текущая форма
Нужно узнать с какой формы, был осуществлен переход на текущую форму. т.е. что то типа Sender, но.

Как узнать, с какой формы открыта форма, активная сейчас
есть 3 формы Form1, Form2, Form3 На этих формах есть кнопка Adotable1.Append;.

Как узнать, с какой формы была открыта (Form*.ShowModal:) текущая форма
Доброго всем времени суток! Помогите, пожалуйста решить одну задачку: Проект для расчёта времени.

Как узнать, форма открыта для добавления записи или для изменения существующей?
всем привет! собственно вопрос в том и заключается: как узнать форма открыта для добавления записи.

Проверить, открыта ли форма?
Люди добрые, как проверить, открыта ли форма?

Источник

Проверка закрытия формы

Если Док.Товары.Количество() > 0 Тогда

Правильно, к форме обращаться не зачем.
Достаточно обратиться к объекту

Не совсем понятно откуда Вы запускаете этот код.
Если из обработки создаете и заполняете документ Док то достаточно
проверить Док.ЭтоНовый()=Истина

Если у Док проверить УникальныйИдентификатор
у не записаного объекта он будет равен
Док.Ссылка.УникальныйИдентификатор() = «00000000-0000-0000-0000-000000000000»

Если из модуля объект Док то тогда

Если ЭтотОбъект.ЭтоНовый() = Истина Тогда
Сообщить(«Это новый, не записаный документ. «);
КонецЕсли;

Выше не верно написал. Не разобрался в вопросе.

Док.Открыть() не ждет реакции пользователя сохранил он документ или закрыл без сохранения.
Док.Открытьмодально() как раз ждет не не продолжает выполнение кода 1С пока пользователь не закроет Док с сохранением или без.

К примеру Вы создаете 10 документов в обработке.
У вас 1С на экране сразу откроет 10 форм новых документов если использовать Док.Открыть()
И обработка закончит выполнение.

Поэтому без Модального режима Вы не унаете о реакции пользователя.

Не зная полного замысла этой обработки тяжело что то посоветовать

Не записанный документ, не имеет сохраненной ссылки в базе данных. Попробуйте
Если ЭтотОбъект.Ссылка.Пустая() Тогда

Документ не записан

Открыта()
Возвращаемое значение:

Определяет, открыта ли данная форма.

Толстый клиент.
Пример:

Если Не Форма.Открыта() Тогда
Форма.Открыть();
КонецЕсли;

ЭтоНовый я уже разобрался
а вот с модифицированностью интересно

если док. Модифицированность тогда
удалить что-то (те документ не записан)
иначе
записан
конецесли;

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

Изменение объекта, являющимся значением основного реквизита формы. Это изменение может быть произведено интерактивно с помощью элемента управления связанным с реквизитом объекта или программно.
При изменении данных или отработке события элемента управления, у которого взведен флаг «изменяет данные».

Признак модифицированности формы сбрасывается системой при наступлении одного из следующих событий:

Измененный объект, являющийся значением основного реквизита формы, был успешно записан.
При открытии формы после события ПередОткрытием() формы, но перед событием ПриОткрытии().

Флаг модифицированности сбрасывается после события ПередОткрытием() формы, но перед событием ПриОткрытии(), так как при открытии формы нового объекта или уже записанного пользователь ожидает, что состояние данных не являются измененными. Если для нового объекта нужно дополнительная его инициализация перед редактированием в форме, то ее можно произвести в обработчике события формы ПередОткрытием(). В этом случае признак модифицированности не будет взведен у формы, как того и ожидает пользователь. Если же нужно внести исправления в объект при открытии формы, которые должны отразиться на признаке модифицированности, то это следует произвести в обработчике события формы ПриОткрытии().

Кроме автоматического взведения и сброса флага модифицированности системой, разработчик может управлять признаком модифицированности формы посредством свойства формы Модифицированность. Данная модель, с одной стороны, не требует от разработчика дополнительных усилий для поддержки стандартной функциональности редактирования объекта с помощью формы, с другой стороны, предоставляет полный контроль над признаком модифицированности формы.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с как сохранить печатную форму в xml
  • 1с как сохранить настройки формы