|
Передача с клиента на сервер ДанныеФормыКоллекция | ☑ | ||
---|---|---|---|---|
0
capllary_
surgut 12.08.15
✎
08:37
|
Подскажите как правильно передавать объекты типа ДанныеФормыКоллекция на сервер, там его изменять, а затем возвращать обратно. Пытаюсь сделать так, вылетает в ошибку:
&НаКлиенте Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт Объект.СсылкаНаОбъект = ОбъектыНазначенияМассив[0]; ЗаполнитьОбъект(); Ответ = Вопрос("Документ автоматически переСОХРАНИТСЯ... ", РежимДиалогаВопрос.ОКОтмена); Если Ответ = КодВозвратаДиалога.ОК Тогда Окна = ПолучитьОкна(); Для Каждого Окно Из Окна Цикл Если Найти(Окно.Заголовок, Объект.СсылкаНаОбъект) Тогда ОбъектФормы = Окно.ПолучитьСодержимое(); РабочаяГруппа = ОбъектФормы.РабочаяГруппаТаблица; Если ОбъектФормы.РабочаяГруппаТаблица.Количество() = 1 Тогда РГ = ОбъектФормы.РабочаяГруппаТаблица.Добавить(); ЗаполнитьОбъектРабочаяГруппа(РГ); КонецЕсли; Для Каждого Элемента Из ОбъектФормы.РабочаяГруппаТаблица Цикл Сообщить(Элемента.Участник); КонецЦикла; ОбъектФормы.Прочитать(); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры &НаСервере Функция ЗаполнитьОбъектРабочаяГруппа(РГ) РГ.Участник = Справочники.Пользователи.НайтиПоНаименованию("Вася"); РГ.Иконка = 3; КонецФункции |
|||
1
blopp
12.08.15
✎
09:04
|
Правильно их туда не передавать.
Они для этого не предназначены. Если очень хочется - нужно передать в в параметре идентификатор строки, а не сервере найти ее по идентификатору. Вообще, вызов сервера в цикле это УГ. |
|||
2
capllary_
surgut 12.08.15
✎
09:08
|
(1) Тогда вопрос, как объекты типа ДанныеФормыКоллекция изменять на клиенте?
На счет вызова сервера в цикле сам понимаю что УГ. |
|||
3
blopp
12.08.15
✎
09:13
|
Я не очень понимаю в чем сложность.
|
|||
4
Fish
12.08.15
✎
09:20
|
(2) "Глобальный контекст (Global context)
ДанныеФормыВЗначение (FormDataToValue) Синтаксис: ДанныеФормыВЗначение(<Объект>, <Тип>) Параметры: <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура; ДанныеФормыДерево. Данные формы. <Тип> (обязательный) Тип: Тип. Тип значения, получаемого из данных формы. Возвращаемое значение: Тип: Произвольный. Описание: Преобразует данные формы в объект прикладного типа. Доступность: Сервер, толстый клиент, мобильное приложение(сервер). Примечание: Нельзя преобразовать в объект типа Табличная часть. " Глобальный контекст (Global context) ЗначениеВДанныеФормы (ValueToFormData) Синтаксис: ЗначениеВДанныеФормы(<Значение>, <Объект>) Параметры: <Значение> (обязательный) Тип: Произвольный. Значение прикладного типа, для которого определено преобразование в данные формы. <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура. Данные формы, имеющие совместимую структуру. Описание: Преобразует объект прикладного типа в универсальный объект данных. Доступность: Сервер, толстый клиент, мобильное приложение(сервер). |
|||
5
1sanekmaloi1
12.08.15
✎
09:22
|
Открыть СП,прочитать кто же это такие данныефлрмыколлекция, посмотреть методы и пользоваться
|
|||
6
capllary_
surgut 12.08.15
✎
09:26
|
(4) (5) Спасибо. Так и думал что это делается через ДанныеФормыВЗначение и ЗначениеВДанныеФормы
|
|||
7
blopp
12.08.15
✎
09:53
|
(4), (6) Это методы оставшиеся с бета версии 8.2
Если вы их используется то с большой вероятностью что-то делаете не так. Лучше использовать РеквизитФормыВЗначение и ЗначениеВРеквизитФормы В данном случае вообще ни какого смысла в конвертации не видно. В чем проблема просто добавить строку в коллекцию и установить значения ее полей? |
|||
8
capllary_
surgut 12.08.15
✎
10:24
|
(7) Делаю так как и указали, просто добавляю строку в коллекцию, но теперь встал вопрос в сохранении этих изменений.
|
|||
9
capllary_
surgut 12.08.15
✎
10:32
|
После этого выходит ОбъектФормы.Записать();
что данные изменены или удалены другим пользователем. |
|||
10
capllary_
surgut 12.08.15
✎
10:35
|
Все получилось, понял теперь как.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |