|
Передать ТЗ с сервера на клиент | ☑ | ||
---|---|---|---|---|
0
bebibo
23.10.20
✎
08:06
|
Всем здравствуйте!
Как будет правильнее передать ТЗ на клиент? Мне нужно заполнить табличную часть документа по кнопке на форме. Нажимаю кнопку, выполняется запрос, загружаются данные в ТЧ. Вот запрос выполняется на сервере, как ПРАВИЛЬНЕЕ мне результат этого запроса передать обратно на клиент и заполнить им мою табличную часть?) |
|||
1
BalBess
23.10.20
✎
08:11
|
(0) передавать не нужно, нужно сразу заполнять табличную часть, на сервере
|
|||
2
bebibo
23.10.20
✎
08:16
|
(1) Так ТЧ же на форме - значит это клиент. Как заполнить её на сервере?
|
|||
3
BalBess
23.10.20
✎
08:23
|
(2) ТЧ на форме просто отображает данные, которые хранятся на сервере
примерно так МояФорма=РеквизитФормыВЗначение("Объект"); МояФорма.МояТЧ.Загрузить(Запрос.Выполнить().Выгрузить()); ЗначениеВРеквизитФормы(МояФорма, "Объект"); |
|||
4
bebibo
23.10.20
✎
08:31
|
(3) Спасибо, я попробую.
|
|||
5
bebibo
23.10.20
✎
08:55
|
А отбор можно как то в ней сделать перед загрузкой?
|
|||
6
bebibo
23.10.20
✎
08:56
|
Думаю использовать НайтиСтроки() - но возвратит массив..А не ТЗ
|
|||
7
BalBess
23.10.20
✎
09:00
|
(5) отбор лучше делать сразу в запросе
а вообще мояТЗ = Запрос.Выполнить().Выгрузить(); мояТЗ.Отобрать(); МояФорма.МояТЧ.Загрузить(мояТЗ); |
|||
8
Мимохожий Однако
23.10.20
✎
09:02
|
(7) Метод Отобрать() мне нравится
|
|||
9
fisher
23.10.20
✎
09:02
|
(6) У метода Скопировать() есть вариант вызова со структурой отбора - вернет копию таблицы со строками отвечающими фильтру. Или еще в запросе фильтровать.
Судя по теме, ты новичок в УФ. Рекомендую к прочтению: http://catalog.mista.ru/1c/articles/198766/ Только читать лучше на инфостарте - там оформление более читабельное. |
|||
10
bebibo
23.10.20
✎
09:19
|
А теперь я передаю "ВладелецФормы.Объект" с клиента в серверную процедуру, ругается:
Ошибка при установке значения атрибута контекста по причине: Нельзя изменять поле, содержащее объект данных формы - это из-за того, что надо ссылку передавать? Если да, то как мне её получить? |
|||
11
BalBess
23.10.20
✎
09:30
|
(9) >> есть вариант вызова со структурой отбора
как отобрать, если не точное значение, а например "количество > 100" ? (10) - зачем ? попробуй ВладелецФормы.Ссылка )) или по Значению (ЗНАЧ) |
|||
12
ГдеСобака Зарыта
23.10.20
✎
09:31
|
Нужно просто в форме документа вызвать процедуру с дерективой &НаСервере. В ней выполнить запрос и заполнить свою ТЧ
Объект.МояТЧ.Загрузить(Запрос.Выполнить.Выгрузить()); |
|||
13
hhhh
23.10.20
✎
09:35
|
(12) нету у него Объект. Это внешняя обработка заполнения ТЧ, наверно. Тут похоже через массив структур надо.
|
|||
14
bebibo
23.10.20
✎
09:35
|
(12) Да, но как обратиться к моей ТЧ?
Объект.МояТЧ.Загрузить(Запрос.Выполнить.Выгрузить()); - не работает Например на клиенте я так меняю ТЧ: ВладелецФормы.Объект.Товары.Очистить(); |
|||
15
bebibo
23.10.20
✎
09:35
|
(13) Вы правы, у меня нет объекта..
|
|||
16
ДенисЧ
23.10.20
✎
09:36
|
А куда объект ВнешняяОбработка дели?
|
|||
17
ДенисЧ
23.10.20
✎
09:36
|
Как полимеры?
|
|||
18
ГдеСобака Зарыта
23.10.20
✎
09:37
|
(13) В (0) "заполнить табличную часть документа по кнопке на форме". Про внешнюю обработку или чего еще ни слова
|
|||
19
bebibo
23.10.20
✎
09:37
|
Получается, как говорил изначально:
Нажимаю кнопку - с клиента идем на сервер - выполняем запрос - выгружаем в ТЗ - Через массив структур передаем на клиент и заполняем? ТАк надо что ли? |
|||
20
bebibo
23.10.20
✎
09:37
|
(18) Да, извините, моя ошибка.
|
|||
21
ГдеСобака Зарыта
23.10.20
✎
09:40
|
(19) Вот в итерации "с клиента идем на сервер" можно перейти как с контекстом формы так и без. Непонятно что ты делаешь там.
|
|||
22
bebibo
23.10.20
✎
09:42
|
(21) Просто с процедуры &НаКлиенте иду в функцию &НаСервере
|
|||
23
ГдеСобака Зарыта
23.10.20
✎
09:42
|
Ты какую то другую форму открываешь для подбора или что?
|
|||
24
ГдеСобака Зарыта
23.10.20
✎
09:44
|
(22) Ну (12) в ней работает. Сто раз так делал.
|
|||
25
bebibo
23.10.20
✎
09:46
|
(24) Объект.Товары.Загрузить(ТаблицаТовары);
Поле объекта не обнаружено (Товары) |
|||
26
ГдеСобака Зарыта
23.10.20
✎
09:49
|
А что отладчик говорит про Объект?
|
|||
27
bebibo
23.10.20
✎
09:52
|
(26) Отладки то нет) Внешняя обработка то, подключена через Администрирование..
|
|||
28
bebibo
23.10.20
✎
09:53
|
(26) Через сообщить - сказал что ДанныеФормыСтруктура
|
|||
29
ГдеСобака Зарыта
23.10.20
✎
09:55
|
Голову мне тут морочит.
Как обратиться к реквизитам формы документа из внешней обработки |
|||
30
bebibo
23.10.20
✎
09:58
|
(29) Я знаю как обратиться к ним на клиенте. НО как НА СЕРВЕРЕ - нет(
|
|||
31
bebibo
23.10.20
✎
10:01
|
стоп
|
|||
32
fisher
23.10.20
✎
10:03
|
(11) > как отобрать, если не точное значение, а например "количество > 100"
Через Скопировать() - никак. Но если ТС устроили возможности отбора в НайтиСтроки(), то устроят и в Скопировать() |
|||
33
bebibo
23.10.20
✎
10:04
|
Я нашел там ответ!!
В общем если кому пригодится: ОбъектДокумента = ВладелецФормы.Объект; ЗафигачитьНаСервере(ОбъектДокумента); - тут заполняем ТЧ из ТЗ КопироватьДанныеФормы(ОбъектДокумента, ВладелецФормы.Объект); ВладелецФормы.Модифицированность = Истина РЕШЕНИЕ НАЙДЕНО! СПАСИБО ДОРОГИЕ ЛЮДИ)) |
|||
34
fisher
23.10.20
✎
10:07
|
(33) Не, спасибо. Такого не надо.
|
|||
35
bebibo
23.10.20
✎
10:32
|
(34) Почему?
|
|||
36
bebibo
23.10.20
✎
10:33
|
(35) По другому никак!
|
|||
37
fisher
23.10.20
✎
10:42
|
(35) Не люблю такие фокусы с полной перегрузкой контекста. Обосновать не могу, но каким-то запашком от этого тянет.
С другой стороны, твой случай действительно "неудобный". Альтернатива - переливать ТЧ на клиенте, что тоже выглядит так себе решением для больших ТЗ. Так что, пожалуй, готов взять свои слова назад. |
|||
38
VladZ
23.10.20
✎
10:46
|
(33) Зачем так сложно?
РезультатЗапросаТЗ = запрос.Выполнить().Выгрузить(); объект.<моя табличная часть>.Загрузить(РезультатЗапросаТЗ); И всё. |
|||
39
fisher
23.10.20
✎
10:50
|
(38) ТС потом ниже раскололся, что ему нужно из формы своей обработки загружать ТЗ в ТЧ формы-владельца.
|
|||
40
fisher
23.10.20
✎
10:54
|
И проблема в том, что ты не можешь выполнить код в серверном контексте другой формы.
|
|||
41
lodger
23.10.20
✎
10:56
|
(40) в смысле код формы владельца нельзя ковырять?
|
|||
42
fisher
23.10.20
✎
10:57
|
(41) Я так понял что да. Иначе к чему весь сыр-бор :)
|
|||
43
fisher
23.10.20
✎
11:09
|
Если ковырять владельца можно, тогда самое простое что приходит в голову - передать ТЗ через временное хранилище и на стороне владельца штатно из него загрузиться.
|
|||
44
Индиго
23.10.20
✎
11:16
|
(0)
1.Можно сделать ТЗ реквизитом формы и заполнять на сервере с контекстом. Но не забывать, что форма со всеми кишками будет ходить туда-сюда на сервер с клиента и обратно. 2.Можно сделать из ТЗ массив структур и нормально вернуть на клиенте, его обход ничем не будет отличасться от обхода ТЗ примерно так //------------- мТЗ=Новый Массив; Для каждого Стр Из ТЗ Цикл струкСтрока=Новый Структура; Для каждого Кол Из ТЗ.Колонки Цикл СтрукСтрока.Вставить(Кол.Имя,Стр[Кол.Имя]); КонецЦикла; мТЗ.Добавить(струкСтрока); КонецЦикла; Возврат мТЗ |
|||
45
Said_We
23.10.20
✎
11:17
|
До чего дошел прогресс.....
Раньше обсуждали какие данные верные для заполнения ТЧ. Где их лучше взять. Как правильне взять. А сейчас прогресс! Сами данные уже никого не интересуют. Главное запихать что-то в ТЧ. А самое главное как технически эту ТЧ заполнить. Что там куда передать и через что. Потрясающе! |
|||
46
Сергиус
23.10.20
✎
11:31
|
(0)Можно передавать не ТЗ, а массив структур. На клиенте уже обрабатывать.
|
|||
47
fisher
23.10.20
✎
11:33
|
(45) А чего ты ждал? Старые мрут, молодые приходят. Все по спирали.
|
|||
48
Said_We
23.10.20
✎
11:43
|
(47) Да не... Это же просто поразительно. Что не ветка, то никого не интересует правильность данных и т.д. Вопрос содержащейся информации в данных вообще никого не интересует.
Всех интересует как с клиента на сервер и обратно данные пихнуть, и форму перерисовать. Потрясающе.... |
|||
49
Kesim
23.10.20
✎
11:45
|
(0) Передай на сервер ссылку на документ, там получи его тч и заполни.
по поводу отборов и количество <100 и тд - а случаем не для этого ты запрос делал? |
|||
50
Индиго
23.10.20
✎
11:53
|
(48)Так вопрос правильности данных должен автора волновать. Мы ему подсказываем методы,а утирать нос и проверять насколько верны данные- это уже извините за отдельные деньги
|
|||
51
Web00001
23.10.20
✎
12:08
|
(45)Что за бред. Отвечают на поставленный вопрос. Что раньше, что сейчас. Просто появились технические нюансы которых не было раньше(если у тебя файловая база, то не было проблемы передать тз с сервера на клиента) поэтому и вопросов таких не было тоже.
|
|||
52
fisher
23.10.20
✎
12:21
|
(48) И что не так? У тебя разве было иначе? Технические проблемы - внеочередные. С ними разбираешься в первую очередь.
|
|||
53
Web00001
23.10.20
✎
12:31
|
(48)Представил диалог
- Мне нужно передать данные - Нет нет нет давай сначала разберемся где ты их взял. - Да пользователь ввел. - А где пользователь их взял? А правильно ли он их ввел? Что это уже никого не интересует? Потрясающе... |
|||
54
Индиго
23.10.20
✎
12:34
|
(53) +1
|
|||
55
Said_We
23.10.20
✎
13:09
|
(53), (54) Да уж....
Вы меня абсолютно, т.е. совсем не поняли. Вопрос же в другом совсем. Посмотришь ветки десятилетней давности - народ на форуме решает проблемы ближе к постановке задачи и реализации какой-то функции. 20 лет назад примерно так же было. Сейчас больше половины веток, это решения вопроса с какими-то "рюшечками". Или как куда, что передать с сервера на клиент и обратно. Вот сижу и гадаю, как нас до такого Прогресс довел? |
|||
56
lodger
23.10.20
✎
13:12
|
"реализации какой-то функции" = "как куда, что передать с сервера на клиент и обратно".
|
|||
57
Garykom
гуру
23.10.20
✎
13:13
|
(55) Типовые (или отраслевые) покрывают 90% функционала
|
|||
58
Garykom
гуру
23.10.20
✎
13:14
|
(57)+ Сча новыми разработками обычно "проектные офисы" занимаются - там задачу низзя на левый сайт
|
|||
59
Said_We
23.10.20
✎
13:20
|
Лет 20 назад была у всех мысль: "В то время как программисты всего мира пишут программы для отправке ракет в космос, мы на 1С бухгалтерский баланс сводим".
А теперь даже баланс не сводим :-) Чем вообще мы заняты? |
|||
60
fisher
23.10.20
✎
15:02
|
(59) Дядько... Походу у тебя трава зазеленела :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |