Передать результат запроса на клиент

1. Metabos 29 21.03.19 01:20 Сейчас в теме
Добрый день! Подскажите, как передать результат запроса на клиент. Спасибо!
По теме из базы знаний
Найденные решения
7. buganov 200 21.03.19 07:28 Сейчас в теме
Можно программно создать на форме реквизит с типом ТаблицаЗначений. ДанныеФормыКоллекция доступны и на сервере и на клиенте
Туки Туки; +1 Ответить
13. independ 1520 21.03.19 08:24 Сейчас в теме
(1) управляемые формы? Самый простой вариант создать или реквизит формы с типом ТаблицаЗначений или ТабличнуюЧасть в реквизитах обработки. Если полей в ТЗ всего 2 можно через список значений или соответствие
Туки Туки; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. independ 1520 21.03.19 08:24 Сейчас в теме
(1) управляемые формы? Самый простой вариант создать или реквизит формы с типом ТаблицаЗначений или ТабличнуюЧасть в реквизитах обработки. Если полей в ТЗ всего 2 можно через список значений или соответствие
Туки Туки; +1 Ответить
16. YannikAlx 43 21.03.19 09:35 Сейчас в теме
(1) тут все дают советы на ваш конкретный вопрос, но никто не видит проблему этого вопроса...
Вы упомянули, что собираетесь обрабатывать переданные данные на клиенте...
Уточните вашу общую задачу, ибо передавать результат запроса на клиент, чтобы его там обрабатывать - мягко сказано совсем не хорошо...
Может и передавать-то не надо весь результат?
alex-l19041; +1 Ответить
2. Туки Туки 51 21.03.19 03:05 Сейчас в теме
Привет! Можно выгрузить результат в ТЗ, а ее уже переформировать в массив структур, который может передаваться на клиент:

// Преобразует таблицу значений в массив структур.
// Может использоваться для передачи на клиент данных в том случае, если таблица
// значений содержит только такие значения, которые могут
// быть переданы с сервера на клиент.
//
// Полученный массив содержит структуры, каждая из которых повторяет
// структуру колонок таблицы значений.
//
// Не рекомендуется использовать для преобразования таблиц значений
// с большим количеством строк.
//
// Параметры:
//  ТаблицаЗначений - ТаблицаЗначений - исходная таблица значений.
//
// Возвращаемое значение:
//  Массив - коллекция строк таблицы в виде структур.
//
Функция ТаблицаЗначенийВМассив(ТаблицаЗначений) Экспорт
	
	Массив = Новый Массив();
	СтруктураСтрокой = "";
	НужнаЗапятая = Ложь;
	Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
		Если НужнаЗапятая Тогда
			СтруктураСтрокой = СтруктураСтрокой + ",";
		КонецЕсли;
		СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя;
		НужнаЗапятая = Истина;
	КонецЦикла;
	Для Каждого Строка Из ТаблицаЗначений Цикл
		НоваяСтрока = Новый Структура(СтруктураСтрокой);
		ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
		Массив.Добавить(НоваяСтрока);
	КонецЦикла;
	Возврат Массив;

КонецФункции
Показать
9. Metabos 29 21.03.19 08:18 Сейчас в теме
(2) У меня очень много строк будет. И я так поняла, что это будет все через запятую? Как потом на клиенте обрабатывать?
11. Туки Туки 51 21.03.19 08:20 Сейчас в теме
(9) Смотря что с этим нужно сделать на клиенте, а что нужно?
14. Artem1995amyr 21.03.19 09:14 Сейчас в теме
(2) Ничего не понимаю вот вполне рабочий вариант, даже нужно самому запомнить.
18. buganov 200 21.03.19 11:25 Сейчас в теме
3. SedovSU@mail.ru 297 21.03.19 06:20 Сейчас в теме
Ну как вариант все в массив а в массиве структуры:

&НаСервере
Процедура РезультатЗапроса()
Запрос = Новый Запрос(..........................)
Результат = Запрос.выполнить().выбрать();
Массив = Новый Массив;
Пока Результат.Следующий() Цикл
Структура = Новый Структура();
Структура.Вставить("Контрагент", Результат.Контрагент);
Структура.Всавить("Номенклатура", Результат.Номенклатура);
// ........... и т.к. далее заполняете структуру
Конеццикла

Возврат Массив

КонецПроцедуры
Показать
10. Metabos 29 21.03.19 08:19 Сейчас в теме
(3) А как все в массив помещать?
12. SedovSU@mail.ru 297 21.03.19 08:22 Сейчас в теме
(10) В процедуре на сервере, придумывайте переменную Массив. Далее обходите на сервере результат запроса и в массив добавляеете СТРУКТУРУ содержание поля результата запроса. Далее возвращаете массив со структурами на клиент

Я вам не большой пример написал

&НаСервере
Процедура РезультатЗапроса()
Запрос = Новый Запрос(..........................)
Результат = Запрос.выполнить().выбрать();
Массив = Новый Массив;
Пока Результат.Следующий() Цикл
Структура = Новый Структура();
Структура.Вставить("Контрагент", Результат.Контрагент);
Структура.Всавить("Номенклатура", Результат.Номенклатура);
// ........... и т.к. далее заполняете структуру
Конеццикла

Возврат Массив

КонецПроцедуры
Показать
19. buganov 200 21.03.19 11:26 Сейчас в теме
(3) к чему такие сложности, когда есть ДанныеФормыКоллекция?=)
HuKuTa88; +1 Ответить
4. SedovSU@mail.ru 297 21.03.19 06:49 Сейчас в теме
А с другой стороны почему бы вам не выгрузить результат запроса в таблицу значений и передать ее на клиент????? и дальше вы ее там обработаете как нужно
5. dandykry 10 21.03.19 07:14 Сейчас в теме
(4) Потому что ТаблицаЗначений не существует на клиенте. Может существовать ДанныеФормыКоллекция (табличнаяЧасть или РеквизитФормы с типом ТаблицаЗначений). Но мы не знаем модуль формы это или ОбщийМодуль, или модуль команды.
Тут мало исходной информации. Возможно все решается проще, чем задумал ТС
8. Metabos 29 21.03.19 08:16 Сейчас в теме
(5)Да, пробовала передать ТЗ, нет, не передает. У меня это модуль формы обработки.
6. SedovSU@mail.ru 297 21.03.19 07:19 Сейчас в теме
Вот тут посмотрите еще, есть несколько вариантов по передачи https://helpf.pro/faq82/view/1605.htm
7. buganov 200 21.03.19 07:28 Сейчас в теме
Можно программно создать на форме реквизит с типом ТаблицаЗначений. ДанныеФормыКоллекция доступны и на сервере и на клиенте
Туки Туки; +1 Ответить
15. Artem1995amyr 21.03.19 09:18 Сейчас в теме
Вообще нужно понять для чего передавать запрос на клиент возможно все можно сделать и на сервере.
17. Metabos 29 21.03.19 11:23 Сейчас в теме
Всем спасибо! Сделала на форме реквизит - ТЗ и туда загрузила. А потом на клиенте прочитала.
20. miha.e82 21.03.19 11:45 Сейчас в теме
При большом объеме передаваемой на клиент ТЗ массив структур будет заметно быстрее.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот