Модель состояния для MVC

04.08.22

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

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

Файлы

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

Наименование Скачано Купить файл
Модель состояния для MVC - демо
.dt 121,28Mb ver:1.0.0.3
5 2 500 руб. Купить
Модель состояния для MVC - конфигурация для обновления
.cf 98,62Kb ver:1.0.0.3
1 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

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

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Вступайте в нашу телеграмм-группу Инфостарт

MVC элементы формы топологическая сортировка граф зависимостей приоритетная очередь

См. также

Работа с интерфейсом Анализ учета Мониторинг 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    89303    65    44    

75

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

6088 руб.

17.10.2025    2868    3    0    

2

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    9328    2    2    

6

Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

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

20.08.2024    54256    mrXoxot    44    

139

Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

27.05.2024    28710    smielka    39    

119

Инструментарий разработчика Работа с интерфейсом Программист 1С 8.3 Абонемент ($m)

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

1 стартмани

10.04.2023    18351    186    acces969    31    

132

Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

12.08.2022    15556    top_1c    39    

98

Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

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

1 стартмани

01.07.2022    37257    535    top_1c    75    

106
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alexander-lubich 30 04.04.23 16:07 Сейчас в теме
Где это применять?
Global__IT; +1 Ответить
2. kalyaka 1182 04.04.23 22:24 Сейчас в теме
В статье я постарался свести весь свой опыт по реализации модели MVC на платформе 1С. Эта статья своего рода ретроспектива создания нового решения для MVC с использованием DSL. Материал достаточно сложный, согласен. Нужно понимать суть модели MVC и суть решения через создание собственного языка программирования (DSL).

Еще я хотел показать как можно решать задачи при помощи специализированных языков, созданных внутри платформы 1С. В своих решениях я применяю DSL для работы с запросами, для описания модели интерфеса и объекта, для описания модели распределения, работы с массивами.

Отвечая на Ваш вопрос, можно сказать, что область применения представленного решения - это, по сути, весь "фронтенд" на 1С в управляемом интерфейсе. А идеи статьи можно применять не только в интерфейсе.
3. Global__IT 446 08.04.24 01:45 Сейчас в теме
Не совсем понятно какой эффект это даёт. Скорость разработки? Снижение стоимости дальнейшей поддержки ? Проще говоря - зачем?
4. kalyaka 1182 08.04.24 08:22 Сейчас в теме
(3) Мне, как профессиональному разработчику, понятна тема. Но вновь прочитывая статью, чтобы вспомнить контекст, я понимаю, что тема то на самом деле сложная.

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

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

Тут конечно можно возразить, что и при "традиционном" подходе можно вынести все процедуры обработчиков в общий модуль и вызвать их из разных режимов. Но даже в этом случае вам придется писать больше кода, т.к. потребуется некоторая "объвязка" для поддержки разных режимов вызова (интерактивный / система-система). Когда при использовании MVC все эти "объвязки" уже вынесены в отдельный фреймворк и разработчику требуется только встроиться в него.
5. kote 538 08.07.24 23:18 Сейчас в теме
А может быть нужно попыться увидеть MVC в предоставляемых платформой механизмах?

А так - что бы сделать на 1С удобно - надо сначала язык обогатить.. там, функция - как обьект первого класса.. понятие класса реализовать с наследованием и блек-джеком.
6. kalyaka 1182 09.07.24 08:10 Сейчас в теме
(5) Можно, вот здесь была моя первая попытка. А так то я этой темой уже больше 10 лет занимаюсь :)

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

Фреймворк здесь реализует все три компонента. Модель и представление можно полностью заложить в модель состояния.
7. NoRazum 31 03.06.25 08:45 Сейчас в теме
Слишком на многое завезал
в прошлой версии так мало было
8. so-quest 140 13.08.25 14:31 Сейчас в теме
ИМХО, конечно, но встроеный dsl тут проигрывает выразительности.
Вместо
МодельСостояния.ЭлементФормы("ВалютаВзаиморасчетов")
.Свойство("ТолькоПросмотр")
.Параметр("ДоговорРасчетов")
.Выражение("ЗначениеЗаполнено(Параметры.ДоговорРасчетов)")
.Свойство("ПоложениеЗаголовка")
.Параметр("ВалютаВзаиморасчетов")
.Параметр("ВалютаДокумента")
.Выражение("?(Параметры.ВалютаВзаиморасчетов = Параметры.ВалютаДокумента, ПоложениеЗаголовкаЭлементаФормы.Авто, ПоложениеЗаголовкаЭлементаФормы.Нет)")
;
что-то типа такого воткнуть и используя примитивный лексер читать
ВалютаВзаиморасчетов
{
ТолькоПросмотр <- ЗначениеЗаполнено(Параметры.ДоговорРасчетов);
ПоложениеЗаголовка <- ?(Параметры.ВалютаВзаиморасчетов = Параметры.ВалютаДокумента, ПоложениеЗаголовкаЭлементаФормы.Авто, ПоложениеЗаголовкаЭлементаФормы.Нет)
}

И читать проще в итоге и выражение можно своим интерпретатором обрабатывать.
Для отправки сообщения требуется регистрация/авторизация