Вывод ТЗ на форму

1. user1089020 24.03.21 09:28 Сейчас в теме
Добрый день, маги 1С!

Никак не могу решить простую задачу: нужно передать таблицу значений на форму. Помогите, кто может, вывести ТЗ на форму, пожалуйста. УФ, 8.2.

Настройка формы: см. прикрепленный файл.

Код в модуле формы:
 
Таб = Новый ТаблицаЗначений;  

Таб.Колонки.Добавить("Модель");
Таб.Колонки.Добавить("Цвет");
Таб.Колонки.Добавить("Производитель");

Стр = Таб.Добавить();
Стр.Телефон = "1";
Стр.Цвет = "Зелёный";
Стр.Производитель = "Tures";

Стр.Телефон = "2";
Стр.Цвет = "Красный";
Стр.Производитель = "Metros";

Стр.Телефон = "3";
Стр.Цвет = "Синий";
Стр.Производитель = "Gunoce";

ЗначениеВРеквизитФормы(Таб, ТабРеквизит);
Показать


Возникает ошибка: {Обработка.Обработка1.Форма.Форма.Форма(3,13)}: Тип не определен (ТаблицаЗначений)
Таб = Новый <<?>>ТаблицаЗначений; (Проверка: Тонкий клиент)
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
17. user654091_qweqweqwe123777 24.03.21 09:42 Сейчас в теме +0.2 $m
Вот пример:
Таб = Новый ТаблицаЗначений;  
	
	Таб.Колонки.Добавить("Телефон");
	Таб.Колонки.Добавить("Цвет");
	Таб.Колонки.Добавить("Производитель");
	
	Стр = Таб.Добавить();
	Стр.Телефон = "1";
	Стр.Цвет = "Зелёный";
	Стр.Производитель = "Tures";
	
	Стр.Телефон = "2";
	Стр.Цвет = "Красный";
	Стр.Производитель = "Metros";
	
	Стр.Телефон = "3";
	Стр.Цвет = "Синий";
	Стр.Производитель = "Gunoce";
	
	ЗначениеВРеквизитФормы(Таб, "ТабРеквизит");
Показать
Прикрепленные файлы:
ВнешняяОбработка1_ТЗ_НаФорму.epf
29. SagittariusA 24.03.21 09:56 Сейчас в теме +0.2 $m
(28)
Вот еще пример.
Прикрепленные файлы:
Example for Infostart.epf
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. spacecraft 24.03.21 09:35 Сейчас в теме
(1) ТаблицаЗначений нет на клиенте. Можно создать и заполнить на сервере и сделать загрузку в реквизит формы. А в таком виде, как в коде, можно сразу в реквизит формы добавлять записи, в том числе и на клиенте.
И в коде нужно для каждой новой записи добавлять строку ТЗ, иначе просто перезатираются записи одной единственной строки ТЗ.
7. succub1_5 89 24.03.21 09:36 Сейчас в теме
(1)На форме нужно ТЧ, на сервере ее заполнить.
Или именно как ТЗ нужно на клиенте (на форме обработать)?
11. user1089020 24.03.21 09:38 Сейчас в теме
(7) ТЗ есть на сервере, её нужно поместить в ТЧ на клиенте, получается.
14. FatPanzer 24.03.21 09:41 Сейчас в теме +0.1 $m
(11) Ну так и пишите её на сервер, зачем вы её на клиенте пишете?
19. user1089020 24.03.21 09:43 Сейчас в теме
(14) Поправил код:

&НаСервере

Процедура ПолучитьТЗ(Таб, ТабРеквизит);
	
Таб = Новый ТаблицаЗначений;  

Таб.Колонки.Добавить("Модель");
Таб.Колонки.Добавить("Цвет");
Таб.Колонки.Добавить("Производитель");

Стр = Таб.Добавить();
Стр.Телефон = "1";
Стр.Цвет = "Зелёный";
Стр.Производитель = "Tures";

Стр.Телефон = "2";
Стр.Цвет = "Красный";
Стр.Производитель = "Metros";

Стр.Телефон = "3";
Стр.Цвет = "Синий";
Стр.Производитель = "Gunoce";

ЗначениеВРеквизитФормы(Таб, ТабРеквизит);

КонецПроцедуры
Показать



Запускается, но форма пуста (см.файл)
Прикрепленные файлы:
21. FatPanzer 24.03.21 09:44 Сейчас в теме
(19) А вот теперь читай (15)
И еще - а где и как вызывается данная процедура? Сама по себе она выполняться не будет!
22. SagittariusA 24.03.21 09:47 Сейчас в теме
(19)
У вас колонка "Модель", а Вы заполняете "Телефон".
И в ЗначениеВРеквизитФормы(), вторым параметром нужно передать строковый тип.
Смотрите описание в синтакс-помощнике: выделяете слово ЗначениеВРеквизитФормы и нажимаете Ctrl+F1
2. user1089020 24.03.21 09:29 Сейчас в теме
См. прикрепленный файл с настройками формы.
Прикрепленные файлы:
3. FatPanzer 24.03.21 09:30 Сейчас в теме
Напомните мне, в каком контексте доступна ТЗ? В серверном? В клиентском?
PS. Гони бабки.
succub1_5; +1 Ответить
4. user1089020 24.03.21 09:32 Сейчас в теме
(3) В серверном, насколько я понимаю.
9. FatPanzer 24.03.21 09:38 Сейчас в теме
(4) Тогда зачем пишете в клиентском?
5. SagittariusA 24.03.21 09:35 Сейчас в теме
Код, который вначале вы описали, он просто в разделе описания программы добавлен?! Или в каком-то обработчике?
8. user1089020 24.03.21 09:37 Сейчас в теме
(5) просто в модуле формы - все что есть
20. SagittariusA 24.03.21 09:44 Сейчас в теме
(8)
&НаСервере
Функция МояТаблица()
	
	Таблица = Новый ТаблицаЗначений;  
	
	Таблица.Колонки.Добавить("Телефон");
	Таблица.Колонки.Добавить("Цвет");
	Таблица.Колонки.Добавить("Производитель");
	
	Стр = Таблица.Добавить();
	Стр.Телефон = "1";
	Стр.Цвет = "Зелёный";
	Стр.Производитель = "Tures";
	
	Стр = Таблица.Добавить();
	Стр.Телефон = "2";
	Стр.Цвет = "Красный";
	Стр.Производитель = "Metros";
	
	Стр = Таблица.Добавить();
	Стр.Телефон = "3";
	Стр.Цвет = "Синий";
	Стр.Производитель = "Gunoce";
	
	Возврат Таблица;
	
КонецФункции

Таблица = МояТаблица();
ЗначениеВРеквизитФормы(Таблица, "ТабРеквизит");
Показать
12. FatPanzer 24.03.21 09:39 Сейчас в теме
(5) Судя по ошибке - это третья строка модуля (первые две пустые). Никаких процедур и обработчиков нет, сразу вот так вот код он пишет.
10. SlavaKron 24.03.21 09:38 Сейчас в теме
Ну забыл человек директиву прописать.
13. FatPanzer 24.03.21 09:40 Сейчас в теме
(10) Ниче не знаю, он цену назначил сам )))
15. user654091_qweqweqwe123777 24.03.21 09:41 Сейчас в теме
Привет всем

Тут надо в кавычках Имя реквизита формы писать: ЗначениеВРеквизитФормы(Таб, "ТабРеквизит");

И в Таблице значений не то имя колонки указано: Таб.Колонки.Добавить("Модель")
Должно быть так: Таб.Колонки.Добавить("Телефон");
18. FatPanzer 24.03.21 09:43 Сейчас в теме
(15) Ошибка не про это. До этого он еще не добрался, он на первой же строке споткнулся.
23. user1089020 24.03.21 09:47 Сейчас в теме
(15)
(Таб, "ТабРеквизит")


Спасибо, за указание на косяки. Исправил, но пока выводится пустая таблица (
Прикрепленные файлы:
26. FatPanzer 24.03.21 09:51 Сейчас в теме
16. spacecraft 24.03.21 09:41 Сейчас в теме
Ну, в качестве плохого, но работающего примера:
Стр = ТабРеквизит.Добавить();
Стр.Телефон = "1";
Стр.Цвет = "Зелёный";
Стр.Производитель = "Tures";

Стр = ТабРеквизит.Добавить();
Стр.Телефон = "2";
Стр.Цвет = "Красный";
Стр.Производитель = "Metros";

Стр = ТабРеквизит.Добавить();
Стр.Телефон = "3";
Стр.Цвет = "Синий";
Стр.Производитель = "Gunoce";
Показать

:)
24. user1089020 24.03.21 09:49 Сейчас в теме
(16) Пустая форма (
Прикрепленные файлы:
25. FatPanzer 24.03.21 09:50 Сейчас в теме
27. spacecraft 24.03.21 09:54 Сейчас в теме
(24) Обработчики не просто так придумали. Если данные нужно чтоб отображались сразу при открытии формы, то оптимальное место это обработчик ПриСозданииНаСервере. Вот в нем и нужно этот код применить.
17. user654091_qweqweqwe123777 24.03.21 09:42 Сейчас в теме +0.2 $m
Вот пример:
Таб = Новый ТаблицаЗначений;  
	
	Таб.Колонки.Добавить("Телефон");
	Таб.Колонки.Добавить("Цвет");
	Таб.Колонки.Добавить("Производитель");
	
	Стр = Таб.Добавить();
	Стр.Телефон = "1";
	Стр.Цвет = "Зелёный";
	Стр.Производитель = "Tures";
	
	Стр.Телефон = "2";
	Стр.Цвет = "Красный";
	Стр.Производитель = "Metros";
	
	Стр.Телефон = "3";
	Стр.Цвет = "Синий";
	Стр.Производитель = "Gunoce";
	
	ЗначениеВРеквизитФормы(Таб, "ТабРеквизит");
Показать
Прикрепленные файлы:
ВнешняяОбработка1_ТЗ_НаФорму.epf
28. user1089020 24.03.21 09:55 Сейчас в теме
(17) Спасибо. Это сработало как надо. Осталось понять почему ) Разбираюсь.
29. SagittariusA 24.03.21 09:56 Сейчас в теме +0.2 $m
(28)
Вот еще пример.
Прикрепленные файлы:
Example for Infostart.epf
30. user1089020 24.03.21 09:56 Сейчас в теме
Спасибо всем! Сейчас переварю ваши полезные сообщения и рассчитаюсь )
31. user654091_qweqweqwe123777 24.03.21 09:57 Сейчас в теме
Не за что) Взял в кавычки 2-й параметр фун-ии ЗначениеВРеквизитФормы. ТабРеквизит заменил на "ТабРеквизит" и имя колонки "Модель" заменил на "Телефон"
Оставьте свое сообщение

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