1с конвертировать обычную форму в управляемую

Обновлено: 07.07.2024

Есть внешняя обработка, написанная для версии 8.1. Можно ли запустить ее в версии 8.2 так, чтобы работать с ее старой, неуправляемой формой? Обработка нужна всего один раз, для переноса данных, и создавать для нее управляемую форму ради одного раза не хочется.

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

Обычные (неуправляемые) формы могут работать только в толстом клиенте. Тонкий и веб-клиенты поддерживают работу только с управляемыми формами.

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

Проще всего запустить толстого клиента в режиме управляемого приложения из конфигуратора, указав это в параметрах: Сервис - Параметры - Запуск 1С:Предприятия - Основные - Толстый клиент (управляемое приложение) .


При этом нужно помнить, что запуск клиентов в управляемом режиме возможен только в том случае, если у конфигурации отключена совместимость в версией 8.1 (свойство Режим совместимости ).


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

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

В палитре свойств конфигурации это свойство отображается не всегда, а только в случае, если в параметрах конфигуратора выбран режим редактирования конфигурации Управляемое приложение и обычное приложение (Сервис - Параметры - Общие).



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

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

Кто как решил для себя эту проблему?

(0) В чем проблема? Новые технологии лень изучать?

(1) Как раз таки не лень - наоборот. Но проблема перерисовывания старых (неуправляемых) форм на новые существует. Не работает даже Ctrl+С и Ctrl+V между ними. Все ручками.
Код, понятное дело надо переписывать.

А зачем перерисовывать?

(4) Вы вопросами подводите к правильному ответу? не томите )
(0) Между обычными и УФ - почти ничего общего. Слово "конвертация" тут неуместно.
(3) На мой вкус, управляемые формы рисовать как раз легче, чем обычные. Не надо заморачиваться с привязками, накидал на форму, по группам распихал и готово

(7) Ну почему же. Мы как раз сейчас разрабатываем инструментарий, которые перерисовывает форму (создает элементы управления), создает реквизиты формы, нужные команды под кнопки. И даже специальным алгоритмом раскидывает по группам, чтобы было похоже на оригинал. Пока в бета версии, если кому интересно

Старые проекты надо же как то на УФ переводить

(11) Вам можем продать )) А сообществу - бесплатно помогать. За фидбэк, так сказать )

Вопрос собственно озвучен - интересно, кто как проблему решает.

(12) перерисовали. все равно все обработчики переписывать. а банальный костяк - нафига, казалось бы?

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

(9) Мне казалось, что при переходе на УФ, рисование форм - самое простое, что приходится делать.
А вот если используется "ПриВыводеСтроки" в ТабПоле - тут никакой конвертер не поможет, надо всю логику переписывать.

(14) Если вы не видите проблемы, не стоит уговаривать других, что ее нет )

1 Есть старый проект на обычных формах, часть которого надо вынести в web.
2 Есть внешние обработки, которые в управляемом приложении с обычной формой просто не откроются
3 Есть проблема переноса на новую редакцию типовой (на УФ) своих доработок на старых формах.

(15) ПриВыводеСтроки - динамический список + условное оформление должны помочь

Перехожу на обычные формы. Точнее в работе буду использовать обычные формы. Но по ним инфы меньше, чем по управляемым. Поэтому разбираюсь с обычными.
Правильно, ли я понял, что в ОФ все, что напишу в модуле формы будет выполняться на клиентской машине(на компе пользователя, кто открывает форму)?
Таким образом, например, клиентская машина получает инфу из БД и работает с ней.

ПС. Просьба не писать, что в ОФ никто не работает, и закапывать. Я знаю

(0) Дайте контакты вашего начальника.
Мне надо написать, что вы строгаете волчью яму в 1С для будущих поколений.
(1) Её же выкопали. Когда придумали эту реализацию управляемых форм.
(0) В ОФ на клиенте можно использовать практически весь арсенал объектов 1С.
(3) А что не так в реализации УФ? А то пацаны пишут и не в курсе.
(5) ибо не требуется никакой сериализации пока гоняешь между клиентом и сервером и обратно.
(4) у нас перепиленный вдоль и поперёк УПП. большая часть перепиленного на УФ (где-то 60-80%, точнее не скажу), а типовой функционал на олдформах
(3) Управляемые формы хороши тем, что разделили Сервер и Клиент. Вот если бы это сделали ОФ в самом начале 8.0 - цены бы 1С не было.
(5) Это понимаю. Но где код выполняется. На сервере? На клиенте? Или гоняется тула сюда и хз где он)))
(9) И сидели бы мы до сих пор и е*ались с привязками. Нафиг-нафиг.
(10) На клиенте. Модуль объекта - на сервере. Общие модули - по галкам и от места вызова
(11) Так открой секрет. Вдруг их нельзя для чего-то использовать, а мы используем?
Вот не хотел я превращать тему в рубрику: "Что круче?" Вопрос извечный
(17)тебе важнее что: Скорость программы и удобства юзеров или проще кодить?
(10) вот тут самое интересное.
Выполняется на клиенте, но если надо идёт неявно на сервер.
Тут недавно я одному открыл глаза, что при добавлении 52 записей в набор сервер вызовется 52 раза, при чем каждый новый вызов будет длительнее предыдущего)
(18)тебя нужно по башке ударить профразработкой, причём обоими томами сразу. если выживешь - будешь реальный одинэснег
(20) >при чем каждый новый вызов будет длительнее предыдущего
потому-что весь набор будет туда-сюда
(14) у меня с отключенной отладкой на сервере проваливался в строки модулей объектов, а вот в общие модули с галкой на сервере не заходил, отсюда можно сделать вывод что они тоже на клиенте работают, но я не уверен.
(31) Стартует сетевой обмен с сериализацией и десериализацией, но контекст строки кода не меняется
(9) почему-то не захотели. Хотя технически было реально, MIDAS (Datasnap) в дельфях был ещё во времена 7.7 и представлял собой полноценный 3-tier. Другое дело, что такая технология не особенно дружит с браузерами и мобилками, а это в нынешних условиях минус.
(32) Ну, и вот как, мне до такого уровня добраться? Профразработка, которой мне по голове ударили?))) (22) Или практика. Я не понимаю, о чем вы Cyberhawk

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

Код в Обычном приложении можно явно загнать на сервер при вызове:
- из фоновых заданий
- из общего модуля с признаком Привилегированный

(36) Вот тут постоянная путаница. Потому что в Свойствах конфы пишут "Обычное приложение" На самом деле это обычный интерфейс
(36) Общий модуль с флажком "Сервер" + "Вызов сервера" тоже прекрасно вызывается, главное чтоб у него не стоял флажок "Клиент ОП"
(40) А в чём именно путаница? Обычное приложение - обычный интерфейс. Управляемое приложение - управляемый интерфейс. Вроде никакой путаницы. Или ты про что-то другое?
(43) но ведь управляемые форму могут быть и в обычном приложении
(44) Могут, но управляемая форма это ещё не управляемый интерфейс. :)
Проверил: модуль менеджера тоже на клиенте работает, если с клиента вызывается.
(50) А проверять в ОФ как? Компиляции препроцессора? Или обычный директивы или я туплю
(49) Я под интерфейсом подразумеваю весь интерфейс программы. Включая не только формы документов и справочников, но и меню и панели инструментов. И наличие нескольких управляемых форм в обычном интерфейсе ещё не делает его управляемым. Так понятнее объяснил?
Переходите лучше на 7.7 с 1с++ и формексом. Я серьезно.

(0) > в работе буду использовать обычные формы. Но по ним инфы меньше, чем по управляемым

По обычным формам есть курсы:

Занятие 1. Общие принципы работы с обычными формами
2. «Сравнение обычных и управляемых форм – Гилев» (68 уроков в видео). Могу дать содержание, но оно слишком большое.

58+ При большом желании, все это можно найти в Интернете.

(10) > Но где код выполняется. На сервере? На клиенте? Или гоняется тула сюда и хз где он)))

(56) > Эх. Код от платформы раздобыть бы.

Дешевле написать самому (для аналога 1С77). Причем, сразу 64-битный вариант, с нормальным движком БД, типа SQLite, на интерфейсе от WTL / ATL (есть и другие фреймворки, но эти мне нравятся больше).

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

Как для меня, то основное ограничение «семерки», это слабый движок БД и ограниченные по возможностям формы диалогов и обработок (отчетов). Ради дополнительных возможностей народ юзает Формекс, 1С++ и тому подобные компоненты.

Но можно сделать универсальные формы элементов на базе компонентов типа «PropertyGrid», «EmbeddedExcel» (причем не требующие наличия самого эксела) и, так называемые, ленточные формы (похожие на «телеграммные» диалоги). Тогда не придется тратить кучу времени на создание красивых формочек (вот почему встречаются, в основном, уродливые формы), сделал декларативное описание (по типу УФ, только явно) и вуа-ля! Дешево и сердито!

Систему печати взять опенсорсную. Ориентация работы на РИБ, Терминал-Сервер либо RDP. Это не претендует на замену УФ «восьмерки», но для малых предприятий самое оно. Будет почти бесплатно!

P.S. Это примерно то, над чем я сейчас работаю.

61+ Зато самый большой плюс «семерки» это группы на справочниках. Это поистине крутая вещь, которую придумала фирма «1С»! Даже в «восьмерке» с этим несколько хуже (в одном смысле и чуть лучше в другом). Главное научиться ими правильно пользоваться!
(0) Могу свои бумажные книги по толстым формам которые я покупал в 2008 году просто так подарить.
(63) Буду благодарен, если скинете название книг, которые имеете в виду. Потому что, книги "Разработка обычного интерфейса В.А. Ажеронок и другие" я не нашел))))
(58) Спасибо огромное за ответ, Emery. Буду шерстить
<«Сравнение обычных и управляемых форм – Гилев» (68 уроков в видео)> Смотрю как раз
НачатьПродумыватьОПереходеНаОбычныеФормы уже написали в xml формах УФ?
(58) «Обычный и управляемый интерфейс – Комаров» Не нашел. Гилева думаю хватит на начало
(0) и ты думаешь твой бунт удастся? сейчас только осмеяние учителей получишь и будешь учить то, что актуально.
(71) Единственное что тебе удалось, это наскрести 70 постов своего позора. А вообще люди на УФ квартиру покупают дорогие и машины.
Если бы в обычных формах сделали декларативное описание расположения по аналогии с управляемыми формами, то это для многих разработчиков они бы сохранили свою привлекательность. Ведь из-за отсутствия разделения кода на 2 стороны, программирование сильно упрощается. Но вот расстановка привязок действительно утомляет.
Я до сих пор разрабатываю в том числе и немного на обычных формах (ИР). Так вот код писать на обычных формах заметно приятнее, т.к. не надо думать о разделении на клиент и сервер. Как минимум для изучения программирования, обычные формы с декларативным описанием расположения элементов по моему мнению в разы больше подходили бы чем управляемые.

(69) > «Обычный и управляемый интерфейс – Комаров» Не нашел. Гилева думаю хватит на начало

Где на торрентах были ссылки на мегатонную документацию по 1С. Там и был этот курс. Заодно можно найти и курс Гилева на сотни часов по УПП и много чего еще. Сейчас точные линки не сохранились.

(72) > А вообще люди на УФ квартиру покупают дорогие и машины.

«Магазька» себе на обычных формах 1С82 заработал, по его словам, на квартиру и машину в Москве. Так что УФ не панацея. Тем более, что 1С как был ограниченным по возможностям в 1С77, так и остался таким же на 1С83, самой последней версии, хоть в УФ, хоть в ОФ.

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

В связи с этим автор топика может поменять свое отношение к ОФ, со временем. Вряд ли ему будет по приколу возиться подолгу с каждой формой элемента либо обработки (отчета), чтобы они выглядели профессионально и симпатично. Скажем, в «зарплате», делать учет рабочего времени менее удобно, чем в Экселе, в силу недостатка выразительных средств. Но если создать свой компонент по типу «Embedded Excel» (по которому есть готовый опенсорс, не требующий самого Эксела), то из табличных форм можно делать «конфетки», чего никогда не достигнешь на УФ. А есть еще, как я уже писал, ленточные формы и «Property Grid», для которых тоже достаточно опенсорса, всего то нужно реализовать их в соответствующей ВК для 1С. Кстати, это будет работать не только в ОФ, но и УФ. Над этим я тоже работаю.

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

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

Этап 0. Подготовка конфигурации

Прежде всего, следует адаптировать конфигурацию 1С:Предприятия 8.1 к работе на платформе 8.2 без использования режима совместимости с 8.1. Методика перевода подробно описывается в рубрике "Адаптация конфигураций 1С:Предприятия 8.1 к работе на платформе 1С:Предприятие 8.2 без режима совместимости с версией 8.1".

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

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

Здесь возможны следующие варианты:

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

Этап 1. Выполнение общих настроек

На данном этапе разработчику необходимо:

1. Определить роли и сценарии работы пользователей (рабочие места):

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

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

  • либо все реквизиты объекта,
  • либо только некоторые реквизиты (другие недоступны пользователю с этой ролью).

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

5. Установить управляемый режим блокировок.

6. Для регистров накопления и бухгалтерии установить (проверить, что установлены) признаки разделения итогов.

7. Настроить агрегаты для соответствующих регистров накопления.

8. Рассмотреть целесообразность работы с часовыми поясами.

Этап 2. Настройка интерфейсных свойств объектов конфигурации

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

  • Установить свойство "Быстрый выбор" справочникам, для которых оно уместно.
  • Заполнить для объектов представления, синонимы объектов:
    • для объектов, имеющих управляемые формы - обязательно;
    • для остальных объектов - желательно.
    • для реквизитов объектов, которые имеют управляемые формы - обязательно;
    • для остальных объектов - желательно.
    • для документов, имеющих управляемые формы - обязательно;
    • для всех документов - желательно.

    Этап 3. Создание и настройка управляемых форм, отчетов

    На данном этапе разработчик создает управляемые формы для объектов. При этом необходимо обеспечить работу управляемых форм и в веб-клиенте.

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

    Там, где необходимо, следует настроить условное оформление.

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

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

    На данном этапе следует создать новые отчеты и при необходимости адаптировать существующие. Наиболее эффективно создавать и адаптировать отчеты с помощью системы компоновки данных.

    Этап 4. Настройка командного интерфейса

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

    Этап 5. Внесение изменений в программный код

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

    Следует учитывать следующие особенности:

    Следует проанализировать возможные проблемы в модулях, которые могут выполняться как в толстом клиенте, так и на сервере. Например, модули объектов, общие модули.

    • Следует рассмотреть целесообразность применения новой методики записи движений при проведении документов.
    • Следует рассмотреть целесообразность отказа от обращений к "устаревшим" именам свойств и методам, например:
      • Свойство ИмяПараметровПечати,
      • Метод ПользователиWindows().

      Заполнение реквизитов нового объекта

      В платформе 1С:Предприятие 8.2 логика заполнения реквизитов объекта должна располагаться в конкретном месте – в модуле объекта в процедуре ОбработкаЗаполнения().

      Платформа 1С:Предприятие 8.1 ведет себя иначе: при вводе нового объекта не "на основании" процедура модуля документа ОбработкаЗаполнения() не вызывается.

      Поэтому логика заполнения реквизитов нового объекта может быть расположена в разных местах, например так:

      • в модуле объекта в процедуре ОбработкаЗаполнения(): заполняются реквизиты нового документа при вводе на основании,
      • в модуле формы объекта в процедурах ПриОткрытии(),ПередОткрытием() заполняются реквизиты нового объекта при любом способе создания документа (ввод на основании, копирование, "простое" создание).

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

      При этом следует учитывать, что ОбработкаЗаполнения() не вызывается при копировании объекта.

      Проверка заполнения реквизитов

      Следует использовать средства автоматической проверки заполнения реквизитов, предоставляемые платформой 1С:Предприятие 8.2.

      При этом следует учитывать следующее:

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

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

      Универсальные механизмы в конфигурации

      По каждому используемому механизму следует принять решение:

      • оставить, как есть (в этом случае возможно придется адаптировать существующий программный код универсального механизма чтобы исключить (снизить дублирование) программного кода,
      • использовать механизм из Библиотеки Стандартных Подсистем,
      • разработать "оригинальный" механизм.

      Этап 6. Прочее

      При переходе на версию 8.2 следует конвертировать используемые картинки в формат "png".

      Читайте также: