Динамический список + таблица значений на тонком клиенте

1. itwork1c 06.07.22 09:57 Сейчас в теме
Тонкий клиент, на форме динамческий спикок (произвольный запрос), в котором создается временная таблица из ТаблицыЗначений.

При открытии динамического списка вылетает
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.


Делаю вывод что на тонком клиенте в динамическом списке не поддерживается таблица значений!
Есть ли какая то возможность передать ТЗ в динамический список (без решений с помощью регистра сведений)?
По теме из базы знаний
Найденные решения
10. spacecraft 06.07.22 11:18 Сейчас в теме
(8) это показывает, что сам текст запроса в конфигураторе можно сделать начиная с 18 платформы.
В толстом клиенте это будет работать.
В режиме тонкого клиента это работать не будет. Ну не знает тонкий клиент про тип ТаблицаЗначений. И ничего с этим не поделать.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 06.07.22 10:01 Сейчас в теме
(1)В динамическом списке в принципе не рекомендуется временная таблица. ;)
4. spacecraft 06.07.22 10:06 Сейчас в теме
(1)
Делаю вывод что на тонком клиенте в динамическом списке не поддерживается таблица значений!

Тонкий клиент вообще ничего не знает про тип ТаблицаЗначений.
6. Sashares 35 06.07.22 10:40 Сейчас в теме
(1) Такая возможность есть, начиная с 8.3.17. Но с ограничениями.
https://partners.v8.1c.ru/forum/t/1953821/m/1953821
В тонком клиенте полноценно оно работать не будет.
7. itwork1c 06.07.22 10:42 Сейчас в теме
(6) Интересно, только нет доступа к ссылке, как раз стоит версия 8.3.18
А можно альтернативную ссылку?
8. Sashares 35 06.07.22 10:43 Сейчас в теме
(7)
Прикрепленные файлы:
9. itwork1c 06.07.22 11:00 Сейчас в теме
(8) Спасибо, а можно еще ссылку из второго скриншота, хочется понять как прикручивается внешний менеджер временных таблиц!

Из остального я понял использование ТаблицыЗначений в Динамическом списке на тонком клиенте, работает начиная с 17 версии, но у меня 8.3.18.1698 и оно не работает, либо не уловил нюанс :(
12. Sashares 35 06.07.22 11:38 Сейчас в теме
(9)Вот
https://dl03.1c.ru/content/Platform/8_3_17_1851/1cv8upd_8_3_17_1851.htm#19110485-11e0-11ea-8371-0050569f678a

Но это про СКД.
Для динамического списка это не поможет.
Прикрепленные файлы:
13. Sashares 35 06.07.22 11:41 Сейчас в теме
(9)Попробуйте запустить это в толстом клиенте, для эксперимента.
15. itwork1c 06.07.22 12:20 Сейчас в теме
(13) Да в толстом все работает! в тонком нет
10. spacecraft 06.07.22 11:18 Сейчас в теме
(8) это показывает, что сам текст запроса в конфигураторе можно сделать начиная с 18 платформы.
В толстом клиенте это будет работать.
В режиме тонкого клиента это работать не будет. Ну не знает тонкий клиент про тип ТаблицаЗначений. И ничего с этим не поделать.
24. spacecraft 06.07.22 13:33 Сейчас в теме
(1) в чем необходимость использовать ТЗ в динамическом списке?
Всегда можно обойтись без этого.
28. itwork1c 06.07.22 14:26 Сейчас в теме
(24) В данном случае нет, в динамический список выводиться таблица из внешних источников данных, с помошью таблицы значений подключаю регистр сведений к внешним источникам. Загружать всё в таблицу значений без динамического списка, самоубийство, т.к таблица огромная
30. spacecraft 06.07.22 14:33 Сейчас в теме
(28)
Загружать всё в таблицу значений без динамического списка, самоубийство, т.к таблица огромная

Думаете, что при использовании подключения ТЗ будет динамическое считывание из базы? Ну-ну...
Если получаемые данные будут "огромными", то может стоит пересмотреть бизнес-логику? зачем очень большое кол-во записей показывать пользователю? Он же реально не сможет это все пересмотреть.

И еще, РеквизитФормыКоллекция, которая и может отражать данные Таблицы значений на тонком клиенте, так же показывает не все данные сразу на клиенте, а выводит их порционно.
32. itwork1c 06.07.22 15:03 Сейчас в теме
(30) Да, правы! При добавлении в запрос ТЗ нельзя установить основную таблицу и динамическое считываение. Не знал, странно даже както, т.к со временными таблицами все ок!

Тогда единственное остается понять можно ли передать менеджер временных таблиц в динамический список..
33. spacecraft 06.07.22 16:28 Сейчас в теме
(32)
Тогда единственное остается понять можно ли передать менеджер временных таблиц в динамический список..

С чего такие предположения? Нет такого в динамических списках.

Это появилось в СКД:
ПроцессорКомпоновкиДанных (DataCompositionProcessor)
Инициализировать (Initialize)
Синтаксис:
Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>, <ОграничиватьПолучениеПолейПоСсылкамПоПравуПросмотр>, <МенеджерВременныхТаблиц>)

Но не в динамическом списке.
31. Sashares 35 06.07.22 14:34 Сейчас в теме
(28)Сделайте постраничный вывод.
Первая, общая таблица - хранится на сервере во временном хранилище.
Вторая, реквизит формы - в нее выводятся данные, например, по 100-1000 строк.
И добавьте кнопки для переключения страницы.

При переключении страницы идем на сервер, получаем из общей таблицы данные, заполняем в отображаемой на форме.
27. Sashares 35 06.07.22 14:24 Сейчас в теме
(1)Можно предложить по другому поступить.
В ДС в запросе выводить ключевые поля, которые можно получить запросом.
Далее добавить колонки в ДС, которые заполнять из ТЗ в событии ДС ПриПолученииДанныхНаСервере.

Например, если условно надо вывести номенклатуру и остатки, в ДС формируется запрос к номенклатуре, а колонка с остатками заполняется из ТЗ в событии ПриПолученииДанныхНаСервере.
29. itwork1c 06.07.22 14:28 Сейчас в теме
(27) не годится, т.к. тогда не работает поиск и отбор по добавленным полям
3. soft_wind 06.07.22 10:05 Сейчас в теме
(1) просто не используйте Динамический список!
получайте/обрабатывайте прогоняйте через обычный запрос, данные и выводите в виде ТЗ!

сделайте разумное ограничение на количество строк (не более 1000)
пользователю вообще без разницы как вы ему данные покажете!
5. itwork1c 06.07.22 10:11 Сейчас в теме
Я так понимаю и менеджеер временных таблиц тоже нет возможности приклеить к динамическому списку!?
11. DENSKR 16 06.07.22 11:31 Сейчас в теме
(5) Есть версия платформы в которой реализована какая то возможность, а есть еще режим совместимости конфигурации, который может не позволить использовать эту возможность, возможно есть смысл посмотреть в эту сторону...
14. itwork1c 06.07.22 12:19 Сейчас в теме
(13)
(11)
:) Режим совместимости отключен
16. DENSKR 16 06.07.22 12:56 Сейчас в теме
(14) Можно попробовать сформировать текст произвольного запроса ДС без таблицы значений на форме, а далее в модуле проверить на заполненность текста запроса и из модуля уже прикрутить к произвольному запросу свой запрос с таблицей значений например:
ВашДС.ПроизвольныйЗапрос = Истина;
ТекстЗапроса = 
	"ВЫБРАТЬ...

Тем самым теоритически передача с сервера на клиент будет происходит в момент уже сформированного изначального произвольного запроса с добавлением данных вашей таблицы значений из запроса в модуле...
17. itwork1c 06.07.22 13:01 Сейчас в теме
(16) Это в какой момент? ПриОткрытии вызвать процедуру на сервере для заполнения текста динамического списка?
18. itwork1c 06.07.22 13:11 Сейчас в теме
(17) так тоже не работает
Прикрепленные файлы:
20. DENSKR 16 06.07.22 13:16 Сейчас в теме
(18) У Вас так и не будет работать! "ТЗ" - Это что? Текст запроса должен быть обязательно схож с запросом на форме, те колонки которые должны создаваться из ТЗ должны быть например "NULL" на форме ,чтобы в колонку можно было записать данные из запроса из модуля
19. DENSKR 16 06.07.22 13:12 Сейчас в теме
(17) В процедуре "ПриОткрытии" на клиенте можно установить реквизит с типом булево например под названием "ТолькоЧтоОткрыт" для дальнейшей проверки заполнения, чтобы вызов запроса происходил в нужное время в нужном месте, (но можно обойтись и без этого)Например:
НаКлиенте Процедура ПриОткрытии(Отказ)
	
	ТолькоЧтоОткрыт = Ложь;
	
КонецПроцедуры


Далее ПриСоздании на сервере заполняем параметры формы и работаем с данными запроса, таблицами значений и работаем с проверкой(если есть необходимость) например:
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СформироватьТекстЗапросаДинамическогоСписка(СтруктураПараметров, ТолькоЧтоОткрыт = Истина)...
21. itwork1c 06.07.22 13:19 Сейчас в теме
(19) не понимаю, т.к. "ПриСозданииНаСервере" вызывается только один раз перед событием "ПриОткрытии"!?
22. DENSKR 16 06.07.22 13:26 Сейчас в теме
(21) Все верно эта проверка по моей логике необходима для обновления данных формы на сервере, если только что форма открыта то устанавливаем повторно тексты запроса дин списка, например вы на форме какой то реквизит установили ну итд...
23. itwork1c 06.07.22 13:33 Сейчас в теме
(22) попробовал сделать как говорите - ошибка таже!
25. DENSKR 16 06.07.22 13:50 Сейчас в теме
26. itwork1c 06.07.22 14:20 Сейчас в теме
(25) ТЗ = ТаблицаЗначений. Для понимания, прикрепил тестовую обработку
Прикрепленные файлы:
Обработка1.epf
34. DENSKR 16 06.07.22 19:45 Сейчас в теме
(26)Увы так не работает как задумано, было бы хорошо если бы в платформу такую возможность добавили, думаю большинство бы оценили..
Оставьте свое сообщение

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