ЗначениеВДанныеФомы и таблица значений

1. T_Cold 15.12.23 15:01 Сейчас в теме
Коллеги, всем доброго дня!
Вопрос знатокам.
Есть вот такой код на форме, который должен заполнять реквизит формы "Таблица" с типом "Таблица значений".
Проблема в строке ЗначениеВРеквизитФормы(ТЗ, ТаблицаФормы) - ТЗ не преобразуется в данные формы, а так и остается ТЗ. Но и исключение метод не генерит. Есть способ преобразовать ТЗ в данные формы коллекция без контекста?
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
	Результат = ПолучитьРезультат(ЭтаФорма.Таблица);
	КопироватьДанныеФормы(Результат, ЭтаФорма.Таблица);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьРезультат(знач ТаблицаФормы) Экспорт
	ТЗ = ДанныеФормыВЗначение(ТаблицаФормы, Тип("ТаблицаЗначений"));
	Строка = ТЗ.Добавить();
	Строка.Реквизит1 = 15654;
	ЗначениеВРеквизитФормы(ТЗ, ТаблицаФормы);
	Возврат ТЗ;
КонецФункции
Показать
Найденные решения
6. antz 15.12.23 16:10 Сейчас в теме
(4) Не нужны в данном случае все эти реквизитформывзначение и обратно. У реквизита формы с типом ТаблицаЗначений есть метод Выгрузить - возвращает таблицу значений. Есть у него же метод Загрузить - в него передаем таблицу значений параметром и все работает (на сервере).
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. antz 15.12.23 15:11 Сейчас в теме
Все это делается проще)

&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
    Таблица.Добавить().Реквизит1 = 15654;
КонецПроцедуры
Sashares; +1 Ответить
5. T_Cold 15.12.23 15:54 Сейчас в теме
(2)Да это тоже верно. Есть задача побольше, в которой хочу избавиться от контекстного серверного вызова.
Там заполняется реквизит формы типа таблица значений. Есть большой запрос и все дела.
Немного Изменил топик, чтобы было понятно.
3. soft_wind 15.12.23 15:16 Сейчас в теме
(1) немного не так
&НаКлиенте
Процедура ВыполнитьОбработку(Команда)
Результат = ПолучитьРезультат(ЭтаФорма.Таблица);
//КопироватьДанныеФормы(Результат, ЭтаФорма.Таблица);
КонецПроцедуры

&НаСервере
Функция ПолучитьРезультат(знач ТаблицаФормы) Экспорт
ТЗ = ДанныеФормыВЗначение(ТаблицаФормы, Тип("ТаблицаЗначений"));
Строка = ТЗ.Добавить();
Строка.Реквизит1 = 15654;
ЗначениеВРеквизитФормы(ТЗ, "ТаблицаФормы"); //ИМЯ реквизита 
Возврат Истина;
КонецФункции
Показать
4. T_Cold 15.12.23 15:50 Сейчас в теме
(3)Немного ввел в заблуждение. Вы правы в контекстном вызове это будет работать.
А вот без контекста как-то все грустно, ТЗ в данные форму не преобразуется, видимо потому, что таблица значений не имеет отображение в данных формы, а так и остается таблицей значений:
&НаСервереБезКонтектста
Функция ПолучитьРезультат(знач ТаблицаФормы) Экспорт
ТЗ = ДанныеФормыВЗначение(ТаблицаФормы, Тип("ТаблицаЗначений"));
Строка = ТЗ.Добавить();
Строка.Реквизит1 = 15654;
ЗначениеВРеквизитФормы(ТЗ, ТаблицаФормы);
Возврат ТЗ;
КонецФункции
6. antz 15.12.23 16:10 Сейчас в теме
(4) Не нужны в данном случае все эти реквизитформывзначение и обратно. У реквизита формы с типом ТаблицаЗначений есть метод Выгрузить - возвращает таблицу значений. Есть у него же метод Загрузить - в него передаем таблицу значений параметром и все работает (на сервере).
7. T_Cold 15.12.23 16:27 Сейчас в теме
(6)А если без контекста?
8. T_Cold 15.12.23 16:54 Сейчас в теме
(6) А отлично!. Достаточно передать на сервер реквизит формы с типом "ТаблицаЗначений" и там его изменить. При этом вызов может быть без контекста. Спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот