Подмена рабочего стола

Публикация № 82615

Разработка - Работа с интерфейсом

Несколько слов о рабочем столе в 1С 8.2, о том, что нельзя открыть произвольную форму при переключении подсистемы, а так же простой способ "обмануть" это ограничение (с примером).

В 1С версии 8.2, в режиме управляемого приложения, есть такая замечательная штука, как "Рабочий стол". На мой взгляд это прекрасная идея - предоставить разработчику возможность расположить самые необходимые функции и важную информацию прямо под носом у пользователя и раз и навсегда избавиться от вопросов вроде "А как мне найти тут?.." И, думаю, что не ошибусь, если скажу что многие расстраивались от того, что нельзя сразу открыть произвольную форму при переходе на вкладку подсистемы. Возможно, я чего-то не знаю, но события "ПриПереключенииПодсистемы" в платформе нет. А гугл на такие вопросы отвечает совсем не обнадеживающей ссылкой на форум 1С, где Максим Радченко сурово отвечает - нет и не будет! Разработчики плачут, колются, но продолжают жрать кактусы.
Но, что нам форум 1С, если мы и сами с усами.

Когда мне понадобилось несколько рабочих столов по подсистемам, я решил так: добавлю на рабочий стол одну форму, сделаю у нее закладок по количеству подсистем и на каждой закладке нарисую все, что мне нужно. А отображение стандартных закладок подсистем можно будет и вовсе отключить.
Сначала все было в порядке. Но, с увеличением количества элементов появились проблемы. Во-первых оно начало прилично тормозить. Во-вторых в дереве элементов и в модуле формы стало сложно ориентироваться. Не связанные по сути элементы для разных подсистем валились в "одну кучу". И еще напрягало то, что нужно соблюдать уникальность имен в пределах формы. Вместо того, чтобы на разных вкладках сделать две диаграммы с именем "Диаграмма" у каждой, приходилось писать что-то вроде "ДиаграммаОстатки" и "ДиаграммаВзаиморасчеты". Когда у меня стали появляться монстры, вроде "ГруппаПанелейСозданияДокументовОстатковНижняя" (...ОрденоноснаяКрасногоЗнамениИмениБорисаНуралиева ;-) я решил - хватит. Нужно было разносить разные рабочие столы на разные формы.

Тогда я применил простое решение и сейчас поделюсь им с вами. Суть способа проста. Я сделал несколько общих форм, по количеству необходимых мне рабочих столов. При создании формы на сервере я добавляю в форму панель с кнопками, которых ровно столько, сколько этих самых общих форм, и при нажатии на соответствующую кнопку открываю нужную форму (которая при создании опять добавляет себе эту панель).
В итоге, чтобы добавить новый рабочий стол, мне нужно сделать несколько простых действий:
1. Создать общую форму с именем "РабочийСтолНужноеИмя" (где вместо "НужноеИмя" можно подставить все, что угодно).
2. Поставить у этой формы заголовок "НужноеИмя" и отключить автозаголовок. (Это важный шаг, я по заголовку определяю текущую форму. Не совсем удачное решение, но работает).
3. Добавить форме событие "ПриСозданииНаСервере" и прописать там такой код:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    РабочийСтол.ПриСозданииНаСервере(ЭтаФорма);
КонецПроцедуры

(не удивляйтесь, "РабочийСтол" это у меня так называется общий модуль)

4. И добавить в модуль формы процедуру:

&НаКлиенте
Процедура РабочийСтолПереключить(Команда)
   
РабочийСтол.РабочийСтолПереключить(ЭтаФорма,Команда);
КонецПроцедуры

5. Все. Ну, и панель действий формы я отключаю или перемещаю вниз, оно так симпатичнее выглядит.

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

Можете скачать и посмотреть сами. В принципе, это базовый шаблон, который можно еще наворотить, например, добавить на кнопки картинок. А можно оставить так.

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

А я хочу пожелать вам хорошего дня и хорошего вам кода. Спасибо за внимание.

Оригинал статьи в блоге автора.

Скачать файлы

Наименование Файл Версия Размер
DesktopReplacement.zip

.zip 7,83Kb
317
.zip 7,83Kb 317 Скачать

Специальные предложения

См. также

