Получить открытые окна 1с
Открыть форму справочника можно несколькими способами:
А. По имени формы
Если требуется открыть основную форму нового элемента справочника или форму списка, достаточно написать следующий код:
Где ФормаОбъекта — имя основной формы открываемого справочника. Вместо нее можно указать другую основную форму, которую требуется открыть:
ФормаОбъекта | основная форма элемента справочника |
ФормаГруппы | основная форма группы справочника |
ФормаСписка | основная форма списка справочника |
ФормаВыбора | основная форма выбора справочника |
ФормаВыбораГруппы | основная форма выбора группы |
Чтобы открыть любую другую форму, необходимо указать ее имя после ключевого слова Форма (точно так, как оно задано в конфигураторе):
Б. По ссылке
Если в контексте вызова доступна ссылка на элемент или группу справочника, можно воспользоваться параметрами формы:
а можно воспользоваться универсальными методами и просто открыть значение:
Получение списка открытых окон и вывод свойств элементов
Похожие FAQ
Еще в этой же категории
Как на управляемой форме разместить список регистра сведений с отбором? 15
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом " ДинамическийСписок" В поле " Основная табли Поле выбора
Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип – Произвольный, Использование – Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Как установить параметр динамического списка? 9
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Как обновить динамический список или реквизит на форме клиента? 7
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Форма
Программное создание таблицы значений с условным оформлением 6
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Посмотреть все в категории Работа с Формой (Диалог) и её элементами
В 1С есть возможность перебрать все открытые окна и проанализировать их содержимое. Рассмотрим работу с открытыми окнами на примере.
Предположим, что стоит задача при нажатии на кнопку анализировать открыта ли обработка «Моя обработка». Если обработка открыта и в ней не заполнен реквизит «Контрагент», то необходимо активизировать ее форму, в остальных случаях следует создать и открыть новую форму обработки. Данную задачу нельзя решить при помощи параметров метода ОткрытьФорму () .
Ниже представлен код для решения поставленной задачи:
Список открытых окон получается при помощи функции ПолучитьОкна () . Далее происходит обход открытых окон и анализ заголовков. Текст заголовков анализируется не по точному соответствию, а по вхождению необходимых слов, т.к. при изменении реквизитов в форме к заголовку может добавиться признак модифицированности — постфикс » *».
При нахождении нужного заголовка происходит получение управляемой формы и анализ реквизита «Контрагент». Если контрагент пустой, то текущее окно активизируется методом Активизировать () и выполнение процедуры прекращается.
Если нет открытых окон с требуемым заголовком и пустым реквизитом «Контрагент», происходит открытие нового окна при помощи метода ОткрытьФорму () . Четвертым параметром в метод передается уникальный идентификатор; это необходимо для того, чтобы в любом случае было открыто новое окно.
Остались вопросы?
Спросите в комментариях к статье.
2 комментария
Здравствуйте, при написании этого кода:
Процедура СохранитьДанныеКлиенскогоПриложения()
Окна = ПолучитьОкна();
Для каждого Окно Из Окна Цикл
Формы = Окно.Содержимое;
Для каждого Форма из Формы Цикл
Если Форма.Модифицировать Тогда
Файл = Новый ЗаписьXML
ФАйл.ОткрытьФайл0(«D:/Working»+Форма,ИмяФормы».xml»);
СериализаторXDTO.ЗаписатьXML(Файл,Форма.Объект);
Файл.Закрыть();
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
После уго запуска высвечивает ошибку:
Поле объекта не обнаружено (Содержимое)
Добрый день!
Возможно, Вы пробуете выполнить код в режиме обычного приложения. В этом случае метод ПолучитьОкна() возвращает значение Неопределено. Данный метод работает только в режиме управляемого приложения. К тому же, «Окно» — это зарезервированная переменная в режиме управляемого приложения, необходимо использовать другую переменную.
В текущей работе пользователь обычно открывает несколько объектов. Это может быть документ, справочник, отчет и т.д. В предыдущем интерфейсе не было проблем быстро найти открытый объект и актуализировать его для дальнейшей работы используя окна или вкладки.
Все Окна
На панели системных команд (это самая верхняя строка командного интерфейса) кликаем по кнопке «Добавить или удалить кнопки», затем кликаем по пункту «Все окна …». На панели системных команд появится кнопка «Список окон». Клик по ней открывает форму «Все окна», в которой отображается список открытых объектов конфигурации. Это могут быть справочники, формы документов, списки журналов, регистры накопления, регистры сведений, план счетов.
По щелчку Все Окна открывается форма со списком открытых окон:
В прежнем интерфейсе, независимо от его внешнего вида «Формы в закладках» или «Формы в отдельных окнах», все открытые формы были на виду: либо в закладках на рабочем столе, либо в трее операционной системы.
Пользователю легко было найти нужную форму. Кроме того он наглядно видел насколько он увлекся в количестве открытых окон. Теперь же, во-первых, он должен знать, как добраться до кнопки «Список окон». Во-вторых, он не видит, сколько окон им открыто. Для этого он должен каждый раз кликать по кнопке «Список окон».
Еще вариант: Добавить панель открытых Окон
Нажмите в меню "Вид > Настройки панелей":
Я люблю вкладки сверху, поэтому перетаскиваю Панель открытых вверх и жму ОК
В результате вверху появляется панель открытых окон:
Похожие FAQ
Еще в этой же категории
Запуск базы 1С в режиме запуска Обычное приложение или Управляемое приложение 28
Для принудительного запуска предприятия в Обычном или Управляемом приложении используются следующие ключи: /RunModeOrdinaryApplication запуск толстого клиента в обычном режиме, несмотря на настройки конфигурации и пользователя, от имени которого Как изменить картинку главное в панели инструментов УП 1С? 7
Разрабатывая конфигурацию, задался вопросом: Как изменить картинку раздела "Главное" в интерфейсе Такси? Сразу скажу, беглый поиск по настройкам не помог, но оказалось все не так сложно. В свойствах конфигурации есть пункт "Картинка основного разде Использование модальных окон в данном режиме запрещено! Модальные окна не работают, как быть? 4
В конфигураторе в свойства конфигурации, есть параметр «Режим использования модальности» Если установить Не использовать , то - принципе весь код, который после ОткрытьФормуМодально() Вопрос(), Предупреждение(), Выборов и диалогов открытия-сохр Пример хранения изображений в базе (отдельный справочник), в интерфейсе Такси и без модальности 3
Часто разрабатывая некую конфигурацию, пользователи хотят прикреплять к элементу справочника фото и чтобы они хранились в базе данных. В этой статье я расскажу как к справочнику объекты строительства подключить хранилище фотографий в виде справочни Как из панели меню убрать пункт Вид и отключить Настройка панели? 3
Нужно чтобы пользователи не могли менять настроенный для них интерфейс! Решение: Для отключения нужно в правах доступа у корневого элемента конфигурации убрать право " Сохранение данных пользователя ". Отключатся настройка панелей и пункт ме Посмотреть все в категории 1С Общие вопросы - Управляемые формы и Такси
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Понадобилось узнать список всех окон, открытых в 1С, и получить определенное.
Так и появился маленький пример, отображающий списком все окна, открытые в 1С.
По двойному клику может открыть окно (если объект встроен в конфигурацию).
Специальные предложения
Автор запретил комментарии
Просмотры 10844
Загрузки 6
Рейтинг 3
Создание 06.06.17 15:42
Обновление 06.06.17 15:42
№ Публикации 631616
Кому Для всех
Конфигурация Конфигурации 1cv8
Операционная система Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
Код открыт Да
Курс представляет собой отработанные и проверенные личным опытом основателей Школы инструменты решения вопросов с подчиненными, коллегами, заказчиком и руководством.
См. также
Альтернативный способ добавления элементов и реквизитов на формы Промо
Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.
1 стартмани
09.09.2019 20439 39 bmk74 8
Выделение текущей строки в отчете (сделать сразу во всех отчетах и ничего не сломать)
Как за 10 минут упростить работу с отчётами программистам и пользователям. Добавить ВО ВСЕ ОТЧЁТЫ механизм автоматического выделения текущей строки отчёта (той, на которой установлен курсор). И ПРИ ЭТОМ НИЧЕГО НЕ СЛОМАТЬ.
1 стартмани
17.10.2021 5259 6 Патриот 48
Работа с картами в 1С на примере бесплатной библиотеки Leaflet
Разработка функционала отображения и выбора пунктов доставки на карте прямо в 1С с помощью бесплатной библиотеки Leaflet. Тестирование производилось на платформе 8.3.15.1534 на тонком клиенте.
1 стартмани
31.03.2021 14981 49 Parsec1C 18
Универсальные функции для работы с цветом в 1С
Все на что мы смотрим состоит из цветов в том числе и то, что есть в конфигурациях на 1С :) За время своей работы скопилось достаточно 1С-функций, которые что-то делают с цветом. Это публикация - попытка их систематизировать. Что есть: работа с HEX, HSV, HSL, CMYK представлениями цвета, конвертации из одной системы хранения в другую, работа с каталогами RAL, работа со случайными цветами, контрастные и инверсные цвета, трансформация цветов (осветление, затемнение, градации серого, смешивание цветов), работа с именованными CSS-цветами и т.п. В общем концептуально.
1 стартмани
07.08.2020 7094 18 Diversus 8
Расширенная настройка динамического списка УФ Промо
Открывая управляемую форму выбора и не увидев там видимых в форме списка элементов, часто хочется узнать причину их отсутствия там, т. е. какой наложен отбор. Но стандартная настройка списка управляемой формы показывает только пользовательские настройки, скрывая от пользователя фиксированный отбор. Предлагаю вам расширение конфигурации с расширенной настройкой динамического списка, отображающей пользователю кроме пользовательских настроек еще фиксированные.
1 стартмани
31.05.2017 41730 164 tormozit 25
Делаем из СКД Excel (ну, почти)
Несложный в использовании способ внедрить в обычный отчет СКД возможность редактировать значения ресурсов отчета (а-ля Excel) и получать отредактированные значения для дальнейшей обработки.
1 стартмани
26.01.2020 18510 29 herfis 16
Индикация прогресса выполнения фонового задания на управляемой форме внешней обработки
Внешняя обработка с фоновым выполнением и индикацией процесса для любой конфигурации на основе БСП >= 2.3 без изменения конфигурации и встраивания обработки в "Дополнительные отчеты и обработки".
1 стартмани
27.12.2019 24049 45 1sig 16
Декомпиляция условного оформления
Обработка автоматически генерирует полный код создания условного оформления формы любой сложности. Достаточно настроить для формы в конфигураторе условное оформление, а затем выбрать данную форму в обработке. В результате будет сгенерирован программный код создания условного оформления.
2 стартмани
23.12.2019 13928 62 XilDen 7
Открывашка ячеек таблиц Промо
Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм
1 стартмани
27.10.2018 24739 14 tormozit 38
Многоуровневые списки выбора с оформлением элементов
Данная статья - попытка решить один маленький кусочек большой проблемы платформы 1С, а именно - бедные и невыразительные пользовательские интерфейсы. Поскольку 1С в режиме управляемого приложения позволяет задействовать веб-клиент, то хочется реализовывать интерфейсы как у взрослых веб-приложений - красивые, дружелюбные для пользователя и, желательно, с положительным UX. Возможно, кто-то со мной не согласится и скажет, что учетные системы должны быть строгие и линейные. Но мы все знаем, что 1С - это уже не только про бухгалтерию. Небольшое отступление для разработчиков, работающих с типовыми конфигурациями. Я не знаю, использует ли фирма 1С что-то похожее в своих разработках. Если да, то данная статья навряд ли будет вам полезна.
Из другого приложения (DIRECTUM) открываю форму справочника 1С следующим образом:
Форма открывается, но в неактивном окне, то есть под вызывающей формой. Каким образом можно сделать окно 1С активным (что бы оно было на самом верхнем уровне)?
P.S.
1С:Предприятие 8.2 (8.2.17.169), УПП редакция 1.2 (1.2.25.1 (UC08.86))
Открытие Word из другого приложения
Учебники предлагают такой классический вариант. НО! При возникновении ошибки в строке 4 переменная.
Открытие файла Excel из другого приложения
Не могу открыть, точнее запустить Excel с нужным файлом. Пример записи Shell ('C:Program.
Qt qml - открытие другого приложения в основном окне
Подскажите, как можно в основном окне (main.qml) открыть стороннюю программу *.exe , чтоб она.
Открытие формы из другого потока
Как сделать чтобы форма появлялась поверх главной формы. TopMost не помогает, а для MessageBox .
Выполняется дальше! Т.е. активность возвращается в вызывающий код
Не знаю, есть ли в ИСбилде возможность отложенного запуска функции.
Ещё есть одна странность:
Не удаётся открыть форму в обычном режиме. Если заменить DoModal() на Open(), то вообще ничего не открывается.
Не удаётся открыть форму в обычном режиме. Если заменить DoModal() на Open(), то вообще ничего не открывается.
Ну так вот построен механизм, что он отстукивает что окно было открыто и нужно ожидать возврат значения
После закрытия модального окна, продолжает выполнять код ис-билда
Добавлено через 1 минуту
Ну так вот построен механизм, что он отстукивает что окно было открыто и нужно ожидать возврат значения
Это происходит не явно и повлиять на это вы не можете.
Добавлено через 57 секунд
В ис-билде есть отложенный вызов ?
Ну так вот построен механизм, что он отстукивает что окно было открыто и нужно ожидать возврат значения
После закрытия модального окна, продолжает выполнять код ис-билда
По моим наблюдениям Директум всегда ждёт завершения и только после этого переходит к выполнению следующей команды. Может быть как-то неявно и передаётся управление .
За это предположение говорит и то, что аналогичная ситуация с Вордом. Но из неё удалось выйти с помощью сворачивания и разворачивания окна (последние 2 команды):
Но у Application 1С нет таких команд.
Есть функция ExecuteProcess() для запуска внешних приложений в которой можно задать ждать/не ждать завершения. Можно с помощью неё попробовать запустить отдельный процесс Директум .
Ещё пришла идея - можно с помощью параметров командной строки запустить 1С и сразу задать открытие формы?
Можно из cmd отрыть 1С ку с запуском внешней обработки
Добавлено через 24 секунды
А во внешней обработке прописать открытие формы
Добавлено через 55 секунд
Только появиться сложность туда передать переменную ДоговорГУИД
Добавлено через 22 минуты
Есть ли в is-bilde что нибудь типа 1С овского AttachIdleHandler ?
Пока решили остановится на достигнутом.
P.S. В первых постах ошибка в коде. Visible должно быть True, а метода Activate у 1С нету. Вот в таком варианте форма открывается вместе с интерфейсом и мигает в панели задач. Если пользователю повезёт, то он увидит кусочек формы из под других окон
Есть! Но он тебе не поможет, ты же форму МОДАЛЬНО открываешь!
Добавлено через 1 минуту
СергейР, есть возможность переменную V8App объявить глобальной?
Добавлено через 2 минуты
Типа:
Я имел ввиду что у объекта Application в 1С нет метода Activate. Такой метод есть у объекта Application в Word (заставляет мигать значок в панели задач).
В Директум нет глобальных переменных. Есть возможность передавать значения через окружение, но вряд ли это подойдёт в данном случае.
Я имел ввиду что у объекта Application в 1С нет метода Activate. Такой метод есть у объекта Application в Word (заставляет мигать значок в панели задач).
В Директум нет глобальных переменных. Есть возможность передавать значения через окружение, но вряд ли это подойдёт в данном случае.
DIRECTUM не знаю, но в Фоксе, например, можно оговорить своё родное активное окно и в нём что-то открыть.
Решение
DIRECTUM не знаю, но в Фоксе, например, можно оговорить своё родное активное окно и в нём что-то открыть.
Фокс - это FoxPro?
Это же низкоуровневая система с массой соответствующих возможностей. А DIRECTUM - это резко упрощённая надстройка, заточенная под определённые задачи.
Добавлено через 13 минут
В общем я их (1С и Директум) домучил. Из формы Директума запускаю сценарий Директум как внешнее приложение (окно - максимизировать, завершения выполнения не ждать) и открывается форма 1С в поверх всех окон, хотя по прежнему неактивина - в панели задач активным выделено запускающее окно Директума. Фокус ввода вообще неизвестно где - на нажатие клавиш не реагирует ни окно Директума, ни форма 1С. На мышку нажимаешь - окно формы 1С становится активным. Вот код:
В системе 1С:Предприятие существуют следующие состояния окон:
Обычное - окно, находящееся в обычном состоянии, перемещается только в пределах рабочей области главного окна. Список открытых обычных окон доступен с помощью меню "Окна" и с помощью панели окон.
Свободное - окно, находящееся в свободном состоянии, может располагаться в любом месте экрана. В случае если окно соединяемое, оно может объединяться с другими свободными окнами.
Прикрепленное - окно, находящееся в прикрепленном состоянии, закрепляется на одной из сторон главного окна и перемещается по экрану вместе с ним.
Прячущееся - окно, находящееся в прячущемся состоянии, отличается от прикрепленного тем, что принимает минимальные размеры, когда не используется.
Когда прячущееся окно не активно, оно становится невидимым, при этом остается видимым заголовок окна, в виде кнопки на специальной панели. Эта кнопка используется для активизации прячущегося окна. Кроме того, окно становится видимым при наведении на эту кнопку курсора. Если группа окон объединена в окно с закладками и переведена в прячущееся состояние, ее заголовок представлен кнопкой особого вида - заголовки всех страниц окна с закладками свернуты, полностью виден только заголовок активной страницы. Это сделано для дополнительной экономии места.
Переключение между состояниями окна осуществляется с помощью команд оконного меню. С помощью команды "Восстановить положение окна" осуществляется возврат к исходному состоянию. Программа ограничивает возможность изменения свойств окна в зависимости от его текущего состояния:
- Если окно находится в обычном состоянии, то его нельзя перевести в прячущееся и наоборот
- Если окно находится в прикрепленном или прячущемся состояния, то ему нельзя запретить соединяться
Для некоторых типов окон изначально ограничены варианты переключения состояний. В этом случае соответствующие команды исключаются из оконного меню.
Расстановка окон
Окна могут быть объединены двумя разными способами: "склеены" друг с другом и сложены в окно с закладками.
Объединение окон также является соединяемым окном, что позволяет собирать сложные конструкции окон. Соединение окон осуществляется с помощью перетаскивания. Во время перетаскивания инверсная рамка показывает примерное положение окна. Если окно соединяется с окном с закладками, инверсный маркер показывает, какое место займет новая закладка.
В случае если содержимое окна существенно больше его реальных размеров, бывает удобно использовать несколько его представлений, показывающих разные части. Для некоторых типов окон реализована такая возможность. У этих окон доступны команды из меню "Окна" - "Новое окно", "Горизонтально разделить окно" и "Вертикально разделить окно".
Команда "Новое окно" открывает дополнительное представление в отдельном окне.
Примечание
Если нужно перетащить соединяемое окно так, чтобы оно лежало рядом с другим, но не соединялось с ним, во время перетаскивания удерживайте клавишу Ctrl. В режиме конфигуратора можно соединять обычные окна, для этого, во время перетаскивания удерживайте клавишу Shift. Можно совершить быстрый переход из свободного состояния окна в прикрепленное или обратно, для этого дважды щелкните мышью по заголовку окна. Расстановку обычных окон удобно производить с помощью диалога "Окна", который вызывается из меню "Окна". В этом диалоге собраны вызовы основных операций с окнами, есть возможность их упорядочивания и соединения.
Читайте также: