Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"

0. TitanLuchs 344 23.12.19 11:33 Сейчас в теме
Переход на управляемые формы перевернул процесс разработки на 1С, заставив программистов менять привычные подходы к описанию логики работы интерфейса. Руководитель компании «Цифровой Кот» Юрий Лазаренко в своем докладе на конференции Infostart Event 2019 Inception рассказал о том, как устроены управляемые формы и как правильно работать с тонким клиентом платформы 1С:Предприятие.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lmnlmn 67 23.12.19 12:09 Сейчас в теме
Хороший материал и хорошая работа. Могу только посочувствовать по поводу костылей в "асинхронной" части ибо сам от сходных проблем страдаю.

P.S. А "Запрофцыкли" в слайдах это опечатка или какой-то ваш внутренний сленг?
2. TitanLuchs 344 23.12.19 13:00 Сейчас в теме
(1) Спасибо за отзыв. "Запрофцыкли" - сленг, конечно.
3. maXon777 125 23.12.19 15:22 Сейчас в теме
Наш веб-клиент практически на 100% повторяет функциональность тонкого и веб-клиента 1С. При этом у него есть как слабые, так и сильные стороны – даже некоторые преимущества.


Правильно ли я понял, преимущество в том, чтобы интегрировать веб-клиент 1С в другие движки? В вашем примере с лидом - чтение данных и запись происходит через возможности вашего веб-клиента? Насколько ресурсоемки такие доработки? (интерес не праздный)
Какие еще преимущества у вашего движка?
Сколько соединений при этом проходит к 1С-серверу? Одно на каждый запрос с сайта?
5. Bassgood 1356 23.12.19 17:02 Сейчас в теме
(3) В одной из последних версий платформы была анонсирована возможность встраивания "частей" веб-клиента 1С (определенные формы приложения) в сайты, мб эта инфа Вам как то пригодится
maXon777; +1 Ответить
6. maXon777 125 23.12.19 17:10 Сейчас в теме
12. TitanLuchs 344 24.12.19 11:11 Сейчас в теме
(3) Верно, чтение и запись идет через нашу подсистему в режиме онлайн.
Доработки занимают обычно в 5 раз больше времени, чем разработка подобного интерфейса на управляемых формах, но может отличаться в зависимости от конкретной задачи.
Количество соединений зависит от мощности сервера (сколько http-запросов может обработать один сеанс), "веса" запросов (запрос на запись более тяжелый, чем запрос на чтение), количества запросов в период времени. При проведении тестов нам за счет переиспользования сеансов удавалось 200 пользователей повесить на один сеанс 1С. Экономия оперативки при этом была многократная. Дисковые ресурсы сэкономить так не получится. В случае использования возможностей последней версии платформы такое вряд ли прокатит, так как каждому пользователю потребуется авторизация средствами платформы, а это подразумевает создание сеанса для каждого посетителя со всеми вытекающими. Хотя мы не проверяли это, так что 100%-й уверенности нет.
Дополнительные преимущества - использование всех возможностей html и js, какие только возможны. Внешний вид может быть произвольным, не похожим на 1С совсем. Работать будет на чем угодно, включая мобилки с самым маленьким экраном.
13. TitanLuchs 344 24.12.19 11:13 Сейчас в теме
(3) Про количество соединений с сервером два года назад рассказывал, почитайте: https://infostart.ru/public/883068/
maXon777; +1 Ответить
14. TitanLuchs 344 24.12.19 11:14 Сейчас в теме
(3) Про количество соединений с сервером два года назад рассказывал, почитайте тут: https://infostart.ru/public/883068/
maXon777; +1 Ответить
4. herfis 474 23.12.19 15:35 Сейчас в теме
Это не совсем из под капота. Из под капота вот: Под капотом управляемых форм
Дмитрий74Чел; artbear; Bassgood; +3 Ответить
9. TitanLuchs 344 24.12.19 10:50 Сейчас в теме
7. bulpi 209 23.12.19 17:23 Сейчас в теме
Автор очень аргументировано рассказывает, почему тонкий клиент быстрее, чем толстый. Ему даже веришь. Но вот вопрос : почему конфигурации на управляемых формах работают существенно медленнее, чем на обычных ? Визуально заметно, раза в полтора. И даже одну и ту же конфигурацию взять, две формы одного объекта, все равно тот же эффект. Похоже, сама платформа на управляемых формах тормозит. Вот я их и не люблю.
pinkz80; maXon777; +2 Ответить
10. TitanLuchs 344 24.12.19 10:54 Сейчас в теме
(7)
почему конфигурации на управляемых формах работают существенно медленнее, чем на обычных ?

Об этом сказано после фразы "Итак, вывод первый:"
Тормозит не платформа - она намного быстрее тех версий, которые были во времена толстого клиента. Тормозит интерфейс - на обслуживание управляемых форм требуется больше ресурсов. И промежуточный веб-сервер скорости не добавляет. Прямой код тоже далеко не везде встречается, это один из ключевых факторов тормозов.
8. zqzq 23 24.12.19 10:34 Сейчас в теме
Вот это – код нашего модуля, который отвечает за запись документа. Нас интересуют три строки. Первая – это, собственно, запись документа. Далее – обновление формы списка, чтобы цифры обновились. А потом закрытие формы. При синхронном варианте эти процедуры будут выполняться последовательно. Пока документ не запишется, форма списка не обновится. Пока форма списка не обновится, не закроется форма.
Это какой-то ваш велосипед. Стандартный тонкий клиент пошлёт оповещение в форму списка после записи документа, ничего не блокируется зря. Также можно вручную послать/обработать оповещение (Оповестить/ОбработкаОповещения).
11. TitanLuchs 344 24.12.19 11:01 Сейчас в теме
(8)
Стандартный тонкий клиент пошлёт оповещение в форму списка после записи документа, ничего не блокируется зря.

Значит у нас разные стандартные тонкие клиенты. В тех, с которыми работал я, форма документа блокируется во время его записи. Поскольку запись синхронная, то и весь интерфейс блокируется следом.
Про "вручную послать/обработать оповещение" мы в курсе, но в доклад это уместить не удалось, 30 минут всего было. "Послать вручную" у нас изначально работало из коробки, но теперь, как и в случае тонкого клиента, это не стандартный способ записи объекта, потому что этот способ очень трудозатратный с точки зрения кодинга и крайне ненадежный с точки зрения достоверности системы, читайте после "Где-то забыл галочку поставить". В тонком клиенте реализовать асинхронную запись объекта на оповещениях более чем реально, но делать это есть смысл только в очень ограниченном количестве случаев по причине "очень трудозатратный".
15. RustIG 1692 24.12.19 15:19 Сейчас в теме
(0) крутой кейс! спасибо!
TitanLuchs; +1 Ответить
16. TitanLuchs 344 24.12.19 15:47 Сейчас в теме
17. skyboy13 13 25.12.19 10:16 Сейчас в теме
А в чем преимущества дерева в связанных документах от динамического списка? Если создается новый документ, то нужно будет обрабатывать ситуацию обновления дерева. В динамических это все на уровне платформы.

Если нужна скорость, то делается вспомогательный регистр без данных и все выводиться от туда.
19. TitanLuchs 344 25.12.19 14:22 Сейчас в теме
(17) Преимущество дерева в том, что оно создается за один вызов сервера и потом его ветки можно открывать/закрывать на клиенте. В динамическом списке за содержимым вложенных веток надо ходить на сервер. Каждый клик = вызов сервера.
21. skyboy13 13 25.12.19 18:03 Сейчас в теме
(19)
Да, но если в ветке произошли изменения, вы об этом не узнаете.
22. TitanLuchs 344 26.12.19 10:33 Сейчас в теме
(21) Конкретно в этом примере данные во вложенных ветках дерева меняются настолько редко, что вряд ли там произойдут изменения за время просмотра его элементов. Классический пример - дерево подчиненных документов в типовых конфигурациях, оно тоже готовится за один серверный вызов. А чтобы увидеть изменения есть кнопка "Обновить".
Есть случаи, когда использование ДС более оправдано, я об этом говорил в докладе. Основная цель включения этого пункта в доклад в том, чтобы обратить внимание, что не стоит использовать ДС там, где больше подходит другой вариант отображения информации.
18. skyboy13 13 25.12.19 10:36 Сейчас в теме
И преимущества тонкого клиента, это же сугубо прикладная задача. Все зависит от того, какие компьютеры, какие сервера... Что пользователи делают.
К примеру. 1000 пользователей, ввод заявок. Самый оптимальный вариант: тонкий клиент или http.
Или ввод и работа с маршрутами. Когда 1000 пользователей одновременно считают графы оптимальных маршрутов, а сервера не самые мощные. Все перенести на клиента и не грузить сервер подобными задачами.
20. TitanLuchs 344 25.12.19 14:24 Сейчас в теме
(18) Это понятно. Бывают случаи, когда лучше вообще использовать не 1С.
23. Cyberhawk 133 21.01.20 11:20 Сейчас в теме
Упоминание какого-то "поля табличного документа" в статье явно лишнее.
Походу автор попутал его с "табличным полем" (в терминологии ОФ) или "таблицей формы" (в терминологии УФ).
Оставьте свое сообщение
Вакансии
Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Программист 1С (ERP, УХ, КА 2, УТ 11), удаленно
Москва
зарплата от 160 000 руб.
Полный день

Аналитик 1С
Москва
зарплата от 200 000 руб.
Полный день

Консультант 1С / Специалист поддержки 1C
Екатеринбург
зарплата от 70 000 руб.
Полный день

Технический архитектор 1С
Екатеринбург
зарплата от 200 000 руб.
Полный день