Имя: Пароль:
1C
1С v8
Данные формы передвать на сервер моветон?
, , ,
0 brenli
 
27.04.22
13:22
Столкнулся с такой ситуацией.
Есть форма обработки. На ней создан реквизит формы ДинамическийСписок который извлекает данные произвольным запросом.
Запрос энтот возвращает список документов с их табличной частью, и эта табличная часть вытянута на форму в для отображения.
Т.е в верхней таблице форме источником которой является динамический список, выводятся документы, а в нижней таблице формы выводятся
только строки табличной части выбранного документа на которые наложен отбор.
Нужно передать данные таблицы формы на сервак чтобы уже работать с объектами. Получить эту табличку со стороны сервера не могу - пишет "текущие данные таблицы недоступны на сервере" даже при контекстном вызове.
Получилось только передав саму таблицу формы в качестве параметра. Насколько это моветон и можно ли сделать по другому?
1 youalex
 
27.04.22
13:27
Можно идентификаторы  передавать
ПолучитьИдентификатор() /НайтиПоИдентификатору()
2 Жан Пердежон
 
27.04.22
13:29
возможно правильней будет прочитать тч из базы...
3 brenli
 
27.04.22
13:30
(2) ТЧ в базе нет, она генерируемая
4 vde69
 
27.04.22
13:31
(3) так генери ее не при получении данных динамического списка а при активации строки, банально будет сильно быстрее
5 Ryzeman
 
27.04.22
13:32
(0) опиши в двух словах что в принципе ты делаешь на форме зачем тебе надо работать с объектами. И из какой таблицы? Думается, тут ошибка в самой архитектуре решения. Всё что надо делать со списком правильнее делать до получения списка. При обработке строки надо передавать строку или ссылку из этой строки.

(3) он про ТЧ документов.
6 brenli
 
27.04.22
13:37
(5) Делаю обработку печати цен. Юзер в данном случае через РМК жмакает кнопку, и открывается обработка которая выводит в динамический список документы в которых есть вид цены для текущего рабочего места,
а так же выводит только строки табличной части установки цен с определенным типом.
Дальше все это нужно передать в процедуру которая сгенерирует структуру для отправки в обработку печать ценников.
7 Жан Пердежон
 
27.04.22
13:37
(3) ты в (0) 2 таблицы описал, которые, судя по описанию, из базы берутся.
Какую ещё таблицу тебе передавать надо, зачем и как она связана с первыми двумя - догадайтесь сами?
8 brenli
 
27.04.22
13:42
(7) Не правильно выразился.
Все берется из базы... но в обработке в результате отбора в динамическом списке, получаем только те сроки из табличной части объекта которые нужны.
И уже отобранные строки в результате отбора динамо списка нужно отправить на сервер.
9 1Сергей
 
27.04.22
13:43
(8) Они и формируются на сервере. нет никакого смысла туда сюда гонять
10 Ryzeman
 
27.04.22
13:45
(6) Если пользователь там ничего не заполняет, то (9). Если у тебя на этой форме пользователь заполняет какие то поля (например шаблон этикеток и т.п.) то правильнее сделать через табличный тачсти формы и их на сервер отправлять.
11 brenli
 
27.04.22
14:02
(7) >> Какую ещё таблицу тебе передавать надо, зачем и как она связана с первыми двумя - догадайтесь сами?
Ту табличную часть которую вернул запрос в виде Таблицы Значений и которая вытащена на форму в виде таблицы формы и отображает только доступные пользователю строки.
Далее эти строки (которые получил пользователь через отбор) нужно передать на сервер чтобы сделать структуру и открыть форму обработки ПечатьЦен.
(9) Ну так они уже вытащены с сервера с необходимым отбором и представлены на форме пользователя уже с отбором.
Отбор которым получен итоговый набор строк установлен на динамический список.
Чтобы повторить все это на сервере нужно делать запрос с таким же отбором и получать все на сервере, но это получается двойная работа - динамосписок уже всё вывел как надо, нужно
показанный пользователю набор данных отправить в обработку печати перед этим упаковав (только отобранные строки которые заполнены в таблице формы ... в базе лежит целая полная табличная часть) в структуру, или же передать эту заполненую таблицу формы с типом ДанныеФормыКоллекция на Сервер и там уже получить ссылки выведеных юзеру строк.
Это концептуально не верно??? Вернее делать такой же запрос который заполняет динамо список еще раз?
12 Ryzeman
 
