Открыть форму внутри другой формы - наконец-то возможно!

10.06.20

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

Я давно мечтал о возможности открытия форм 1С внутри других форм, мне время от времени попадаются задачи, где это бы пригодилось. И вот в версии 8.3.16 наконец-то это можно реализовать! Конечно, это не совсем то, что я ожидал, но получилось все равно интересно. Давайте посмотрим.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Демонстрационная база ФормаНаФорме
.dt 68,89Kb ver:1.0.05
70
70 Скачать (1 SM) Купить за 1 850 руб.

Долгий путь к мечте

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

 

 

Первым шагом к светлому будущему был перевод поля HTML-документа на движок WebKit. Кроме различных плюшек появилась знаковая возможность: запуск 1С внутри самой себя! Вы можете опубликовать базу, положить адрес публикации в поле HTML - и вуаля! - вы сделали небольшую рекурсию. Запуская веб-клиент с различными параметрами, можно сразу открывать нужные формы и выполнять другие действия. Это то, что нужно? К сожалению, не совсем... Так мы можем только открывать новый сеанс, но не влиять на существующий, нет "общения" между формами. Т.е. чтобы открыть новую форму, нужно заново запускать базу, а что-то сделать в открытой вообще, можно сказать, невозможно.

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

Описание подсистемы

Давайте посмотрим, что за объекты есть в подсистеме:

  • ФНФ_ПовтИсп - содержит пока одну функцию, которая возвращает код HTML для вставки;
  • ФНФ_Клиент - основной функционал реализован именно здесь;
  • ФНФ_Сервер - здесь лежат функции сериализации значений (к сожалению, они не доступны в веб-клиенте), а также настройки интерфейса;
  • ФНФ_ТекстHTML - в макете записан шаблон кода HTML + JS для реализации нового функционала;
  • ФНФ_АдресПубликацииБазы - единственная настройка с путем запуска базы.

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

 
 Модуль ФНФ_Клиент Область ПрограммныйИнтерфейс

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

Но давайте перейдем от скучной теории к примерам!

Пример № 1

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

Что есть на этом скрине:

  1. сама внешняя форма, стандартный динамический список;
  2. поле HTML-документа, 99% которого занимает фрейм с запущенной 1С, в ней открыта форма объекта;
  3. в новом режиме запуска приложения убраны все меню и панели 1С, кроме этого значка. Чтобы знали!
  4. это вспомогательная однопиксельная кнопка, которая нажимается автоматически при отправке сообщения от внутренней. Иначе я срабатывание события поля HTML сделать не смог. Если у вас есть какое-то решение, подскажите.

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

  1. Добавить на форму списка строковый реквизит и поле HTML-документа, в котором будет открываться вложенная 1С. Единственное условие: реквизит и поле должны иметь одно имя (по-умолчанию так и будет), для корректной связи.
  2. После активизации строки списка вызвать метод ФНФ_Клиент.ОткрытьСсылкуВоВложенной(Элементы.ТекущаяНоменклатура, Элементы.Список.ТекущаяСтрока). Здесь первый параметр - это поле HTML, а второй - текущая номенклатура.

На форме же объекта номенклатуры ничего не делать не нужно, это может быть абсолютно стандартная форма.

Проверим еще один функционал. Пусть при нажатии на кнопку сверху списка поле Описание текущей номенклатуры красится в выбранный цвет (Да, тупость какая-то, ну что первое придумал!). Тогда при нажатии после выбора цвета надо вызвать метод ФНФ_Клиент.ВыполнитьОповещениеВложенной(Элементы.ТекущаяНоменклатура, "Форма", "ПокраситьОписание", ФНФ_Сервер.СтрокаXML(Цвет))Получается, у формы номенклатуры должна быть реализована экспортная процедура ПокраситьОписание. Этот метод будет вызван и в него передастся строка, представляющая цвет.

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

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

Пример № 2

Допустим, у нас есть универсальная форма подбора номенклатуры в ТЧ товаров документов. Добавим эту форму на форму Заказа. Вот, что получилось:

Для реализации нужно также расположить поле HTML в заказе и открыть при открытии самого заказа:

ФНФ_Клиент.ОткрытьФормуВоВложенной(Элементы.ПодборНоменклатуры, "Справочник.Номенклатура.Форма.ФормаПодбора");

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

ФНФ_Клиент.ОтправитьСообщениеВнешней(Строка(ВыбраннаяСтрока.УникальныйИдентификатор()) + ":");

Передаем уникальный идентификатор запрашиваемой номенклатуры. Переданное сообщение можно поймать в событии ПриНажатии поля HTML- контейнера вложенной формы:

Сообщение = ФНФ_Клиент.СообщениеОтВложенной(Элемент, ДанныеСобытия);

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

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

Варианты поставки

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

  1. скачать приложенный файл;
  2. развернуть dt в новую ИС;
  3. опубликовать базу на веб-сервере, можно локальном;
  4. задать адрес публикации в константе.

И все, можете погонять примеры, что описаны выше, можете придумать свои. Но еще раз, нужна платформа 8.3.16.

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

Вопросы аутентификации

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

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

Может, есть какой-то механизм аутентификации для таких случаев? Поделитесь, если знаете.

Минусы решения

Хоть подсистема и предоставляет довольно интересный функционал (Мне, например, очень нравится!), но у него есть ряд серьезных проблем, из-за которых это решение так и может остаться просто экспериментом. Большинство их, конечно связано с тем, что запускается отдельный сеанс 1С:

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

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

Варианты развития подсистемы

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

И, кстати, про разные базы... В текущей подсистеме у меня заложена работа с формами в одной ИС, но ничего не запрещает так связать разные базы. Например, вы сидите в Документообороте, и вам пришла задача с предметом, который является заказом в УТ. У вас откроется форма заказа внутри формы задачи. Такое вот совсем бесшовное онлайн взаимодействие. Можно придумать еще много разных примеров.

 

Заключение

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

Репозиторий конфигурации: https://github.com/KonstantinHeinrich/Form-on-Form-Designer-Format

Управляемая форма интерфейс WebKit ВстроенноеРабочееМесто АРМ.

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    62986    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18855    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10224    7    7    

10

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

20.08.2024    16802    mrXoxot    43    

121

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    7353    smielka    37    

100

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    14789    913    elcoan    47    

117

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    11914    162    acces969    31    

124
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Steelvan 306 15.04.20 17:10 Сейчас в теме
Согласен, нативное встроенное открытие вложенных форм будет полезным.
2. RustIG 1747 15.04.20 17:18 Сейчас в теме
(0) я не понял: однооконный режим УФ не стал многооконным, но появилась вложенность окон. Так ли это?
3. CyberCerber 872 15.04.20 18:09 Сейчас в теме
(2) Не совсем понял, что такое однооконный и многооконный режим УФ, можете пояснить?
7. RustIG 1747 15.04.20 20:32 Сейчас в теме
(3) прикладываю многооконный режим УТ 10.3 (Обычные формы),
на УФ - реализован соответственно однооконный режим УФ.
возможность работы с несколькими окнами не сворачивания /разворачивая окна.
Прикрепленные файлы:
8. CyberCerber 872 15.04.20 20:43 Сейчас в теме
(7) Что-то подобное появилось еще в 8.3.7: https://wonderland.v8.1c.ru/blog/odnovremennoe-otobrazhenie-dvukh-okon-v-interfeyse-taksi/
Еще на начальной странице можно разместить несколько форм, но только на ней.
Но это все несколько другое направление. Эти формы пользователь открывает сам и сам размещает. А у меня в публикации я говорю про формы, которые взаимосвязаны по логике приложения, открываются программно и взаимодействуют.
bulpi; TreeDogNight; +2 Ответить
9. RustIG 1747 15.04.20 21:31 Сейчас в теме
(8) закрепить слева и справа для того,чтобы крыжить можно было.
на партнерской встрече Борис Нуралиев сказал, что пока не сделаем возможность одновременного открытия двух окон в приложении, чтобы можно было крыжить и сравнивать, поддержку Бп 2.0 не будем прекращать...Видимо разработчики сделали минимум согласно озвученному ТЗ....над остальным не стали корпеть...
10. CyberCerber 872 15.04.20 22:39 Сейчас в теме
(9) Ну да, МЖП сделан: две формы открыжить можно. :-)
12. maksal 51 17.04.20 12:42 Сейчас в теме
(7)на УФ можно так же разделять экран и получить многооконность))
TreeDogNight; +1 Ответить
17. RustIG 1747 17.04.20 15:30 Сейчас в теме
18. CyberCerber 872 17.04.20 15:33 Сейчас в теме
(17) Думаю, человек говорить про то же, что и я в (8). Это точнее двуоконность, но два можно тоже считать как много. :-)
19. Darklight 33 17.04.20 15:40 Сейчас в теме
(7)Про то как сделать в такси почти полноценную многооконность - я в скором времени выложу статью - решение и статья уже готовы
TreeDogNight; +1 1 Ответить
20. CyberCerber 872 17.04.20 15:43 Сейчас в теме
(19) Интересно будет почитать. Что-нибудь с использованием СоставФормНачальнойСтраницы?
21. Darklight 33 17.04.20 18:39 Сейчас в теме
(20)Нет - там применяется "хак" - в результате формы открываются в отдельных окнах
22. CyberCerber 872 17.04.20 18:44 Сейчас в теме
37. Vlad_2008 16 22.04.20 03:07 Сейчас в теме
(21) Интересно увидеть пример работы пользователя, когда у него открыты две разные базы и он будет в каждой использовать этот "хак". На панель задач винды хочется взглянуть ...
TreeDogNight; +1 Ответить
38. Darklight 33 22.04.20 10:56 Сейчас в теме
(37) Я прекрасно понимаю на что Вы намекаете. И не хочу с Вами спорить (т.к. согласен с этими недостатком). Но тут всё определяется потребностями конкретной задачи и конкретными предпочтениями пользователей. Когда это было ещё официально возможно в платформе (на управляемых формах до Такси, да и на Такси ещё первое время тоже) в реальной наблюдаемой практике пользователи работали максимум с двумя базами, в таком режиме окон, и были весьма довольны. А вообще - эта идея расцвела ещё при использовании WEb-клиента - где этими окнами было управлять вручную куда удобнее - вынося/внося их из/внутрь окон/вкладок браузера - группируя по своему усмотрению. Но те времена давно прошли - 1С прекратила поддержку данной возможности (на то были причины). А хак - увы, не работает в браузере :-(

К счастью - применение найденного мной хака (кстати не нарушающего лицензионное соглашение - поэтому - это, скорее, не хак, а просто недокументированный финт) - позволяет управлять окнами произвольно. Я разработал расширение конфигурации - относительно легко встраивающееся в конфигурации с интерфейсомТакси, позволяющее условно "всем" формам метаданных условно автоматически добавить кнопку переключения окна - так что любое уже открытое окно можно сделать отдельным и вернуть обратно в панель окон 1С в один клик кнопки в любой момент времени. Что позволяет выносить в отдельные окна только то, что реально нужно пользователю именно сейчас (а потом возвращать в панель окон 1С). Жаль только нельзя сделать эти окна поверх других окон.

А лично меня бы устроили плавающие окна - остающиеся во вкладках основного окна, а не таскбара ОС, как сейчас это можно с блокирующими окнами - но вот только от блокировки бы отказать, а свойство поверх остальных окно добавить бы - но это пока недостижимые мечты повышения юзабилити!
Хотя, вот я сейчас данный финт использую для выноса окон на другой монитор (ну это мне повезло - у меня их просто несколько) - и это очень удобно! Ну а простые пользователи так имеют возможность даже на одном мониторе проводить визуальное сравнение нескольких табличных документов (и вообще любых форм) друг с другом (в т.ч. сравнивать, например отчёт, сформированный в 1С, и открытую таблицу EXCEL), размещая окна параллельно друг другу. Конечно конечто можно сделать и штатными средствами - прикрепляя окна к границам окна - и за эту возможность "спасибо 1С" - но не всегда это подходит.

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

Но что тут просить, если в платформе до сих пор нет даже программного API управления закреплением окон у границ окон - это можно сделать ТОЛЬКО ИНТЕРРАКТИВНО. И если до недавней (8.3.15) смены интерфейса Такси это ещё можно было обойти через горячие клавиши - то теперь и этой возможности не стало - "всё для людей у 1С"
nekit_rdx; CyberCerber; TreeDogNight; +3 2 Ответить
46. Vlad_2008 16 28.04.20 19:47 Сейчас в теме
(38) Да. я тоже постоянно использую открытие форм в отдельных окнах, еще со времен 7.7. И в современной платформе тоже. Использую особенность платформы, это когда открыто окно поиска - оно блокирует интерфейс - там есть кнопка открыть объект (если это ссылка) - объект открывается в отдельном окне и виден в панели задач ОС.
Обычно так сравниваю два-три документа, закрепление тут не удобно ... пока работает и в последней платформе.
49. Darklight 33 29.04.20 08:56 Сейчас в теме
(38)Вот крайне интересно за что минус поставили?
53. work.sable 26 08.10.20 07:14 Сейчас в теме
(19) Прошло почти пол года) "хак" будет?)
54. Darklight 33 08.10.20 09:24 Сейчас в теме
(53)Статья давно написана, нет времени опубликовать, ждите
TreeDogNight; +1 1 Ответить
55. TreeDogNight 22 08.10.20 09:59 Сейчас в теме
65. efin 16.07.21 16:57 Сейчас в теме
(54) обещанного 3 года ждут
4. pparshin 508 15.04.20 18:42 Сейчас в теме
В MS Access 2.0 выпуска 1993 г. вложенные формы были реализованы. Как независимые, так и подчиненные.
Витёк2010; Mick2iS; +2 Ответить
5. CyberCerber 872 15.04.20 18:47 Сейчас в теме
(4) Ну да, чуть-чуть отстаем :-)
agafonov_andrei; TreeDogNight; Il; +3 Ответить
6. pparshin 508 15.04.20 19:47 Сейчас в теме
(5)Можно было менять вложенную форму прямо в исполняемом режиме.
А позже добавили возможность вместо вложенной формы указывать таблицу или запрос (view).
11. TreeDogNight 22 16.04.20 07:48 Сейчас в теме
Действительно интересное решение! Остаётся надеется, что в следующих платформах появится возможность делать тоже самое без запуска дополнительного сеанса.
Прикрепленные файлы:
alei1180; Necytij; Newcomer; InJey; BlinOFF; Витёк2010; dr.zl0; madonov; vv2; ubnkfl; nekit_rdx; Drivingblind; Summer_13; ivanov660; WellMaster; user774630; TerveRus; Igorro82IT; BomjBandit; IVKuzmin; payta; CyberCerber; Азверин; +23 Ответить
13. maksal 51 17.04.20 12:45 Сейчас в теме
Не понимаю где это будет полезно для бизнеса? Видеть заказ клиента и одновременно форму подбора? А зачем? Или видеть карточку товара из списка номенклатуры? А зачем? Вероятно нужно бизнесу исходя из потребностей "потому что" и "а нам так надо".
VinnieThePOOH; +1 Ответить
14. CyberCerber 872 17.04.20 12:50 Сейчас в теме
(13) Я описывал в статье примеры... У меня были реальные случаи, где это пригодилось бы. И можете сделать запрос "форма внутри/из формы", "форма на/в форме". У других людей тоже возникают такие вопросы.
cleaner_it; TreeDogNight; +2 Ответить
23. cleaner_it 209 20.04.20 05:01 Сейчас в теме
(14) Самое интересное применение описано в конце - показ данных из другой системы
CyberCerber; TreeDogNight; +2 Ответить
25. maksal 51 20.04.20 09:28 Сейчас в теме
(23) Подробнее можно? Что Вы собираетесь таким образом показать из другой системы?
31. CyberCerber 872 20.04.20 11:00 Сейчас в теме
(25) Я приводил реальный пример в статье. На предприятии было УТ, где были заказы клиентов и т.д., и ДО, где велись задачи, бизнес-процессы предприятия. Можно было поставить исполнителю задачу в ДО с предметом в виде заказа из УТ, и исполнитель мог бы в таком вложенном окне посмотреть сам заказ, по которому идет осбуждение.
32. cleaner_it 209 20.04.20 13:00 Сейчас в теме
(25) Тот пример, который в статье - вполне удачный. Когда на предприятии несколько разных систем - применение этой возможности всегда найдётся)
24. maksal 51 20.04.20 09:27 Сейчас в теме
(14) единицы запросов, это имеет место быть, но широкого применения не вижу, костыли всё это. Будем ждать полноценной возможности от платформы, а её думаю долго не будет.
27. TreeDogNight 22 20.04.20 09:34 Сейчас в теме
(24) Как указывалось в статье, данная возможность часто требуется при реализации АРМ, когда на вкладках формы нужно отобразить различные отчёты и динамические списки, которые уже реализованы в виде других форм. Сейчас, когда возникает потребность изменения этих отчётов и списков, приходится редактировать как отдельные формы, так и форму АРМ. Не знаю как вы, но я не раз сталкивался с подобной проблемой.
Dementor; cleaner_it; CyberCerber; +3 Ответить
33. cleaner_it 209 20.04.20 13:01 Сейчас в теме
(27) Верно, такая задача тоже часто встречается - собрать несколько форм в одном месте. Один раз сделал - много раз используешь)
graforlow; TreeDogNight; +2 Ответить
29. CyberCerber 872 20.04.20 10:51 Сейчас в теме
(24) Конечно, это не те задачи, которые приходится решать каждый день, и даже каждую неделю, иначе бы это уже должно было появиться на уровне платформы. Но когда выходишь немного за рамки обычных задач, часто приходится вставать на костыли.
TreeDogNight; +1 Ответить
39. Darklight 33 22.04.20 10:59 Сейчас в теме
(24)Боюсь в 1С8 этого вообще не появится. Может - если безадри перемерут от пандемии или просто со времнем (простите за черный цинизм) - эта фишка появится в гипотетической платфоме 1С Предприятие 9 - лет так через 30 - раньше был не стал ждать
15. TreeDogNight 22 17.04.20 12:51 Сейчас в теме
(13) Здесь польза идёт в первую очередь для программиста, так как упрощается и ускоряется разработка - соответственно задачи, поставленные бизнесом будут выполняться быстрее и качественней, в этом и состоит польза для бизнеса.
CaSH_2004; cleaner_it; +2 Ответить
26. maksal 51 20.04.20 09:31 Сейчас в теме
(15) Так польза для программиста или для бизнеса? У Вас в предложении два утверждения. Быстрее - не значит качественно и с большей выгодой для бизнеса. Сколько я встречаю сейчас неправильных, быстрых решений в прошлом. которые уже дорого будут стоить исправлять для бизнеса. Например, самое распространенное - это неправильный выбор конфигурации при старте и второе место - это изменения типовой конфигурации до неузнаваемости снятием её с поддержки.
28. TreeDogNight 22 20.04.20 09:38 Сейчас в теме
(26) Имеется ввиду быстрее, но без потери качества.
30. CyberCerber 872 20.04.20 10:57 Сейчас в теме
(26) Часто в сфере 1С, к сожалению, отделяют выгоду для программиста и выгоду для бизнеса. А ведь если бы удобство и возможности для разработки никак не влияли на конечный результат для бизнеса и потребителя ПО, разработчики бы на Ассемблере писали, не вкладывались бы в развитие методологий и инструментов.
Что касается конкретно текущего примера, то TreeDogNight верно написал, возрастет не только скорость, но и качество, т.к. не нужно будет переносить, сливать несколько форм вместе, что может привести к ошибкам, кривому коду и трудной поддержке.
CaSH_2004; TreeDogNight; +2 Ответить
34. maksal 51 21.04.20 08:49 Сейчас в теме
(30) Предложенный вариант - костыль. Пока это не будет решено на уровне платформы ни о каком качестве тут и речи не может идти. Я писал о том, что скорость не всегда = качество. TreeDogNight же видимо запутался в выгоде для бизнеса и программиста. Для бизнеса использование 1С зачастую это навязанная необходимость (бух.учет, налоговый) и использование скоростных программистов, в целом тоже не приносит выгоды для бизнеса. Опытных - да, с базой знаний - да, с аналитическим умом и пониманием бизнес процессов и хозяйственных операций - да. Хотя возможно у Вас дедлайн и вам плевать на красоту кода, тогда я тоже понимаю - сам бывал в таких ситуациях. В целом закроем дискуссию. Методу человек описал по необходимости, мне было интересно где это можно использовать и для каких целей (живые примеры). Спасибо!
40. Dementor 1035 24.04.20 17:13 Сейчас в теме
(26) польза для бизнеса очевидно - экономия денег!

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

Вот и получается, что все готово - просто открой готовое в новом месте. Но из-за ограничений платформы бизнес должен оплатить за пошаговую реализацию уже ранее оплаченного функционала.
CaSH_2004; CyberCerber; TreeDogNight; +3 Ответить
41. maksal 51 28.04.20 09:26 Сейчас в теме
(40) Я зарабатываю на этом, а Вы?

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

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

Я уже писал Выше "В целом закроем дискуссию. Методу человек описал по необходимости, мне было интересно где это можно использовать и для каких целей (живые примеры). Спасибо!"
suepifanov; +1 Ответить
16. Nubsdale 17.04.20 13:50 Сейчас в теме
Сделать-то они сделали. А вот как это будет работать - вопрос
35. lvictor58 137 21.04.20 09:44 Сейчас в теме
Как все сложно. А стоит ли "штаны через голову одевать", может можно вообще без них обойтись. Запуск кучи сеансов... Это как-то не айс.
36. triviumfan 97 21.04.20 10:48 Сейчас в теме
Сомнительный функционал. Скорее это даже плохо, чем хорошо.
42. Goleff74 217 28.04.20 15:31 Сейчас в теме
А работа этих форм происходит все так же в одном потоке, да? Параллельно два клиентских процесса в разных формах запустить не получится?
43. CyberCerber 872 28.04.20 15:33 Сейчас в теме
(42) Не совсем понял вопрос... Это отдельные приложения, а, значит, и отдельные потоки
44. Goleff74 217 28.04.20 15:34 Сейчас в теме
(43)
Оу, так это что же мне теперь позволительно ломать клиентскую машину кривым кодом? Красотааа :) Надо пробовать.
45. CyberCerber 872 28.04.20 15:36 Сейчас в теме
(44) Ну, кажется, это всегда можно было сделать :-)
47. Vortigaunt 97 29.04.20 00:26 Сейчас в теме
Где хотелось бы применять механизм открытия вложенных форм? Например, если вы создаете обработку АРМ, на основной форме которой нужно поместить другие существующие формы.


В таком кейсе несколько форм можно разместить на начальной странице. Общение между этими формами успешно реализуется через механизм оповещений.
48. TreeDogNight 22 29.04.20 06:56 Сейчас в теме
(47) Такой вариант к сожалению не подойдёт, если все формы нужно расположить на отдельных вкладках.
51. CyberCerber 872 29.04.20 09:48 Сейчас в теме
(47) Еще АРМ может открываться не сразу на раб. столе, а в отдельных вкладке / окне.
Плюс, если в системе много разных АРМ, которые зависят от роли, настройка нач экрана станет громоздкой.
TreeDogNight; +1 Ответить
50. Vortigaunt 97 29.04.20 09:44 Сейчас в теме
Вложенные формы... Давайте мечтать по-крупному. Хотелось бы иметь возможность не просто размещать одну форму внутри другой с сохранением ее функциональности. А еще и несколько экземпляров одной и той же формы, группируя их списком или сеткой. И с возможностью прокрутки.
Навскидку: нарисовать интерфейс типа галереи, где каждый квадратик - простенькая форма, с выводом изоражения, парой кнопок, возможностью перехода на другие слои и все в таком духе.
Когда знакомился с Андроид разработкой, то там такое можно было делать штатными средствами. Более того ты должен был рисовать разметку для элемента списка или таблицы, описывать логику нажатий, а потом группировать их в ListView или TableView. Жаль, что в 1с такого нет. Хотя бы банально кнопку в таб. части вывести(
TreeDogNight; +1 Ответить
52. CyclesOfID 128 02.05.20 15:39 Сейчас в теме
Вряд ли отменят ограничение на количество лицензий.
Может разве что нативные вложенные окна сделают, но особой потребности в этом нет.

А вот как коммерциализировать эту игрушку идея пришла

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

Да и вообще, открытие других баз в своем сеансе - самый интересный тут момент.

Можно конфу для техподдержки IT конторы разработать например, где прямо из неё можно будет открывать базы клиентов.

Публкиация интересная, респект
TreeDogNight; +1 Ответить
56. Pashnet 12.04.21 08:26 Сейчас в теме
Столкнулся с проблемой отображения формы сторонней информационной базы в форме текущей конфигурации, т.е. если подключаю текущую базу - всё как на скриншотах, но стоит подключить скажем одну из последних ERP (с режимом совместимости 8.3.16) предварительно перенеся номенклатуру по гуидам из этой базы, то вместо нужной формы открывается весь интерфейс ERP со всеми панелями и разделами. Понимаю что тут суть проблемы кроется в передаваемой ссылке для метода messageToWebClient(), но подобрать нужный url и подружить конфу с ERP не получилось. ЧЯДНТ?
57. pa3ueji 2 07.07.21 17:39 Сейчас в теме
Не работает. Что не так?
Прикрепленные файлы:
58. CyberCerber 872 07.07.21 17:45 Сейчас в теме
(57) Это база из публикации? Какая версия платформы?
60. pa3ueji 2 14.07.21 10:03 Сейчас в теме
(58)
База файловая. Платформа 8.3.18.1208

Что сделать, чтобы функционал заработал?
Прикрепленные файлы:
61. CyberCerber 872 14.07.21 10:05 Сейчас в теме
(60) К сожалению, сейчас нет под рукой этой платформы, чтобы проверить. В последний раз проверял на файловой базе в 17-й платформе.
База опубликована? Никаких ошибок не выдает?
62. pa3ueji 2 14.07.21 10:07 Сейчас в теме
(61) Базу не публиковал. Ошибок не выдаёт
63. CyberCerber 872 14.07.21 10:08 Сейчас в теме
(62) Странно, что ошибки не было, но без публикации не может работать
Прочтите раздел "Варианты поставки".
64. pa3ueji 2 14.07.21 10:09 Сейчас в теме
(61)

Поправка. Ошибка есть. Возникает при активации строки с номенклатурой
Прикрепленные файлы:
Anchoret; +1 Ответить
59. pa3ueji 2 08.07.21 11:19 Сейчас в теме
База файловая. Платформа 8.3.18.1208
Прикрепленные файлы:
66. fixin 4273 06.12.21 15:09 Сейчас в теме
Увы, это из пушки по воробьям.
Думаю, можно как и в ОФ, дорисовать вложенную форму из формы-шаблона.
Поработаю над этим.
67. Slypower 3 15.12.23 14:30 Сейчас в теме
Хорошая идея. Взяли себе на исполнения. Проблема, которую не можем решить и понять, в данной конфигурации не работает подбор номенклатуры, а именно СообщениеОтВложенной в параметре ДанныеСобытия.Button.message всегда пусто. Почему?
Оставьте свое сообщение