База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно выполнить запрос с клиента на сервере в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 13 часов, 17 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
7 мая 2026 в 18:01 #37011
Как создать запрос с клиента на сервере программно 1с
-
7 мая 2026 в 18:01 #37012
Чтобы программно создать и выполнить запрос с клиентской части на сервере в 1С (клиент-серверный режим), нужно использовать объект Запрос и обеспечить выполнение именно на сервере. Для этого:
1. Создаёте объект Запрос в клиентском коде.
2. Пишете текст запроса.
3. Выполняете запрос — он автоматически будет выполнен на сервере, если база работает в клиент-серверном режиме.
4. Получаете результат.Пример кода на клиенте:
1С (Код)12345678910111213141516171819202122// Создаем объект запросаЗапрос = Новый Запрос;// Текст запроса (пример)Запрос.Текст =|ВЫБРАТЬ| Контрагенты.Ссылка КАК Контрагент,| Контрагенты.Наименование|ИЗ| Справочник.Контрагенты КАК Контрагенты|ГДЕ| Контрагенты.Активность = ИСТИНА;// Выполняем запрос (в клиент-серверном режиме запрос выполнится на сервере)Результат = Запрос.Выполнить();// Получаем выборкуВыборка = Результат.Выбрать();Пока Выборка.Следующий() ЦиклСообщить(Выборка.Контрагент + " - " + Выборка.Наименование);КонецЦикла;Важно:
— В клиент-серверном режиме 1С сама направляет запрос на сервер, если он создаётся и выполняется на клиенте.
— Если нужно явно выполнить код на сервере из клиентского контекста, можно использовать серверные процедуры (Общего модуля с атрибутом «НаСервере») или серверные методы объекта.
— Запросы всегда выполняются на сервере, если вызываются в серверном контексте. Если вызываются на клиенте, 1С сама перенаправит их на сервер.Если хотите программно создать запрос и выполнить его именно на сервере из клиентского кода, лучше оформить вызов через серверную процедуру:
1С (Код)1234567891011121314// В общем модуле с атрибутом "НаСервере"Процедура ПолучитьКонтрагентов() ЭкспортЗапрос = Новый Запрос;Запрос.Текст =|ВЫБРАТЬ| Контрагенты.Ссылка КАК Контрагент,| Контрагенты.Наименование|ИЗ| Справочник.Контрагенты КАК Контрагенты|ГДЕ| Контрагенты.Активность = ИСТИНА;Результат = Запрос.Выполнить();Возврат Результат.Выгрузить();КонецПроцедурыИ на клиенте:
1С (Код)1Результат = ОбщиеМодули.МодульСерверный.ПолучитьКонтрагентов();Так вы гарантируете выполнение запроса на сервере.
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v83doc#bookmark:dev:TI000000113
https://infostart.ru/public/1113459/ — примеры работы с запросами в клиент-серверном режиме
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.