27.04.22
14:04
(11) >>Это концептуально не верно?
Да, потому что динамический список на форме для другой цели предназначен. Если он обрабатывается, на клиенте, то обрабатывается построчно а на сервер передаётся строка через ТекущиеДанные
Если тебе нужна коллекция целиком, с которой что-то делали, используй то, что передаётся на сервер в контексте.
13 Жан Пердежон
 
27.04.22
14:10
(11) структуру обязательно на сервере делать?
14 brenli
 
27.04.22
14:13
(12) Спасибо за ответ. Только в том и дело что коллекцию целиком я не могу получить в контексте сервера - текущие данные таблицы недоступны на сервере(. Доступна только текущая строка
которая выбрана в списке.
15 brenli
 
27.04.22
14:14
(13) Обработка печати глотает структуру. А в структуре массив с ссылками.
16 Kassern
 
27.04.22
14:14
(14) не мучайте уже ДС, воспользуйтесь обычной ТЗ для обработки на сервере.
17 Ryzeman
 
27.04.22
14:15
(14) Ты упускаешь момент где я пишу что надо использовать ТЧ или ТЗ :)
18 Kassern
 
27.04.22
14:15
документы сделайте через ДС, при активизации строки ДС заполняйте ТЗ, далее уже ее можете куда угодно передавать, хоть через временное хранилище. Если я вас правильно понял
19 brenli
 
27.04.22
14:18
(16) Я правильно понимаю - сделать запрос на сервере к табличной части документа установка цен, в который передать в качестве ссылки спозиционированную строку ДС (ссылка) и нужный вид цен для отбора. Так? (чтобы получить тот же самый набор который я хочу выцедить из таблицы формы)
20 brenli
 
27.04.22
14:20
(18) Вообще да. При активизации строки всё было хорошо. Выгружаю таблицу формы (ДанныеФормыКоллекция ) в ТЗ при попытке затолкать в хранилище возникает ошибка что объект не сериализуется
21 Kassern
 
27.04.22
14:22
(20) а зачем вы коллекцию пихаете?)
22 Kassern
 
27.04.22
14:30
(20) ТЗ отлично во временное хранилище пихается, на сервере обрабатывается. Или вы пытаетесь на клиенте получить ТЗ?
23 brenli
 
27.04.22
14:40
(22) Да в сети находил такой совет. С клиента не пихает
24 Kassern
 
27.04.22
14:41
(23) ну так потому что нет ТЗ на клиенте)) Там только коллекции. А на сервере пожалуйста, вычисляйте и передавайте что хотите
25 youalex
 
27.04.22
15:17
(20) зачем ты ДанныеФормыКоллекция  отправляешь на сервер, если на сервере у тебя уже есть точно такая же Коллекция, синхронизированная с клиентской?
26 brenli
 
27.04.22
16:22
27 Kassern
 
27.04.22
16:24
(26) Вы серьезно? Нафига вы ТЗ запихнули в ДС?))
28 Kassern
 
27.04.22
16:26
Сделайте простой ДС с нужным списком документов. Создайте еще один реквизит формы с типом ТЗ и разместите под номенклатуру. При активизации ДС заполняйте эту ТЗ. На сервере вы без проблем сможете по имени ТЗ обратиться
29 youalex
 
27.04.22
16:59
(26) зачем ты обманываешь в (3)
Это же вложенная табличная часть в запросе, ну передавай на сервер ссылку документа (ТекущаяСтрока), а ТЧ получай там запросом
Собственно (2)
30 Жан Пердежон
 
27.04.22
20:16
(15) ну а сервер тебе зачем?
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn