1с найти форму открытую форму

Как получить список открытых окон 1С

В 1С есть возможность перебрать все открытые окна и проанализировать их содержимое. Рассмотрим работу с открытыми окнами на примере.

Ниже представлен код для решения поставленной задачи:

При нахождении нужного заголовка происходит получение управляемой формы и анализ реквизита «Контрагент». Если контрагент пустой, то текущее окно активизируется методом Активизировать () и выполнение процедуры прекращается.

Остались вопросы?
Спросите в комментариях к статье.

2 комментария

Здравствуйте, при написании этого кода:
Процедура СохранитьДанныеКлиенскогоПриложения()
Окна = ПолучитьОкна();
Для каждого Окно Из Окна Цикл
Формы = Окно.Содержимое;
Для каждого Форма из Формы Цикл
Если Форма.Модифицировать Тогда
Файл = Новый ЗаписьXML
ФАйл.ОткрытьФайл0(«D:/Working»+Форма,ИмяФормы».xml»);
СериализаторXDTO.ЗаписатьXML(Файл,Форма.Объект);
Файл.Закрыть();
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

После уго запуска высвечивает ошибку:
Поле объекта не обнаружено (Содержимое)

Добрый день!
Возможно, Вы пробуете выполнить код в режиме обычного приложения. В этом случае метод ПолучитьОкна() возвращает значение Неопределено. Данный метод работает только в режиме управляемого приложения. К тому же, «Окно» — это зарезервированная переменная в режиме управляемого приложения, необходимо использовать другую переменную.

Источник

получение формы открытого документа (обычные формы)

Объект = Выборка.ссылка.ПолучитьОбъект();
Номер = Объект.Ссылка.Номер;
Док=Документы.ЗаказПокупателя.НайтиПоНомеру(Номер);
П = Новый Структура(«Ключ», док);
мФорма = ПолучитьФорму(«Документ.ЗаказПокупателя.ФормаОбъекта»,П);
Если мФорма.Открыта() Тогда
мФорма.Прочитать();

Сообщить(«Не открыта»);
КонецЕсли;
вообще возможно ли получить форму открытого документа?

Удобнее всего использовать подобный код:

Курите в сторону ЗаблокироватьДанныеДляРедактирования.
Т.к. я очень сильно сомневаюсь, что вы получите формы, открытые в других сеансах

т.е код примерно такой:

Смотрите код внимательно.

(8) Очень сложно отлаживать программу не видя всего кода.
Ситуация как «у трёх слепых, изучающих одного слона»

Я исхожу из того, что код

Адекватный и там данные верные.

По идее, можно сразу получить форму

Исправил
Номер = Объект.ссылка.Номер;
ДатаД =Объект.ссылка.Дата;
Сообщить(«номер «+ номер+ » » +датаД);
Док=Документы.ЗаказПокупателя.НайтиПоНомеру(Номер,ДатаД);
Сообщить(«Док «+ Док.ссылка);

Сообщить(» открыта»);
иначе
Сообщить(«не открыта»);
КонецЕсли;

тут другое интересно
ДатаСв=Док.ссылка.ПолучитьФорму(«ФормаДокумента»).Дата;
Сообщить(«ДатаСв открыта»+ДатаСв);

ДатаСв открыта08.06.2015 12:57:28

те данные формы он видит

вот нашел но тоже не работает
Док1 = ТекДок.ПолучитьОбъект();
ФормаДок1 = Док1.ПолучитьФорму(«ФормаДокумента»);
Если ФормаДок1.Открыта() Тогда

(обязательный)
Тип: Строка.
Путь к файлу внешней обработки.
(необязательный)

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

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Функция ОткрытьФорму()

Открывает произвольную форму

Функция ОткрытьФорму() имеет несколько вариантов синтаксиса:

Вариант синтаксиса 1: По имени

Функция ОткрытьФорму() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров процедуры ОткрытьФорму() :

Имя параметра Тип
Описание
ИмяФормы Строка
Имя формы, образованное как полный путь к объекту Форма в дереве метаданных (например, «Справочник.Номенклатура.Форма.ФормаОбъекта», «ОбщаяФорма.ФормаПредупреждения») или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, «Справочник.Номенклатура.ФормаОбъекта»). Поддерживаются следующие формы по умолчанию:

Применимо только для управляемой формы.

ОповещениеОЗакрытии (необязательный) ОписаниеОповещения
Содержит описание процедуры, расположенной в текущем или в общем модуле, которая будет вызвана при закрытии открываемой формы
РежимОткрытияОкна (необязательный) РежимОткрытияОкнаФормы
Указывает режим открытия окна управляемой формы. Используется только в управляемом приложении. Варианты значений:

Возвращаемое значение

Описание варианта 1

Вариант синтаксиса 2: По форме

Функция ОткрытьФорму() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров процедуры ОткрытьФорму() :

Имя параметра Тип
Описание
Форма Форма; УправляемаяФорма
Форма или управляемая форма. В режиме тонкого и веб-клиентов только управляемая форма.
Окно (необязательный) ОкноКлиентскогоПриложения
Окно приложения, в котором будет открыта форма. Окном может быть только основное окно приложения или вспомогательное окно формы.

Применимо только для управляемой формы.

Жирным шрифтом выделены обязательные параметры

Возвращаемое значение

Описание варианта 2

Функция ОткрытьФорму() открывает форму, полученную ранее функциями ОткрытьФорму() или ПолучитьФорму()

Доступность

Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение(клиент).

Пример использования

Пример кода с использованием процедуры ОткрытьФорму() :

Источник

Работа с формами в «1С:Предприятии 8»

f651907def0d877fc1817b8b1260b82b

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

Например, вызывая справочник «Контрагенты», мы получаем на экране как раз такую форму-список (рис. 1).

doc 1250 1m

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

При наведении (не нажатии!) мышью на одно из действий, вы получите краткое пояснения этого действия и «горячую» клавишу (или комбинацию клавиш) для его выполнения, если имеется такая возможность.

Кроме этого, в командной панели, как правило, присутствует элемент «Действия», где собраны все действия, которые можно выполнять над элементами данного списка.

При отметке какого-либо элемента в списке, можно нажать на нем правой кнопкой мыши. В результате вы получите список разрешенных действий для данного элемента.

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

Для часто используемых в форме списков действий назначены комбинации клавиш (подробнее об использовании «горячих» клавиш читайте в номере 10 (октябрь) «БУХ.1С» за 2007 год, стр. 8), использование которых повысит эффективность работы в программе:

Действие

Сочетание клавиш

Активация действия в командной панели

Добавить новый элемент

Пометка на удаление

Добавить группу (для справочников с иерархией)

Переместить элемент в другую группу (для справочников с иерархией)

Быстрый вход внутрь группы (для справочников с иерархией)

Выход на уровень выше

Добавить новый элемент копированием текущего

Изменить текущий элемент

В некоторых списках имеется возможность множественного выделения выбранных элементов с целью их групповой обработки. Для того, чтобы выделить несколько элементов (если это разрешено в списке), достаточно нажать клавишу Shift и прощелкать мышью необходимые элементы.

Для этого можно использовать клавиши со стрелками (вверх, вниз, вправо, влево), включая привычное всем нам страничное листание (PageUp/PageDown) в сочетании с этими клавишами. Работают также общепринятые «горячие» клавиши:

Действие

Сочетание клавиш

Выделить все от текущей позиции до начала списка

Выделить все от текущей позиции до конца списка

Выделить все элементы

Копирование текстового представления текущей ячейки в списке элементов

Форма списка

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

Например, вызывая справочник «Контрагенты», мы получаем на экране как раз такую форму-список (рис. 1).

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

При наведении (не нажатии!) мышью на одно из действий, вы получите краткое пояснения этого действия и «горячую» клавишу (или комбинацию клавиш) для его выполнения, если имеется такая возможность.

Кроме этого, в командной панели, как правило, присутствует элемент «Действия», где собраны все действия, которые можно выполнять над элементами данного списка.

При отметке какого-либо элемента в списке, можно нажать на нем правой кнопкой мыши. В результате вы получите список разрешенных действий для данного элемента.

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

Для часто используемых в форме списков действий назначены комбинации клавиш (подробнее об использовании «горячих» клавиш читайте в номере 10 (октябрь) «БУХ.1С» за 2007 год, стр. 8), использование которых повысит эффективность работы в программе:

Действие

Сочетание клавиш

Активация действия в командной панели

Добавить новый элемент

Пометка на удаление

Добавить группу (для справочников с иерархией)

Переместить элемент в другую группу (для справочников с иерархией)

Быстрый вход внутрь группы (для справочников с иерархией)

Выход на уровень выше

Добавить новый элемент копированием текущего

Изменить текущий элемент

В некоторых списках имеется возможность множественного выделения выбранных элементов с целью их групповой обработки. Для того, чтобы выделить несколько элементов (если это разрешено в списке), достаточно нажать клавишу Shift и прощелкать мышью необходимые элементы.

Для этого можно использовать клавиши со стрелками (вверх, вниз, вправо, влево), включая привычное всем нам страничное листание (PageUp/PageDown) в сочетании с этими клавишами. Работают также общепринятые «горячие» клавиши:

Действие

Сочетание клавиш

Выделить все от текущей позиции до начала списка

Выделить все от текущей позиции до конца списка

Выделить все элементы

Копирование текстового представления текущей ячейки в списке элементов

Форма элемента

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

Для форм элементов характерно наличие командных панелей сверху и/или снизу открываемого окна. Это командные панели формы с действиями, которые относятся к открытому объекту конфигурации целиком.

Обычно одна из команд назначена «кнопкой по умолчанию». Она активируется комбинацией клавиш Ctrl+Enter. Такая кнопка выделяется жирным (в нашем примере, это кнопка «ОК»).

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

Комбинация Alt+F10 работает и здесь, она активирует ту командную панель, с элементами которой пользователь работает в данный момент времени.

Полезно знать, что практически все действия на форме элемента можно выполнять без использования мыши.

Клавиатурное управление, как правило, значительно ускоряет процесс работы с данными. Например, нажатие на клавишу Enter или Tab, позволяет «перескакивать» с одного элемента формы на другой (следующий за ним). Нажатие Shift+Tab позволяет «скакать» по элементам в обратном направлении. Если вы находитесь в каком-либо поле ввода (например, на рис. 2 в группе контрагентов), достаточно написать первые буквы нужного вам элемента и нажать Tab и программа автоматически подставит нужный элемент в поле ввода (если он уникален в системе), либо предоставит автоматический список для уточнения вашего варианта.

Действие

Сочетание клавиш

Открыть форму выбора нужного элемента

Открыть форму элемента уже выбранного объекта в поле ввода

Очистить поле ввода

Быстрое переключение между закладками на форме, если они есть

Ctrl+PageUp и Ctrl+PageDown

Переключение активного элемента типа «Флажок»

Отказаться от внесенных изменений в текстовых элементах формы

Вернуть отмененное действие

Закрытие практически любой формы

Закрытие/открытие окна служебных сообщений (того, которое может появляться внизу)

При вводе новых объектов конфигурации при помощи форм элементов, обязательные для заполнения поля подчеркнуты красным. Например, для документа «Реализация товаров и услуг: Продажа, комиссия» такими полями являются поле «Контрагент» и поле «Договор» (рис. 4).

Выделять текстовые блоки можно мышью, а можно курсорами с нажатой клавишей Shift. Это бывает полезно для операций с буфером обмена.

Форма выбора

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

Форма группы

Для каждого объекта конфигурации, может быть задано при разработке несколько форм: разнообразные формы элемента, выбора, вспомогательные формы. Необходимо это, в первую очередь, для облегчения ввода и обработки информации, хранящейся в этом объекте. То есть набор форм, как правило, определяется на этапе создания конфигурации и в разных конфигурациях может отличаться друг от друга даже для однотипных объектов (например, в типовых конфигурациях «Бухгалтерия предприятия» и «Управление торговлей»).

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

Если специальных пояснений нет, то вам отобразится общая информация по работе с текущим типом формы.

Вызвать справку можно, нажав клавишу F1.

Кроме этого, в таком случае всегда доступны «горячие» клавиши Ctrl+Shift+Стрелка вверх и Ctrl+Shift+Стрелка вниз.

Источник

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