![]() |
![]() |
![]() |
|
ДанныеФормыКоллекция.Выгрузить() Метод недоступен на клиенте | ☑ | ||
---|---|---|---|---|
0
CrazyHorse
23.04.19
✎
00:28
|
Доброго всем дня!
Передаю из обычной формы в общий модуль (стоят галки Сервер, Вызов сервера) ДанныеФормыСтруктура, в которой есть ДанныеФормыКоллекция При попытке использовать методы ДанныеФормыКоллекция.Выгрузить() и ДанныеФормыКоллекция.Загрузить() пишет "Метод недоступен на клиенте". При этом всё остальное работает как на сервере. Недовольны только эти два метода. Видимо, я что-то глобальное недопомнимаю или пора на море. Кто может помочь? Функция вызова в обычной форме: Процедура КоманднаяПанельТоварыЯХ(Кнопка) Если Модифицированность() Тогда Ответ = Вопрос("Перед созданием документа ЯХ счет должен быть записан! Записать?",РежимДиалогаВопрос.ДаНет,60,КодВозвратаДиалога.Да,"Записать?"); Если Ответ = КодВозвратаДиалога.Да Тогда Записать(); Иначе Возврат; КонецЕсли; КонецЕсли; Форма = ПолучитьФорму("Документ.ЯХПеремещение.Форма.ФормаДокумента"); ДанныеФормы = Форма.Объект; ЯХ.СоздатьДокументЯХПеремещениеНаОснованииСчета(ДанныеФормы, Ссылка); КопироватьДанныеФормы(ДанныеФормы, Форма.Объект); Форма.Открыть(); КонецПроцедуры Функция обработки в общем модуле: Функция СоздатьДокументЯХПеремещениеНаОснованииСчета(ДокументЯХ, ДокументОснование) Экспорт Контрагент = ДокументОснование.Контрагент; ЯХОтбора = ПоискЯчейкиОтбора(Контрагент); ДокументЯХ.ЯХОтбора = ЯХОтбора; ДокументЯХ.Дата = ТекущаяДата(); ДокументЯХ.ДокументОснование = ДокументОснование; ДокументЯХ.Контрагент = Контрагент; ТЗРеализации = ДокументОснование.Товары.Выгрузить(); ТЗЯХ = ДокументЯХ.Товары.Выгрузить(); //ругается РезультатПодбора = НайтиЯХИсточники(ТЗРеализации, ТЗЯХ, ДокументЯХ.ЯХОтбора, Истина); ТЗЯХ.ЗаполнитьЗначения(ЯХОтбора, "ЯХПриемник"); ДокументЯХ.Товары.Загрузить(ТЗЯХ); //ругается КонецФункции |
|||
1
palsergeich
23.04.19
✎
00:44
|
(0) Врете батенька.
ДанныеФормыСтруктура - тип который есть только на УФ. Из мануала. Описание: Структура данных для моделирования данных, редактируемых в управляемой форме |
|||
2
palsergeich
23.04.19
✎
00:46
|
И что то мне говорит - галочка Клиент так же у этого модуля стоит.
А по правилу ближайшего контекста - если есть возможность остаться в текущем контексте, именно это и произойдет |
|||
3
CrazyHorse
23.04.19
✎
12:26
|
по-прежнему нужна помощь
|
|||
4
CrazyHorse
23.04.19
✎
12:46
|
обошелся без использования этих методов, но всё равно хотелось бы знать, в чем проблема
|
|||
5
hhhh
23.04.19
✎
12:48
|
(4) ну не работает на клиенте метод Выгрузить(), в этом и проблема.
|
|||
6
fisher
23.04.19
✎
13:17
|
(4) Подозреваю, что коллекции "ДанныеФормы..." просто не обкатывали для использования вне контекста формы. Для них в СП даже сериализация не заявлена (хотя очевидно, что в контексте формы они сериализуются) и конструкторов у них тоже нет.
|
|||
7
CrazyHorse
23.04.19
✎
16:05
|
fisher, спасибо
|
|||
8
palsergeich
23.04.19
✎
21:02
|
(6) это не так, в общих модулях на сервере, если передать только данные формы структура метод выгрузить прекрасно работает.
Но нужно быть именно на сервере. |
|||
9
palsergeich
23.04.19
✎
21:05
|
+ в телефонах стоят не 18650 а элементы другого типа.
|
|||
10
palsergeich
23.04.19
✎
21:06
|
(9) не в ту тему, сорри
|
|||
11
palsergeich
23.04.19
✎
21:11
|
Выгрузить (Unload)
Доступность: Сервер, мобильное приложение(сервер). |
|||
12
Ботаник Гарден Меран
23.04.19
✎
22:36
|
Еще бы не "сервер", если методы возвращают и принимают значение типа ТаблицаЗначений, которого нет на клиенте.
|
|||
13
palsergeich
23.04.19
✎
22:55
|
(12) А вот это неправда.
Таблица значений вполне себе существует на клиенте. Да, стандартный конструктор на клиенте не работает, но еще один конструктор - работает) Другое дело что принципиально запрещена передача между контекстами. |
|||
14
palsergeich
23.04.19
✎
23:02
|
Там дело в другом - на клиенте нет возможности узнать состав реквизитов и колонок в реквизитах формы.
Уточню - без обращения на сервер нельзя узнать какое количество колонок есть в (ТаблицаЗначений), например к конкретному значению обратиться можно, но самого описания реквизита формы нет. Это на самом деле очень печалит и приходится изобретать хранилища состава реквизитов и колонок реквизитов, доступные на клиенте, для действительно сложных управляемых форм в целях оптимизации серверных вызовов, где любое обращение к контексту вызывает фриз более 5 секунд или сбивает текущее позиционирование на экране, ввод какой нибудь сложной тарифной сетки например. |
|||
15
palsergeich
23.04.19
✎
23:04
|
(14) В общем то только потому что клиент "не знает" действительный состав реквизита формы, а только через коллекцию элементы можно получить состав отображаемых, метод Выгрузить не может быть реализован на клиенте(на самом деле может, но в 1с решили не заморачиваться, а мне приходилось реализовывать...).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |