Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

ДанныеФормыКоллекция.Выгрузить() Метод недоступен на клиенте

ДанныеФормыКоллекция.Выгрузить() Метод недоступен на клиенте
Я
   CrazyHorse
 
23.04.19 - 00:28
Доброго всем дня!
Передаю из обычной формы в общий модуль (стоят галки Сервер, Вызов сервера) ДанныеФормыСтруктура, в которой есть ДанныеФормыКоллекция
При попытке использовать методы ДанныеФормыКоллекция.Выгрузить() и ДанныеФормыКоллекция.Загрузить() пишет "Метод недоступен на клиенте".
При этом всё остальное работает как на сервере. Недовольны только эти два метода.
Видимо, я что-то глобальное недопомнимаю или пора на море. Кто может помочь?

Функция вызова в обычной форме:

Процедура КоманднаяПанельТоварыЯХ(Кнопка)
    
    Если Модифицированность() Тогда
        Ответ = Вопрос("Перед созданием документа ЯХ счет должен быть записан! Записать?",РежимДиалогаВопрос.ДаНет,60,КодВозвратаДиалога.Да,"Записать?");
        Если Ответ = КодВозвратаДиалога.Да Тогда
            Записать();
        Иначе
            Возврат;
        КонецЕсли;    
    КонецЕсли;
    
    Форма = ПолучитьФорму("Документ.ЯХПеремещение.Форма.ФормаДокумента");
    ДанныеФормы = Форма.Объект;
    ЯХ.СоздатьДокументЯХПеремещениеНаОснованииСчета(ДанныеФормы, Ссылка);
    КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
    Форма.Открыть();
    
КонецПроцедуры

Функция обработки в общем модуле:

Функция СоздатьДокументЯХПеремещениеНаОснованииСчета(ДокументЯХ, ДокументОснование) Экспорт

    Контрагент = ДокументОснование.Контрагент;    

    ЯХОтбора = ПоискЯчейкиОтбора(Контрагент);
    ДокументЯХ.ЯХОтбора = ЯХОтбора;
    
    ДокументЯХ.Дата = ТекущаяДата();
    ДокументЯХ.ДокументОснование = ДокументОснование;
    ДокументЯХ.Контрагент = Контрагент;    
    
    ТЗРеализации = ДокументОснование.Товары.Выгрузить();
    ТЗЯХ = ДокументЯХ.Товары.Выгрузить();    //ругается
    
    РезультатПодбора = НайтиЯХИсточники(ТЗРеализации, ТЗЯХ, ДокументЯХ.ЯХОтбора, Истина);
    ТЗЯХ.ЗаполнитьЗначения(ЯХОтбора, "ЯХПриемник");
    
    ДокументЯХ.Товары.Загрузить(ТЗЯХ); //ругается    
    
КонецФункции
 
 
   palsergeich
 
1 - 23.04.19 - 00:44
(0) Врете батенька.
ДанныеФормыСтруктура - тип который есть только на УФ.
Из мануала.
Описание:

Структура данных для моделирования данных, редактируемых в управляемой форме
   palsergeich
 
2 - 23.04.19 - 00:46
И что то мне говорит - галочка Клиент так же у этого модуля стоит.
А по правилу ближайшего контекста - если есть возможность остаться в текущем контексте, именно это и произойдет
   CrazyHorse
 
3 - 23.04.19 - 12:26
по-прежнему нужна помощь
   CrazyHorse
 
4 - 23.04.19 - 12:46
обошелся без использования этих методов, но всё равно хотелось бы знать, в чем проблема
   hhhh
 
5 - 23.04.19 - 12:48
(4) ну не работает на клиенте метод Выгрузить(), в этом и проблема.
   fisher
 
6 - 23.04.19 - 13:17
(4) Подозреваю, что коллекции "ДанныеФормы..." просто не обкатывали для использования вне контекста формы. Для них в СП даже сериализация не заявлена (хотя очевидно, что в контексте формы они сериализуются) и конструкторов у них тоже нет.
   CrazyHorse
 
7 - 23.04.19 - 16:05
fisher, спасибо
   palsergeich
 
8 - 23.04.19 - 21:02
(6) это не так, в общих модулях на сервере, если передать только данные формы структура метод выгрузить прекрасно работает.
Но нужно быть именно на сервере.
   palsergeich
 
9 - 23.04.19 - 21:05
+ в телефонах стоят не 18650 а элементы другого типа.
   palsergeich
 
10 - 23.04.19 - 21:06
(9) не в ту тему, сорри
   palsergeich
 
11 - 23.04.19 - 21:11
Выгрузить (Unload)
Доступность:

Сервер, мобильное приложение(сервер).
   Ботаник Гарден Меран
 
12 - 23.04.19 - 22:36
Еще бы не "сервер", если методы возвращают и принимают значение типа ТаблицаЗначений, которого нет на клиенте.
   palsergeich
 
13 - 23.04.19 - 22:55
(12) А вот это неправда.
Таблица значений вполне себе существует на клиенте. Да, стандартный конструктор на клиенте не работает, но еще один конструктор - работает)
Другое дело что принципиально запрещена передача между контекстами.
   palsergeich
 
14 - 23.04.19 - 23:02
Там дело в другом - на клиенте нет возможности узнать состав реквизитов и колонок в реквизитах формы.
Уточню - без обращения на сервер нельзя узнать какое количество колонок есть в (ТаблицаЗначений), например к конкретному значению обратиться можно, но самого описания реквизита формы нет.
Это на самом деле очень печалит и приходится изобретать хранилища состава реквизитов и колонок реквизитов, доступные на клиенте, для действительно сложных управляемых форм в целях оптимизации серверных вызовов, где любое обращение к контексту вызывает фриз более 5 секунд или сбивает текущее позиционирование на экране, ввод какой нибудь сложной тарифной сетки например.
   palsergeich
 
15 - 23.04.19 - 23:04
(14) В общем то только потому что клиент "не знает" действительный состав реквизита формы, а только через коллекцию элементы можно получить состав отображаемых, метод Выгрузить не может быть реализован на клиенте(на самом деле может, но в 1с решили не заморачиваться, а мне приходилось реализовывать...).

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.