Modber Сообщество
профессионалов по 1С

Управляемые формы и директива компиляции 1С



Платформы: 1С:Предприятие 8.3
Конфигурации: Все конфигурации
2015-01-26
2006 

 

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

Это достаточно гибкий инструмент. В первую очередь, он сокращает время обработки информации. Передача всех данных формы на сервер весьма ресурсозатратна, и даже скорость единственного запроса может достигать значений до 0,8 секунд, и это ещё без учёта количества передаваемых данных. А таких запросов на страницу может быть много. Для того, чтобы ускорить работу, нужно разбивать запрашиваемые данные по клиентско-серверной части. Это что-то вроде интеллектуальной игры для программистов — попытка сократить количество запросов и время их выполнения. Держать в голове, что каждый запрос сервера замедляет его работу не только для пользователей, но и для всех остальных пользователей.

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

Это главный повод для программирования в модульной системе.

При использовании модулей вызов формируется только по указанному адресу, а не по всей связке. Если указать, что взять данные функция должна на клиенте и/или на сервере, то данные компилируются оттуда, куда пришёл вызов.

&НаКлиенте (&AtClient) — определяет клиентскую процедуру (функцию);
&НаСервере (&AtServer) — определяет серверную процедуру (функцию);

Как видно из примера, каждая директива компиляции, определяющая область выполнения процедуры, должна предваряться символом «&».

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

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




Бесплатная юридическая
консультация по телефону

8 (499) 350-80-26(Москва)
8 (812) 627-15-62(Спб)

звонок бесплатный

В центре внимания

Комментарии (1)