Развитие управляемого интерфейса в 1С 8.2 - 1С 8.3
Разработка - Работа с интерфейсом
Управляемые формы
После того, как я три дня пощупал на практике управляемые формы, я их полюбил. Не нужно расставлять мышкой поля на форме, мучиться с привязками. Все просто и делается в несколько кликов.
Мне даже стало жалко, что 1С полностью не отказалась от обычных форм из-за того, что они используются в режиме рабочего стола. Ведь можно было бы дать возможность в УФ точного пиксельного позиционирования, и обычные формы бы отмерли со временем. А так приходится распылять силы еще и на знание старого функционала.
А так, конечно, УФ намного быстрее обычных, т.к. работают по трехзвенной схеме между клиентом и сервером.
Кроме того, сам функционал УФ намного богаче и шире, чем у обычных – неудивительно, прошло много времени, и в них попали многие интерфейсные находки.
Например, вывод динамической таблицы с группировками, или вытаскивание реквизитов объектов напрямую в динамический список. Или даже радиокнопка не в виде точек, а в виде тумблеров.
На практике их не так страшно использовать, как казалось изначально, я освоился быстро. В свое время я достаточно программировал общих модулей, которые работали только на сервере, и сталкивался с преобразованиями мутабельных значений для передачи их на сервер, поэтому управляемые формы были доступны моему пониманию.
Модальности, событийность и блокировки интерфейса
Я слышал, что в 8.3 появился отказ от модальных функций вроде Вопрос, Предупреждение, ОткрытьФормуМодально. Для меня было непонятно, зачем это было сделано.
Каково же было мое удивление, когда в одном из примеров преподаватель вызвал открытие формы с параметром «Заблокировать весь интерфейс», т.е. по сути модально.
Я-то был уверен, что от модальности отказались.
Понимание пришло не сразу.
В 1С не отказались от модальных окон. Есть новые функции, чтобы вывести предупреждение, задать вопрос, открыть модально диалог выбора файла.
Нюанс в том, что после вызова этих модальных окон управление не замораживается, как раньше, в ожидании, когда форма закроется, а продолжается. Форма вызывает оповещение, что она закрылась, и нужно обработать это оповещение.
Т.е. платформа 1С избавилась от рудимента замораживания выполнения кода и перешла на полностью событийное управление формами.
Конечно же, это никоим образом не связано с тем, что браузеры испытывают сложности с показом модальных окон. Это заблуждение и предрассудок – забудьте его как дурной сон. Все логично. По сути теперь выполнение полностью событийное и асинхронное, от синхронного выполнения удалось избавиться.
В 1С появились мини-конструкторы – рефакторинг. Это упрощает написание обработчиков оповещения для асинхронного режима работы, чтобы не писать их вручную.
В конфигурации есть возможность отключить все синхронные вызовы (они будут вызывать ошибку), в итоге она будет полностью асинхронна и соответствовать последним требованиям организации событийной модели.
Новые возможности интерфейса
Меню
Если управляемые формы выглядят вполне логичным и правильным направлением развития, то направление развития системы меню для меня так и осталось непонятым.
Несомненно, меню, где показывается только один уровень, затем нужно заходить в следующий подуровень и так до выбора нужного пункта уже морально устарело, и ему на смену пришла карта меню, где развернуты сразу несколько пунктов меню. Это было сделано в типовых еще до выхода новых интерфейсов меню в 8.2.
В свое время еще на 8.1 я делал систему меню в виде прикрепленного слева иерархического справочника, где видимость каждого пункта определялась правами доступа пользователя, для которого отображалось меню.
Я так понял, что 1С посчитало неправильным, что прикладной объект Интерфейс не используют, и решила выпустить ему новую, продвинутую альтернативу.
Получилось как-то мудрено, на мой взгляд. Опять же все завязано на настраиваемые галочками роли, которые я никогда не любил – лучшая система ролей пишется на уровне программного кода, доказательством этого является система дополнительных прав пользователей, которая позволяет гибко и без лишних проблем настроить права доступа в типовых конфигурациях.
В общем, новые способы организации меню пришли, на мой взгляд они не очень удачные, но альтернативы нет, и их применяют в типовых.
Я спросил преподавателя: «Мне понятно насчет управляемых форм, но зачем нужно было развивать интерфейсы, почему было нельзя немного доработать классическое меню»?
Он мне ответил, что система 1С развивается в направлении увеличения комфорта и скорости работы пользователя. На мой взгляд все же, такие грандиозные изменения в системе меню этого не стоят.
Порядок обхода
Кстати, для производительной работы пользователей важен порядок обхода – многие на автомате уже заучили определенный порядок обхода полей. Так вот, как раз от порядка обхода в 8.2 отказались. Он строго соответствует порядку размещения элементов. К счастью, есть возможность программного перехвата выхода из поля и передачи фокуса другому полю, иначе было бы совсем плохо с заявленной производительностью.
Рабочая область и вложенные формы
Рабочая область – всего одна. Поэтому приходится запихивать в неё формы практически всех пользователей и определять их видимость правами. Все это должно приводить в больших конфигурациях к хаосу.
Намного проще было бы создавать её программным кодом или использовать механизм вложенных форм.
Что так и не реализовано в 8.2-8.3
Я так и не дождался вложенных форм. Увы, их нет, хотя они использовались еще в древнем Access.
Перетаскивания через буфер обмена нет. Т.е. приходится тащить мышкой, нельзя указать – я тащу отсюда и помещаю здесь, не разрывая жесть мышью, увы. Хотя, возможно, здесь на помощь может прийти сторонний софт, т.к. перетаскивание – это системная вещь в Windows.
Функциональные опции и видимость элементов
В своё время RLS были созданы для того, чтобы показывать пользователям только отдельные записи таблиц.
Дальнейшим развитием видимости стали функциональные опции и настройки отображения полей по ролям. Все вместе это составляет некий разнообразный зоопарк, нет общей стройности и слаженности.
На мой скромный взгляд, видимостью полей все же проще управлять программным путем, чем декларативно, расставляя галочки и делая сложный механизм функциональных опций.
В свое время я доказал, что RLS на изменение уступает программному контролю записи на уровне модуля объекта/подписки. Точно так же подозреваю, что любая функциональная опция уступает обычному алгоритмическому описанию контроля видимости элементов – как в простоте использования, так и в универсальности подхода.
Пользователь конфигуратора вынужден очень много думать, как контролировать видимость – ролями или через функциональные опции. Один раз написав универсальный алгоритм определения видимости полей, он мог бы применять его всегда без всяких этих платформенных костылей.
Приговор – функциональные опции и видимость через роли – малоэффективны, но их надо знать, т.к. они используются в типовых конфигурациях.
Интерфейс 8.2 и интерфейс Такси
Интерфейс 8.2 и интерфейс такси совместимы, т.е. новых объектов не появилось. Конфигурация может работать или в 8.2 или в Такси, можно позволить пользователю переключаться между этими интерфейсами.
Главное отличие – расположение объектов главного меню. В 8.2 они занимали много места слева и сверху, в итоге под рабочую область для пользователя оставлялось мало места в правом нижнем углу. В интерфейсе Такси меню автоматически скрывается, оставаясь в виде небольшого меню слева, в итоге под рабочую область отводится практически весь экран.
Непонятно, зачем было идти таким запутанным путем, если в итоге базовая система меню в 8.1 еще более экономно расходовала рабочее пространство экрана?
Также в Такси изменились принципы отображения окон, в итоге код форм для 8.2 в некоторых местах неудобен. Но в этом направлении разницы я еще не осознал, хотя преподаватель и пытался рассказать основные принципы Такси. Попробую разобраться на практике, хотя и считаю все эти усовершенствования интерфейса избыточными и ненужными на практике пользователям бизнес-приложений.
Кстати, в 8.2 нельзя поменять палитру, это как бы визитная карточка платформы 1С. Точно также и система организации меню в виде 8.2 или Такси приучает пользователей к некоторому стандарту. Однако практика показывает, что на новую систему меню пользователь переучивается практически мгновенно. Вот поменять навыки работы с документами и отчетами намного сложнее.
Поэтому весь этот шум и споры вокруг системы меню мне не очень понятны – это не основной момент в платформе 1С, оставим его на совести архитекторов платформы и указывающих им направление развития руководителей.
Не проработанная идеология
Преподаватель правильно заметил, хотя это понятно и так, что разработчики платформы не создали новых сущностей там, где это нужно.
Например, подсистемы используются и для разделения объектов конфигурации на блоки, и для организации функциональных меню (новая альтернатива привычному меню приложения). Хотя логично было бы создать отдельный прикладной объект, который назывался бы «Функциональное меню».
Также приходится организовывать пустые роли (интерфейсные роли), которые нужны только для того, чтобы указать, какие объекты будут отображаться в той или иной форме. Хотя логичным было бы развить в этом направлении прикладной объект «Интерфейс».
Сомнения в эффективности
Некоторые подходы 1С к usabilityвызывают сомнения.
Например, много внимания на курсах было уделено, чтобы печатная форма документа показывалась в отдельной подчиненной форме документа и когда документ менялся, чтобы она очищалась. Смысла в этом не очень много, иногда нужно напечатать несколько экземпляров – например до правки и после. Запутаться в паре документов и нескольких печатных формах невозможно с практикой, поэтому распыление энергии в этом направлении мне показалось сомнительным.
Также, например, в платформе невозможно сделать поле ввода в ячейке динамического списка, если источником является не базовая таблица. Не потому что это технически сложно, а из соображений usability.
Возможности сохранения настроек
Настройки формы сохраняются напрямую в базу, а не в сеансе. При аварийном завершении они не теряются. Соответственно, появился новый механизм работы с этими настройками, где можно сохранять и свои данные. Альтернатива СохранитьЗначение/ВосстановитьЗначение.
Теперь все сохраненные настройки при необходимости можно программно перебрать, а значит, выгрузить другому пользователю, в файл и т.п.
Остальные вопросы
Что такое управляемые формы?
В управляемых формах код выполняется на клиенте и на сервере.
Под клиентом подразумевается слабая машина, им может быть даже обычный браузер.
А сервер находится в непосредственном и быстром соединении с базой данных.
Клиент не может работать с базой данных, он может выполнять мелкие математические операции и управлять элементами своих форм. Если требуется получить что-то из базы данных или отправить туда данные – клиент обращается к серверу.
Именно так работают управляемые формы. При должной сноровке постоянное обращение к серверу не является сложностью.
Подобная организация эффективнее, чем подключение к серверу через удаленный доступ, кроме того, работа возможна непосредственно через браузер, т.е. на любой платформе – Windows, Linux, Android, MacOS.
Заметки по 1С россыпью
Здесь приведу заметки, которые писал для себя, они содержат ценные знания:
- В окне запуска 1С прописываются уже не информационные базы, а точки входа. Т.е. одна база может присутствовать несколько раз, но прописана для разных пользователей и разных инструментов работы – браузер, тонкий/толстый клиент, вход для администратора.
- Для администратора появился ключ, который отключает контроль ролей. Войти в Предприятие таким способом можно, только если доступны административные права на конфигурацию.
- Общие реквизиты – не путать их с общими реквизитами в 1С7, в 82 они используются для разделения доступа в интерфейсе.
- Часто использовал минимальную высоту списка в форме, чтобы избавиться от лишней полосы прокрутки формы.
- Не стоит хранить картинки в реквизите справочника, это приводит к падению производительности справочников, надо использовать регистр сведений.
- В процедурах сервера при передаче параметров нужно использовать ЗНАЧ, чтобы параметр не передавался обратно на сервер.
- Новые функции СтрНачинаетсяС и СтрЗаканчиваетсяНа, возможно и другие, с платформы 8.3.6.
- В 1с 8.2 появился привилегированный режим, т.е. можно отключать контроль прав доступа на уровне ролей на участках кода.
- Элементы формы список, таблица значений и дерево значений отличаются тем, что список на сервере и клиенте имеет одинаковое представление, а для таблицы и дерева создаются специальные объекты и их надо преобразовывать на сервере.
- Порадовало, что преподаватель любит называть объекты в единственном числе и называть модули с подчеркивания, чтобы эти модули шли первым по порядку в контекстной подсказке.
О жизни и вокруг 1С
Преподаватель утверждал:
- Разработку нужно вести с интерфейса.
Мое мнение: Утверждение сомнительное, т.к. знание и опыт использование архитектуры платформы позволяет сразу идти от прикладных объектов, а интерфейс уже строить потом. - Руководитель не вводит данные, только смотрит отчеты. А управляет не вводом данных в 1С, а телефоном и через секретаря. Поэтому руководителю достаточно браузера, а поля ввода нужны только для фильтрации данных.
Мое мнение: Да, это похоже на истину. - Критиковал БСП (Библиотека Стандартных Подсистем). В том плане, что из нее невозможно и очень сложно выделить необходимые модули.
Мое мнение: Т.к. даже БСП не удалось разбить на модули, то и УПП не получается разбить на модули УТ, ЗУП, БП, Производство. И тут не платформа виновата, а неправильная методология написания типовых – не соблюдается модульность. Тот же Navisionдавно имеет возможность сначала продать клиенту бухгалтерию, а потом он может докупить торговлю, производство и зарплату при необходимости, без переписывания кода и перехода на новую программу. - Типовые стали очень сложными, их затруднительно изменять. Опять же не из-за сложности платформы, а из-за неправильной организации типовых. При этом теряется основной принцип – быстрое и экономное сопровождение и доработка типовых конфигураций при необходимости.
- Был продемонстрирован вариант оформления заказа, когда слева в рабочей области находится номенклатура, справа – список заказов. Напротив номенклатуры можно ставить количество, затем перетаскивать ее в список заказов и формируется заказ. Преимущество – не блокируется таблица заказов для создания нового заказа.
Мое мнение: Преимущество надуманное – все же пользователям привычнее видеть отобранный товар в табличной части, можно сохранить этот заказ как черновик или скопировать заказ из шаблона. В общем, документы придуманы не зря. - Объяснял разницу между разделами «Главное», «Важное», «Перейти», «Смотри также».
Мое мнение: Лично я понял смутно, а значит, большинство так и не поймет эти заложенные в платформу нюансы usabilityв Такси. Поэтому интерфейсы будут выглядеть как раньше, как уже привыкли и пользователи, и программисты в 1С. - В ячейке табличного поля на форме, источником которого является произвольный запрос, нельзя вводить данные, как в поле ввода. Это сделано в интересах usability, чтобы пользователь фокусировался на вводе данных в отдельном окошке.
Мое мнение: Я привел пример с вводом в табличные части, где такое поле имеется, смысл запрета мне не понятен. - Разводы возникают от сравнения супруга с другими людьми. Меньше сравнений – крепче брак.
- Иностранные языки легче изучать, когда изучаешь их сразу несколько, снимается зашоренность и зацикленность на одном родном языке.
- Иностранные языки невозможно изучать, если привязывать иностранное слово к слову на родном языке, нужно привязывать к образу. Цепочка иностранное слово – образ короче чем цепочка иностранное слово – родное слово – образ. В последнем случае мыслить на иностранном не получится.
Заключение
Выражаю благодарность преподавателю.
Посещение этого курса избавило меня от предубеждения относительно управляемых форм, я четко уяснил для себя нюансы модальности, различия между интерфейсами 8.2 и Такси.
Теперь управляемые формы не пугают меня, а, наоборот, влекут познать их.
Надеюсь, и вы, читающие эту статью, по достоинству оцените управляемые формы.
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
См. также
Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)
Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!
31720 руб.
27.03.2025 92319 69 44
Консолидация данных Работа с интерфейсом Разработчик Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)
Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.
6088 руб.
17.10.2025 3659 3 0
Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)
Разработка "Дизайнер форм 1С" реализована в виде расширения 1С и является универсальным инструментом для разработки прототипа форм с целью демонстраций, технических заданий и т.д. Без участия разработчика с возможностью экспорта в файл внешней обработки и генерации формы используя искусственный интеллект.
36600 руб.
28.08.2025 10351 2 2
Работа с интерфейсом Разработчик Стажер 1С:Предприятие 8 Бесплатно (free)
Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна
20.08.2024 57416 mrXoxot 44
Работа с интерфейсом Разработчик 1С:Предприятие 8 Бесплатно (free)
Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.
27.05.2024 30002 smielka 39
Инструментарий разработчика Работа с интерфейсом Разработчик 1С 8.3 Абонемент ($m)
Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.
1 стартмани
10.04.2023 19475 190 acces969 31
Работа с интерфейсом Разработчик 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)
Питничная фантазия на возможности в разработке интерфейсов формы с помощью Платформы 1С - делаем свою подсказку. Публикация содержит готовую библиотеку программного формирования данной подсказки.
12.08.2022 16954 top_1c 39
Работа с интерфейсом Разработчик 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)
"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.
1 стартмани
05.07.2022 17968 kalyaka 8
Это предложение я бы переписал так:
Как вызвать процедуру с модуля объекта?
Как получить макет текущего объекта?
и тд.
Но потом разобрался и сейчас программирую только на УФ. Недавно ковырялся в 7.7, так там даже с ftp на уровне платформы нельзя работать... Опять же, можно накодить и будет работать через cmd но...
Вообщем еще раз спасибо.
(6) tormozit, как ответили в (4), ждем 8.3.7. Посмотрим как они доработают этот функционал.
Не статья, а набор заметок, сделанных на курсах и после них. Всё это есть в книжках для начинающих, на ИТС и сайтах 1С, причём изложено гораздо более полно и связно.
Эта статья - как бы ввод в тему управляемого интерфейса для тех, кто застрял на 81, все разжевывается очень доступно. Не надо вот этих наездов.
Вы отсылаете к ИТС и 1С. Во-первых это ресурсы закрытые, а во-вторых это большой массив информации, там можно в трех соснах заблудиться.
Считайте мою статью аннотацией к этим материалам, картой к учебной курве.
Но опять же, если вы считаете что моя статья - это не новое слово, дайте ссылку на статью с подобной аннотацией, где разжевывается для новичков про УФ. "Под капотом УФ" я читал, это не про то. Итак, жду ссылки, или критику считаю необоснованной.
Вообще, конечно, странно, что критикуя одну "дневничковую" запись, вы отсылаете к другой "Дневничковой" записи, на этот раз Нуралиева. Причем критикуя аннотацию по всей теме управляемого интерефейса, вы даете ссылку на запись с частным случаем. Где логика?
Да, возможно с вашей точки зрения 1с-ник должен штудировать блог Нуралиева, но я предлагаю ему съэкономить время и получить основные понятия из моей статью. Как то так.
А как он должен найти вашу статью?
Я же как то нашёл. И не я один.
Я не критиковал вашу статью. Вы просили дать вам ссылку на более подробное описание. Я её вам дал. По остальным частным случаям то же есть ссылки.
Это ваши домыслы что должен делать 1Сник, а что нет... Но читать блог хорошее дело.
(20) да Фиксин = Гений1с
(23) могу позволить себе поспорить, чай не Чайник 1С.
(24) ХЗ, я сразу полюбил восьмерку за новые функции, особенно за SQL-подобный язык.
(25) кто? ггг.... Нуралиев написал подобную моей статью, где было бы кратко разжевано? Нет, он не пишет аналитику, он штампует посты в блог. Они технически подробные, но разрозненные. Наслаждайтесь тем, что я Вам даю. Сам мечтал о такой статье, когда знал только 81. Надо спасибо мне говорить, а не плеваться.
Я же как то нашёл. И не я один.
Поиск на ИТС просто никакой.
Не хочу переходить на личности, но со времён мисты мало что изменилось... И дело даже не в уровне и подробности, не в раскрытии. Дело в подаче. Я, аз грешен, копался в различии между модальностью и синхронностью применительно к 1С, аки тупой кодер, и тоже не особо много понял; но презентовал иначе... И когда потом мне, кроме, в общем, понятных наездов, накидали полезного, я не спорил, а благодарил.
(22) А вроде бы push от сервера уж обещали:
Вот тут регистр букв перепутан. "Я" надо было писать с большой, а "вам" - с маленькой )))
(95)
(0)
(33) Новиков,
Почему? Как я обычно отвечаю на данный вопрос - либо не знает сама, как у неё все работает на уровне платформы, либо не понимает и не видит всей картины в целом.
Но мы в свободной стране, а любая статья это в любом случае труд автора.
Было бы гораздо интереснее понять тенденцию развития интерфейса 1С, на мой взгляд.
Плюсов бы точно было больше.
Опять же на мой взгляд это попытка догнать HTML5 и в некотором роде гонка за собственным хвостом.
Т.е. в обозримом будущем вернется возможность создавать привязки, push уведомления со стороны сервера и т.п.
Получилось типичное, к сожалению, развитие дискуссии - не в сторону предметного обсуждения тех вещей, с которыми не согласен, а на уровне "А ты кто такой?".
Раскройте глаза! На Инфостарте море публикаций типа "Печатная форма NNNN для документа ДДДДД конфигурации КККК", которые интересны лишь автору плюс 1-2-5 человек, у кого все звезды сошлись. А дискуссионных, содержащих не только факты, но и суждения - кот наплакал.
Я прочитал (0), и не считаю, что зря потратил время. Спасибо.
Есть тут вполне определенный круг "эстетствующих ...", которые думают, что статьи на сайте пишутся исключительно для них и если ИМ они не подошли - то статья не годная.
А вы, батенька, за всех-то не судите. Инфостарт - он не только для разработчиков, админов и программеров. Эти самые "печатные формы" - существенная часть рынка для бухов, менеджеров, простых юзверей. Им это позарез надо. И я вас уверяю, там далеко не 1-2-5 человек бывает. Просто по плюсам это видно не всегда - лично знаю многих, кто качал и не плюсил.
Вам бы, вместо того, чтоб походя обгадить эти рядовые публикации, сказать им спасибо, они повышают популярность и прибыль ресурса в кругах заказчиков, не то что пустопорожний "дискуссионный" трёп. И сказать спасибо их авторам, которые, практически не имея рейтинга, продолжают трудиться и публиковаться.
Данная статья практически не содержит полезных фактов. Новичку по ней не научиться (максимум - составить общее впечатление, но это лучше на сайте 1С делать), для профи она бесполезна. Если есть желание пофлеймить в духе "авотчоуменябыло", так есть форум, но уж всяко не стоит, имхо, позиционировать это как "статью", да ещё и не в Life.
Вот у меня знакомый менеджер сделал через групповую обработку документов групповую выписку и проведение с печатью пачек документов. Так это потому, что такой функционал не был заложен в решении, иначе бы стал он напрягаться? то же и с формами. Когда разработчики не додумывают, что нужно пользователю, он расчехляет "ручки".
(65) я не путаю. я как раз и говорю о разнице между модальными окнами и остановкой кода. как то так.
Подскажите, пожалуйста, это в каких ситуациях нужно использовать? Когда с клиента вызываем серверную процедуру?
Имеет смысл во всех серверных процедурах, в которых параметры не изменяются, проставлять "Знач"?
&НаСервереБезКонтекста
Процедура КомандаНаСервере(Массив1,Массив2,Знач Массив3,Знач Массив4)
Массив1.Очистить();
Массив2 = Новый Массив();
Массив3.Очистить();
Массив4 = Новый Массив();
КонецПроцедуры
&НаКлиенте
Процедура КомандаНаКлиенте(Массив1,Массив2,Знач Массив3,Знач Массив4)
Массив1.Очистить();
Массив2 = Новый Массив();
Массив3.Очистить();
Массив4 = Новый Массив();
КонецПроцедуры
&НаКлиенте
Функция ФормируемМассив()
М = Новый Массив();
М.Добавить("нечто");
Возврат М;
КонецФункции
&НаКлиенте
Процедура СообщимМассив(Массив)
Сообщить("Количество = "+Массив.Количество());
КонецПроцедуры
&НаКлиенте
Процедура Команда1(Команда) //обработчик непосредственно команды
Массив1 = ФормируемМассив();
Массив2 = ФормируемМассив();
Массив3 = ФормируемМассив();
Массив4 = ФормируемМассив();
КомандаНаСервере(Массив1,Массив2,Массив3,Массив4);
СообщимМассив(Массив1); //0
СообщимМассив(Массив2); //0
СообщимМассив(Массив3); //0
СообщимМассив(Массив4); //1
Массив1 = ФормируемМассив();
Массив2 = ФормируемМассив();
Массив3 = ФормируемМассив();
Массив4 = ФормируемМассив();
КомандаНаКлиенте(Массив1,Массив2,Массив3,Массив4);
СообщимМассив(Массив1); //0
СообщимМассив(Массив2); //0
СообщимМассив(Массив3); //1
СообщимМассив(Массив4); //1
КонецПроцедуры
Показать//КомандаНаСервере
Количество = 0
Количество = 0
Количество = 1
Количество = 1
//КомандаНаКлиенте
Количество = 0
Количество = 0
Количество = 0
Количество = 1
и читаем до полного просветления...
для случая "КомандаНаКлиенте"
для случая "КомандаНаСервере"
Если при вызове сервера с клиента передавать параметры по значению, то получите выигрыш в производительности, равный времени передачи параметров с сервера на клиент. Но выдать какие-то рекомендации, связанные с тем, как передавать параметры в процедуры/функции весьма проблематично, т.к. это определяется логикой работы ВАШЕЙ конфигурации. Где-то нужно передавать параметры по ссылке, а где-то по значению. И до кучи, рекомендую прочитать немного путанную, но все таки официальную статью "Передача параметров по ссылке и по значению при вызове процедур и функций" на ИТС.
"По ссылке" здесь не совсем применимо, если говорить об общепринятом смысле этого в C++/C#/Java/Delphi
(31)(33) да, знач подразумевает, что значение не надо передавать обратно в клиента. Обычно ЗНАЧ не пишут из лени, какой то 0.0001% скорости это дает, а в некоторых случаях ЗНАЧ просто необходимо.
(32) не буквоедствуйте, не люблю.
(4) Diversus,
Новый МРЭ - наверняка будет абсолютно несовместим со "старыми" УФ 8.2-8.3 как в конфигурации, так и по платформе.
Преподаватели УЦ1 говорят одно, сами 1С-ники говорят пишут другое (см. ). Если перейти по ссылке, то видно, что в теме "Зачем надо отказываться от модальности" пишут:
Другая проблема заключается в том, что мобильные браузеры вообще не поддерживают модальные окна.
В такой ситуации вариант работы интерфейса 1С:Предприятия без использования модальных окон снимает все перечисленные выше проблемы.
(40) так параллельности никто и не обещал, перечитайте, что изменилось в вопросах модальности.
Параллельно можно запустить через фоновые задания, в типовых так отчеты и запускаются, кстати.
Я то уже давно понял, что новые НеМодальные вызовы вполне себе могут работать модально. То что новые "не модальные" могут быть (или некоторые являются) модальными ясно видно даже из СП. Но у вас почему то такая логическая цепочка: раз 1с-ники не отказались от модальных окон, значит новые методы (ПоказатьВопрос, ПоказатьПредупреждение и т.д.) созданы не ради браузеров.
Вот тогда вам ещё . Там написано те-же причины отказа от модальности и теми же словами, что я приводил выше. Но далее написано:
Пользователю не нужно вносить изменения в стандартные настройки браузеров.
Т.е. написано прямо: новые методы модальны по сути своей, но мы их сделали ради браузеров.
По вопросу насколько модальные новые "не модальные" методы мы с вами солидарны, а вот по второй части спора "ради чего внедрили новые методы" я пожалуй с вами не соглашусь.
Получается во всех официальных источниках прямо написано, что новые методы сделаны ради браузеров, но вы почему то категорично утверждаете, что внедрение новых методов абсолютно никак не связано с браузерами...
1. Команда ОткрытьФорму
2. ПриСозданииНаСервере и ПриОткрытии новой формы.
3. Дальше выполняется код написанный программистом после ОткрытьФорму. Причём если этот код "долгий" то с вновь открытой формой вы не сможете работать пока весь код не выполнится.
Т.е. другими словами код выполняется не параллельно, а последовательно. Т.е. как и раньше...
Простенький пример: создаём обработку с 2 формами. При нажатии на кнопку происходит открытие 2 формы:
ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма2",,ЭтаФорма,,,
,Новый ОписаниеОповещения("ПослеЗакрытияФормы2",ЭтотОбъект),);
Индекс=9999999;
Пока Индекс>0 Цикл
Индекс = Индекс-1;
КонецЦикла;
ПоказатьСо второй формой вы будете работать только когда выполнится долго играющий код после команды ОткрытьФорму.
Если мы делаем рефакторинг в 1С понимание кода явно усложняется...
Уже читал, не 100%, но по большой части согласен, лайкнул.
Браузеры не позволяют программно открывать новые окна, только по ПКМ мыши - открыть в новом окне.
так что функционал 1С в любом случае без настройки браузеров пахать не будет.
Цель именно в прямом реагировании на события, чтобы не замораживать выполнение кода, следовательно ТК будет более просто реализовать, в том числе и в браузерах - полный переход на событийную модель. ОК?
(47) я сам чайник и пишу для чайников и за это чайники мне благодарны.
(48) ну что поделать, если УФ я изучаю только сейчас. А вот модальность появилась не так давно, вроде не 5 лет назад, да и Такси тоже новодел.
Кому и что понятно? О_о
Судя по вашему ответу, вам это как раз не понятно =)
Я конечно рад за вашего препода. А аргументировать он не пытался?
так что функционал 1С в любом случае без настройки браузеров пахать не будет.
При чем тут настройка браузеров?
Может кто не в курсе, но последние версии Хрома не поддерживают модальность. Фаерфокс тоже имеет аналогичные планы.
Из-за отказа части браузеров от модальности в платформе реализовали эти навороты - отказ от модальности и асинхронность.
Цель - чтоб веб-клиент работал.
В тонком/толстом клиенте все работает и без асинхронности и с модальными окнами. Причем реализация этого на много проще, чем заморочки с асинхронностью. Была 1 процедура в которой задали вопрос пользователю, получили ответ и закончили процедуру, а стало минимум 2 - в одной задали вопрос, а во второй обработали ответ.
если ход выполнения замораживается, то ТК (браузер) реализуется сложнее, чем полностью событийная модель. Вот аргумент.
Модальность - это логика не браузера, а логика приложения, т.е. модальность реализует приложения, блокируя кнопки, пока не закрыто окно. В последних версиях 1С новое модальное окно отрисовывается не в новом окне браузера, а в текущем окне браузера.
Еще раз докажу методом от противного - если прогибаться под браузер, то нужно отказываться от программного открытия новых окон, и работать в SDI, т.е. строго в одном окне. Потому что любое открытие нового окна в новой странице будет расцениваться как всплывающее окно. И при чем тут модальность?
Просьба пояснить, что вы этим хотите сказать.
И?
Не уловил, где доказательство?
Естественно, что особенности работы веб-клиента накладывают ограничения. И если требуется, чтобы конфигурация работала в веб-клиенте, то при разработке надо это учитывать.
Повторю еще раз, в Хроме отказались от модальности. Хотите убедиться, запустите какую-нибудь конфигурацию годовой давности на управляемых формах на Платформе 8.2.19 в Хроме. Работать нормально не будет (вообще никак не будет), где будут модальные вызовы.
В 8.3.5 реализовали возможность "отказ от модальности" и "асинхронность", чтобы можно было разработать конфигурацию, которая бы работала любом веб-клиенте. Вот собственно и все. О чем тут спорить и зачем искать тайные мотивы этого механизма, я честно говоря не понимаю.
В браузере происходит обработка событий. А обычная модальность от 1с подразумевает цикл while ... doevents wend.
Это реализовать сложнее чем полностью реагирование на события.
Нуралиев пишет о запрете на открытия новых окон. Без новых окон приложение превращается в SDI, но 1С в браузере не работает как SDI, поэтому чхать оно хотело на открытие новых окон.
А вы потрудитесь разобраться, почему Хром не работает в режиме модальности, например.
Я бы с большим удовольствием принял бы Вашу точку зрения, но с этим переходом заметил что в логике программирования даже код мат-части не всегда то в типовых выделен в отдельное закрытое ядро, что в общем то показывает разницу между уровнем систематизации разработчиков и уровнем, к примеру, Вашей собственной систематизации. 1С, к сожалению, не реализует наши мечты, оно решает свои собственные проблемы как умеет, еще раз к сожалению.
скоро никто не сможет за разумное время разбираться в коде типовых конфигураций.
Останутся только обновленцы и консультанты,
программистов 1с не будет.
я же писал, например, что RLS на модификацию - это бред, не знаю, может его и юзают в типовых, но проще наложить свою систему ролей поверх типовых.
Так и функциональные опции - может они кому и пригодятся, но проще их не юзать и использовать свои функции.
Но вообще то да, код типовых становится все страшнее, запросы все монструознее. ;-) Но это не грех платформы, а грех типовописателей.
Единственно что меня несколько печалит в последних версиях 1С, что у конфигуратора очень сильно течет память, отжирать 1,5 гига памяти, это уж чересчур.
За статью кстати спасибо, весьма интересная, хорошее изложение!
Удачи!
- редактирование интерфейса под себя (рабочий стол, реквизиты на форме: видимость и расположение).
- при изменении видимости элементов, другие элементы сдвигаются, и визуально не скажешь что реквизит закрыт правами (идея я думаю понятна).
1. Вот взять к примеру Итилиум. У обычного "смертного" там есть больше десятка реквизитов, которые закрыты или не используются и никогда не будут использоваться. В связи с этим форма ОЧЕНЬ и ОЧЕНЬ нагроможденная. Для себя, я больше половины реквизитов удалил. Туда же и половина страниц. Теперь у меня там только то что нужно.
2 Я часто вывожу рядом с реквизитами типа Контрагент, Номенклатура их доп поля (Код, ЕДРПОУ и тд). А это существенно облегчает жизнь ;)
Поэтому с этим утверждением согласен 50/50.
Сама идея УФ прогрессивна и ее появление обусловлена требованиями времени.
Возможно УФ могут улучшить быстродействие системы при наличии сервера 1С, но большая часть пользователей работает в файловом режиме и в данном случае кроме «красоты» ни какой пользы !!!
блокировка кнопочек/окон/чего бы то не было - это не модальность, это блокировка интерфейса.
модальность - это именно остановка выполнения кода из-за ожидания ответа пользователя при интерактивной работе - вопрос, предупреждение и прочее.
ПоказатьВопрос, НачатьПомещениеФайла и прочие асинхронные процедуры НЕ модальные, т.к. их вызов не останавливает выполнение процедуры, а просто открывает окно, которое при необходимости блокирует интерфейс.
Вопрос и ПоместитьФайл же модальные, потому что помимо блокировки интерфейса так же останавливается код.
Под капотом УФ - это про УФ, а про сам интерфейс где? Сколько раз я спрашивал, чем отличается Такси от 82, что такое модальность - никто не отвечал, отправляли искать в горе документации. А тут все разжевано, только кушайте.
Учить матчасть!
Каким образом это связано с производительностью?
Поле ввода в динамическом списке нельзя сделать ни в каких случаях!
В общем то не стоит подавать материал, в котором еще сами то толком не разобрались в такой утвердительной форме.
(78) ага, как бы не так. УФ по-своему вкусы. Вот даже в 8.1 иногда нужно было разделять код для сервера и клиента и ничего, справлялись же. Тут то же самое, ничего сложного, в принципе для опытного 1сника.
Речь о важности знания УФ, клиент-серверного взаимодействия, возможности разработки для тонкого и веб-клиента и всего остального, что с этим связано.
То есть это достаточно большая область знаний.
Если после изучения всего этого и некоторой практики, вы еще раз сходите на собеседование в 1С, ИМХО, предложенная оплата будет выше, чем раньше.
Вы забыли написать "в любой нормальной" фирме... Есть руководители, которые принципиально будут ставить з/п администратору и программисту на уровне уборщицы, аргументируя "А что он мне разве прибыль приносит?". Ну и идут в такие фирмы либо новички подучиться или от безысходности (в маленьких городах не всегда есть выбор), или соответствующего уровня "программисты".
По поводу зарплаты в 1С слышал от бывшего коллеги, что у него подруга туда пошла. Говорит подруга как программист очень даже высокого уровня. Устроилась в 1С на маленькую з/п думала, что её оценят и после испытательного поднимут. Во-первых ей не понравилось как всё организовано (точнее не организованно) в её отделе, во-вторых когда она попросила побольше з/п ей прямо сказали: "ТЫ РАБОТАЕШЬ В 1С!!! Мы даём маленькую зарплату, потому что тебя после такой записи в трудовой куда угодно возьмут."
Ну это само собой =)
Сейчас вакансий Программист 1С очень много, поэтому если квалифицированному специалисту ставят зарплату уборщицы, то всегда можно найти другую фирму. Но конечно в жизни всякое бывает.
Спорить не буду, возможно бывает и такое.
ИМХО, в 1С как минимум будет интересно работать, т.к. все новое (касательно 1С) появляется в первую очередь там =)
А руководители разные бывают...
Вдруг кому интересно =)
А вот RLS на чтение работают с таблицами, там альтернативы нет.
А вот RLS на изменение реализуется более универсально в подписке на события изменения - не только на языке запросов, но и полноценно, на алгоритмическом языке. Еще раз вникните в мое описание.
А получили статью на уровне плинтуса. Я особо не вчитывался, по диагонали, но, похоже, на 2/3 - еще и с неверно/не до конца понятыми вами механизмами работы УФ.
А 8.3.7 уже и "старые" УФ отправит на свалку одноэсовой истории...
И передает привет всем апологетам УФ - все, теперь форма снова будет "частью на сервере, частью - на клиенте", чем они ранее особо гордились, не понимая сути вопроса. А там и до реализации (и функционала ЭУ и форм, из-за чего и ломают в 1С все снова на формах) ОФ под новой маркетинговой кожурой недалеко.
И передает привет всем апологетам УФ - все, теперь форма снова будет "частью на сервере, частью - на клиенте",
Не совсем понятно - можешь пояснить подробнее?
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 383065
Создание 27.07.15 01:56
Обновление 27.07.15 01:56
Просмотры 47317
Загрузки 0
Рейтинг
60
Комментарии 103
Код открыт Не указано
Рубрики Работа с интерфейсом
Кому Разработчик
Тип файла Нет файла
Платформа 1С:Предприятие 8
Конфигурация Универсальные
Операционная система Windows
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)