Редактирование текстов интерфейса … Промо

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Редактирование текстов интерфейса … (перевод интерфейса конфигурации на другой язык английский – немецкий – китайский – японский и многие другие). У вас есть стандартная конфигурация, в которой надо перевести интерфейс на другой язык, легко! А вот со справкой придется немного помучаться. Просьба не путать с данными, которые хранятся в реквизитах объектов.

1 стартмани

26.06.2012    39431    Nykyanen    39    

Библиотека программного изменения формы (УФ)

Инструментарий разработчика Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

07.08.2020    5294    BuriyLesha    17    

Настройка колонок для вывода в отчет

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Украина Абонемент ($m)

Иногда возникает задача вывести в отчет по запросу не все колонки, а только определенные.

1 стартмани

12.07.2020    2816    user847462    2    

Сохранение настроек колонок

Практика программирования Работа с интерфейсом Универсальные функции v8 Абонемент ($m)

Сохранение настроек колонок табличных полей. Получение имени формы из модуля формы. Для обычных форм.

1 стартмани

10.07.2020    1189    Arc    1    

Приятная глазу цветовая схема 1С 8.х Промо

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Несколько цветовых схем для встроенного языка 1С, которые минимизирует нагрузку на глаза, за счет чего повышается производительность!

1 стартмани

26.03.2012    67641    NDM    126    

1С+Firebase. Оперативное отображение информации

Интеграция Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

06.04.2020    2808    oyti    0    

Управление состоянием для шаблона MVC и работы с данными объекта

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

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

1 стартмани

18.03.2020    3926    kalyaka    35    

Генерация управляемой формы на основе обычной (proof of concept)

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

06.11.2019    7480    user700211_a.straltsou    21    

"Живые" картинки со Snap.SVG

Практика программирования WEB Работа с интерфейсом v8 Абонемент ($m)

В статье рассмотрен пример использования http-сервисов для визуализации данных

1 стартмани

24.10.2019    14337    blackhole321    7    

Полное копирование одной формы в другую

Практика программирования Универсальные обработки Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде "покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал". Тем не менее, мне стало интересно, как это можно сделать.

1 стартмани

03.10.2019    6346    nekit_rdx    24    

Еще один способ программной модификации управляемых форм

Работа с интерфейсом v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

03.09.2019    4849    infosoft-v    15    

Изменяющееся контекстное меню в 1С 8.3

Практика программирования Работа с интерфейсом Разработка v8 v8::УФ Абонемент ($m)

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

1 стартмани

06.08.2019    18614    signum2009    16    

Совместное использование 1С:Сервер взаимодействия и Документооборот 8 КОРП, редакция 2.1.13 - Уведомления для рабочего стола

Пользователю системы Работа с интерфейсом Интеграция Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО УУ Абонемент ($m)

С версии ДО 2.1.13 в программу встроена подсистема Обсуждения. Данная подсистема позволяет производить уведомление пользователей без необходимости открытия программы.

1 стартмани

18.06.2019    14242    ilya.rudziak    10    

Изменение реквизитов существующих объектов (документов) 1С без сохранения

Практика программирования Работа с интерфейсом Разработка v8 Абонемент ($m)

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

1 стартмани

14.06.2019    6531    BraunAlex    9    

Как вывести в СКД две независимые таблицы, объединенные одним полем

Работа с интерфейсом v8::СКД Абонемент ($m)

Надо вывести в отчет на СКД 2 таблицы, которые содержат различные данные, объединяемые одним полем. Количество строк в каждой таблице может быть произвольным. Если выводить с помощью обычного соединения таблиц, то мы получим перемножение строк. Чтобы его избежать обычно используются циклы. Но в данной статье мы разберемся как это сделать только средствами СКД.

1 стартмани

06.06.2019    6922    swimdog    13    

Табличная часть из дополнительных реквизитов с обработкой событий в расширении

Практика программирования Работа с интерфейсом Разработка v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

13.05.2019    12056    mvxyz    17    

Вывод вариантов СКД в таблицы на управляемой форме

Практика программирования Работа с интерфейсом v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Задача стояла такая: есть 2 различных запроса, результаты которых выгружаются на форму обработки в таблицы значений (далее ТЗ) и программно "соприкасаются" между собой определенным образом (как именно- в рамках данной статьи неважно). Нюанс в том, что запросы должны иметь свой компоновщик настроек и могут интерактивно на форме изменяться пользователем. На оригинальность публикации не претендую - изначально в рамках поставленной задачи пытался найти что-то подобное (уже готовый шаблон) на инфостарте, возможно "плохо искал" ;)

05.04.2019    12070    artkor    1    

Поиск по дереву значений рекурсией, методом НайтиСтроки(), с помощью СКД. Вывод результата поиска в отдельную таблицу. Активация строки в дереве значений при выборе в таблице

Работа с интерфейсом v8 v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

29.10.2018    13937    Vyacheslav_Kochnev    3    

Управление состоянием формы через конечный автомат

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

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

1 стартмани

19.06.2018    15898    kalyaka    37    

Отборы (поиск) в табличной части либо таблице значений (управляемые формы)

Практика программирования Работа с интерфейсом v8 v8::УФ Абонемент ($m)

В управляемых формах для нас доступен мощный ресурс работы с динамическими списками посредством СКД - отборы, сортировки и далее. Но вот табличная часть (таблица значений) на управляемой форме не позволяет работать так гибко. Мы можем научить пользователей пользоваться комбинацией клавиш "Ctrl+F", но давайте немного упростим жизнь и позволим нашим пользователям настраивать отборы (осуществлять поиск) по табличной части прямо в нашем окне.

1 стартмани

22.03.2018    50350    Kim1C    21    

Шаблон MVC для управляемого интерфейса

Работа с интерфейсом v8::УФ 1cv8.cf Россия Абонемент ($m)

Мы воспринимаем как что-то само собой разумеющееся интуитивно понятный интерфейс, мгновенно реагирующий на наши клики, подстраивающийся под уже сделанный нами выбор. А между тем за этой возможностью - решение серьезных алгоритмических задач. В общем случае решения этих задач уже найдены, но проблема их конкретного применения остается как для выбранного окружения (веб-браузер, экран мобильного телефона, компьютер), так и возможностей языка программирования. В следующей статье представлено одно из таких применений общего решения на основе шаблона MVC для 1С в сочетании с возможностями управляемых форм и декларативного описания интерфейса.

1 стартмани

14.03.2018    20323    kalyaka    37    

Варианты отображений свертываемых групп

Практика программирования Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Как пользователю только одним внешним видом сказать "Тут есть нужные данные. Только нажми". Используем разные варианты свертываемых групп.

1 стартмани

19.12.2017    19013    Kim1C    10    

Размеры управляемой формы

Практика программирования Работа с интерфейсом Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

08.10.2017    28339    json    9    

Добавление отчета на панель

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

В очередной раз разработчики 1с поправили УТ и непонятно стало, как добавлять отчеты на панель. Метод получился самый простой из всех , что я видел ( http://infostart.ru/public/87945/, http://infostart.ru/public/91729/, http://chistov.spb.ru/forum/26-1766-2 (при подготовке к спецу видел 10 способов, но они уже не актуальны, да и сложны)).

15.01.2014    25618    dobrynin.i.s    11    

Условное оформление таблицы управляемой формы

Практика программирования Работа с интерфейсом v8 Абонемент ($m)

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

1 стартмани

17.05.2013    39410    akomar    6    

Уровни группировок в отчете СКД в управляемых формах

Практика программирования Работа с интерфейсом v8::ОУ v8::СКД УНФ Абонемент ($m)

Сверуть и развернуть группировки можно через контекстное меню, горячими клавишами, можно разместить соответствующие кнопки на форме отчета как описал mxm2, но мы пойдем другим, более информативным путем.

1 стартмани

08.05.2013    22150    Pralva    16    

Кнопки сворачивания и разворачивания группировок в отчете СКД в управляемых формах

Практика программирования Работа с интерфейсом v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

10.04.2013    47726    mxm2    9    

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

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Долгожданная возможность программно управлять составом форм рабочего стола! Публикация написана новичком для новичков, гуру 1С просьба не судить строго.

1 стартмани

07.11.2012    34535    NittenRenegade    12    

1С:Предприятие 8.2. Управляемая Форма. Меняем иконку рабочего стола.

Сервисные утилиты Производительность и оптимизация (HighLoad) Практика программирования Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Для конфигураций имеющих свой дизайн важно иметь возможность сменить не только картинки разделов для созданных подсистем, но и картинку рабочего стола, но менять ее нет возможности. Сама 1С объясняет это тем что интерфейс любой конфигурации должен быть унифицирован: "Дело не в одной картинке, а в общей стилистике для любых конфигураций. Важно чтобы пользователи привыкали к общему стилю и одинаково воспринимали одинаковые элементы в разных конфигурациях - это ускорит и освоение конфигураций и повседневную работу пользователей с ними." Но все же можно попытаться ее сменить.

1 стартмани

28.09.2012    29682    ghostaz    39    

Нестандартная расшифровка СКД или расшифровка одного отчета СКД при помощи другого отчета СКД установкой пользовательских настроек (в управляемых формах, методика + пример для УТ11)

Практика программирования Работа с интерфейсом v8::ОУ v8::СКД УТ11 Россия Абонемент ($m)

Если требуется расшифровка одного отчета СКД при помощи другого отчета СКД, можно использовать представленный вариант. Казалось-бы все просто, однако дело усложняется тем, что с одной стороны, нужно предусмотреть разделение функционала между клиентом и сервером, с другой, нет достаточно четкого описания поведения передачи параметров расшифровки. В итоге: все решается "элементарно", но чтобы дойти до этого, лично мне пришлось убить уйму времени, так что экономьте своё ))). Под "нестандартной расшифровкой" имеется ввиду расшифровка данных одного вида отчета - другим видом, отличным от первого (с предварительной установкой нужных параметров и отборов в отчете-расшифровке).

1 стартмани

12.09.2012    92950    mxm2    49    

Картинки для 1С

Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Подборка картинок для 1С.

1 стартмани

03.09.2012    28007    pyrkin_vanya    17    

Вывод изображений в системе компоновки данных и отчётах

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Как выводить изображения в СКД, отчетах ? Как хранить картинки, чтобы они не занимала много места?

1 стартмани

19.03.2012    4564    igorvs66    1    

Сохранение/восстановление настроек динамического списка

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

29.07.2011    36909    Stepa86    31    

1С 8.1: Интерфейс: Работа с формами

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

10.02.2011    16685    jan27    29    

Методика добавления нового интерфейса для типовой конфигурации 1С:Бухгалтерия предприятия ред. 2.0

Работа с интерфейсом v8 БП2.0 Россия Абонемент ($m)

Целью данной инструкции является описать методику действий разработчика при добавлении нового интерфейса пользователя для типовой конфигурации 1С:Бухгалтерия предприятия 2.0.

1 стартмани

30.12.2010    47223    tomvlad    5    

Оповещения пользователям об изменении конфигурации

Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Как сообщить всем пользователям, что добавлен новый, очень нужный и полезный механизм в 1С: Предприятие 8.1 или 8.2? В этой статье я расскажу как это сделать с минимальным исправлением конфигурации поставщика.

1 стартмани

20.08.2010    19635    opx    24    

Стандартная "Настройка периода" в отчетах на базе СКД

Практика программирования Работа с интерфейсом v8 Россия Абонемент ($m)

При написании собственных отчетов на базе СКД, я столкнулся с тем, что выбор периода делается достаточно неудобно. Куда удобнее, когда есть стандартная "Настройка периода", реализованная в типовых отчетах. Реализовать это очень просто и быстро.

1 стартмани

31.12.2009    12379    yuraskas    8    

Вывод дополнительной информации - ИНН и адреса контрагента - в список значений при вводе по строке

Практика программирования Работа с интерфейсом v8 1cv8.cf Россия Абонемент ($m)

Когда в информационной базе много контрагентов, пользователи при заполнении реквизитов форм документов активно используют понравившуюся им функцию «ввод по строке» Это ускоряет ввод большого объема информации за счет эффективного использования клавиатуры и уменьшения нагрузки на базу. Бывают случаи, когда существует очень много контрагентов с одинаковыми наименованиями, то просто невозможно быстро выбрать нужного из списка, так как код в скобках не несет смысловой нагрузки. Хотя возможен ввод по ИНН, но он не получил широкого распространения из-за сравнительно большой длины ИНН и психологического неприятия ввода рутинных операций. По этой причине представляется интересным решение, позволяющее выводить дополнительно в списке информацию об ИНН контрагента и его адресе. Пример программной реализации обработчика для конфигурации Управление торговлей 8.1 релиз 10.3.8.9, продемонстрирован в присоединенном к данной статье файле.

1 стартмани

05.12.2009    13824    its    9