Параметры запроса

1. kar911 13.08.18 10:33 Сейчас в теме
Есть ли какая то разница что передавать в качестве параметра в запрос, массив или список значений?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Sapiens_bru 4 13.08.18 11:21 Сейчас в теме
(1)Есть. Учитесь сразу правильно передавать массив, потому что список значений мутабельный, его нельзя передать с клиента на сервер (как и таблицу значений). Чтобы потом не попадать в ситуации когда код работавший верой и правдой в ОФ вдруг перестал работать в УФ.
Или например не сталкиваться с фактом, что переданный в качество параметра СЗ в динамический список вдруг неожиданно становится единичным значением (первым из списка).

Используем массив для всех списочных данных , а СЗ только для отображения списков пользователю.
NatalyaVP; Bukaska; Anchoret; kar911; +4 Ответить
4. herfis 499 13.08.18 11:25 Сейчас в теме
(1) Существенной разницы нет.
Просто нет смысла использовать список значений там, где достаточно массива.
Массив - значительно более "легкий" и простой объект. Список значений - довольно развесистая клюква.
Список значений использую на 8-ке только в интерфейсе. В восьмерке почти везде удобнее использовать массив, в отличие от 7.7 где почти везде была завязка на список.
(3) Список значений можно передавать на сервер. Таблицу значений в явном виде нельзя, но не потому, что она мутабельная. Сама по себе ТЗ немутабельна. Если она не содержит мутабельных значений, то без проблем сериализуется/десериализуется.
Bukaska; kar911; +2 Ответить
7. Sashares 34 13.08.18 12:27 Сейчас в теме
(4)
Список значений можно передавать на сервер.

В обычном приложении в клиент-сервере - нельзя.
9. herfis 499 13.08.18 12:42 Сейчас в теме
(7)
&НаСервере
Процедура ВывестиСписок(Список);
	
	Для Каждого ЭлементСписка Из Список Цикл
		Сообщить(ЭлементСписка.Значение);
	КонецЦикла;
	
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
	
	Список = Новый СписокЗначений;
	Список.Добавить(1);
	Список.Добавить(2);
	
	ВывестиСписок(Список);
	
КонецПроцедуры
Показать
11. Sashares 34 13.08.18 12:44 Сейчас в теме
(9)Попробуйте выполнить это обычном приложении в клиент-серверной базе
12. herfis 499 13.08.18 12:57 Сейчас в теме
(11) Таки да. Почему-то считается мутабельным значением. Подозреваю, что просто воткнули затычку, чтобы интерфейсные СЗ туда не совали.
14. Sashares 34 13.08.18 13:09 Сейчас в теме
(12)Угу, подстава, откуда не ждешь))
15. kar911 13.08.18 13:31 Сейчас в теме
(12)я кстати с этой проблемой недели две боролся не мог понять в чём проблема, спасибо Sashares помог)
16. herfis 499 13.08.18 13:49 Сейчас в теме
(15) Всегда в запасе остается кувалдометр для пропихивания на сервер - явная сериализация :)
2. Boneman 298 13.08.18 10:36 Сейчас в теме
особой нет, будет и так и этак работать
8. SlavaKron 13.08.18 12:33 Сейчас в теме
(2)
Попробуйте передать список значений в параметр запроса динамического списка вместо массива.
10. Boneman 298 13.08.18 12:43 Сейчас в теме
(8) в динамическом списке, помимо этого существует и ряд других ограничений...даже сам по себе запрос не каждый туда можно подсунуть.
Мы говорим просто о запросе в общем случае.
13. kar911 13.08.18 13:05 Сейчас в теме
(8)Динамический список хорошая вещь, но как по мне его ещё дорабатывать и дорабатывать.
5. login1020 133 13.08.18 11:28 Сейчас в теме
Массив быстрей. Т.к. с точки зрения 1С это просто набор из n переменных.
А список - это объект со всем тормозами при обращении к его методам.
Bukaska; kar911; +2 Ответить
6. kar911 13.08.18 11:55 Сейчас в теме
Всем спасибо, вы только укрепили мои догадки и мысли по этому поводу.
17. kild 89 14.08.18 11:45 Сейчас в теме
Оставьте свое сообщение

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