|
Заполнение формы из таблицы значений | ☑ | ||
---|---|---|---|---|
0
Shmidt
08.12.14
✎
11:03
|
Создал общую форму. Пометил на нее табличное поле (ТЗ). Создал реквизит ТЗ, тип ТаблицаЗначений. В Табличном поле создал 2 колонки "Бонус" - поле ввода и "Использовать" - флажок. В модуле формы документа делаю запрос и выгружаю в ТаблицуЗначений. Теперь затык! Необходимо заполнять на общей форме поле "Бонус" данными из ТаблицыЗначений, а поле с флагом по умолчанию должно быть Ложь. Но постоянно ругается на метод Заполнить. И как бы не пробовал получать ЭлементыФормы одна и та же ошибка. Как его заполнить?
|
|||
1
Shmidt
08.12.14
✎
11:04
|
И да, форма - обычная.
|
|||
2
vicof
08.12.14
✎
11:04
|
показывай код
|
|||
3
lxs
08.12.14
✎
11:05
|
Причем тут ЭлементыФормы?
Заполняй ТЗ, табличное поле у тебя связано с ТЗ? |
|||
4
Shmidt
08.12.14
✎
11:05
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | АНМ_Бонусы.Ссылка КАК Бонус |ИЗ | Справочник.АНМ_Бонусы КАК АНМ_Бонусы |ГДЕ | АНМ_Бонусы.КоличествоБаллов <= &КоличествоБаллов | И АНМ_Бонусы.КоличествоБаллов > 0"; Запрос.УстановитьПараметр("КоличествоБаллов",КоличествоБаллов); ДоступныеБонусы = Запрос.Выполнить().Выгрузить(); ДоступныеБонусы.Колонки.Добавить("Использовать",,); Форма = ПолучитьФорму("ОбщаяФорма.АНМ_ФормаВыбораБонуснойНоменклатуры"); Форма.ЭлементыФормы.ТЗ.Заполнить(ДоступныеБонусы); |
|||
5
lxs
08.12.14
✎
11:05
|
Бред
|
|||
6
Shmidt
08.12.14
✎
11:06
|
Вот последняя редакция
|
|||
7
lxs
08.12.14
✎
11:06
|
У тебя есть реквизит формы ТЗ, вот его и заполняй
|
|||
8
pessok
08.12.14
✎
11:06
|
Форма.ТЗ.Загрузить(ДоступныеБонусы );
Форма.ЭлементыФормы.ТЗ.СоздатьКолонки() |
|||
9
lxs
08.12.14
✎
11:07
|
(8) или да)
|
|||
10
Shmidt
08.12.14
✎
11:09
|
(8) Если так, то колонка с флажком заполняется да/нет. А нужен обязательно флажок
|
|||
11
vicof
08.12.14
✎
11:10
|
(10) Настраивай ДанныеФлажка
|
|||
12
Shmidt
08.12.14
✎
11:36
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | АНМ_Бонусы.Ссылка КАК Бонус |ИЗ | Справочник.АНМ_Бонусы КАК АНМ_Бонусы |ГДЕ | АНМ_Бонусы.КоличествоБаллов <= &КоличествоБаллов | И АНМ_Бонусы.КоличествоБаллов > 0"; Запрос.УстановитьПараметр("КоличествоБаллов",КоличествоБаллов); ДоступныеБонусы = Запрос.Выполнить().Выгрузить(); Форма = ПолучитьФорму("ОбщаяФорма.АНМ_ФормаВыбораБонуснойНоменклатуры"); Форма.ТЗ.Загрузить(ДоступныеБонусы); Форма.ЭлементыФормы.ТЗ.СоздатьКолонки(); |
|||
13
Shmidt
08.12.14
✎
11:36
|
Поле объекта не обнаружено (ТЗ)
|
|||
14
Shmidt
08.12.14
✎
11:37
|
В чем причина?
|
|||
15
Godofsin
08.12.14
✎
11:38
|
(14) Форма.ТЗ.Загрузить(ДоступныеБонусы);
Форма.ЭлементыФормы.ТЗ.СоздатьКолонки(); |
|||
16
Godofsin
08.12.14
✎
11:38
|
Разница есть?
|
|||
17
Shmidt
08.12.14
✎
11:39
|
(16) В чем?
|
|||
18
Shmidt
08.12.14
✎
11:39
|
(8) тоже самое советовали
|
|||
19
Godofsin
08.12.14
✎
11:43
|
ЭлементыФормы
|
|||
20
Shmidt
08.12.14
✎
11:44
|
Форма.ТЗ.Загрузить(ДоступныеБонусы); еще на эту строку ругается
|
|||
21
Godofsin
08.12.14
✎
11:45
|
(20) см 19
|
|||
22
Shmidt
08.12.14
✎
11:49
|
(21) Форма.ЭлементыФормы.ТЗ.Загрузить(ДоступныеБонусы);
Так то же самое ((( |
|||
23
Godofsin
08.12.14
✎
11:49
|
(22) То же самое - это что? Скрин ошибки?
|
|||
24
Shmidt
08.12.14
✎
11:52
|
(13) вот такая
|
|||
25
Godofsin
08.12.14
✎
11:56
|
(24) Gjkyjcnm. dskj;b jib,re nt,t ujdjhzn
|
|||
26
Godofsin
08.12.14
✎
11:57
|
полностью ошибку выложи
|
|||
27
lxs
08.12.14
✎
11:59
|
Форма = ПолучитьФорму("ОбщаяФорма.АНМ_ФормаВыбораБонуснойНоменклатуры");
Это где вызывается? Может ПолучитьОбщуюФорму(..) Не? |
|||
28
Shmidt
08.12.14
✎
12:01
|
||||
29
Shmidt
08.12.14
✎
12:01
|
(27) Это в модуле формы документа "ЗаказПокупателя"
|
|||
30
Shmidt
08.12.14
✎
12:02
|
Можно перенести в Общий модуль. Но там та же проблема
|
|||
31
Godofsin
08.12.14
✎
12:03
|
Проверь отладчиком, форма точно возвращается?
|
|||
32
lxs
08.12.14
✎
12:03
|
Форма где находится в структуре конфигурации?
|
|||
33
Godofsin
08.12.14
✎
12:03
|
если да, то там нет "ТЗ" видимо
|
|||
34
lxs
08.12.14
✎
12:04
|
Он общую форму некорректно получает
|
|||
35
lxs
08.12.14
✎
12:05
|
Форма = ПолучитьОбщуюФорму("АНМ_ФормаВыбораБонуснойНоменклатуры");
|
|||
36
vicof
08.12.14
✎
12:05
|
"Пометил на нее табличное поле (ТЗ). Создал реквизит ТЗ, тип ТаблицаЗначений"
"Форма.ТЗ.Загрузить(ДоступныеБонусы); еще на эту строку ругается" (28) одна из черепашек п..т |
|||
37
Shmidt
08.12.14
✎
12:07
|
(35) Сейчас попробую
|
|||
38
Shmidt
08.12.14
✎
12:22
|
Метод объекта не обнаружен (Загрузить)
|
|||
39
lxs
08.12.14
✎
12:22
|
дай тим
|
|||
40
Shmidt
08.12.14
✎
12:23
|
312 880 292
|
|||
41
Shmidt
08.12.14
✎
12:23
|
6944
|
|||
42
lxs
08.12.14
✎
12:26
|
не запущен
|
|||
43
lxs
08.12.14
✎
12:30
|
Покажи короче шот структуры конфигурации - ветку ОбщиеФормы, шот формы, шот реквизитов формы
|
|||
44
Shmidt
08.12.14
✎
12:54
|
||||
45
Shmidt
08.12.14
✎
12:54
|
||||
46
Shmidt
08.12.14
✎
12:54
|
||||
47
Shmidt
08.12.14
✎
12:54
|
||||
48
Shmidt
08.12.14
✎
12:55
|
Вот
|
|||
49
Ёпрст
08.12.14
✎
13:15
|
(44) не ну а чо.. заполняешь в одной форме, а открываешь ДРУГУЮ..
Так и продолжай всегда делать, но лучше, с разбегу. |
|||
50
lxs
08.12.14
✎
13:18
|
Короче..
|
|||
51
lxs
08.12.14
✎
13:18
|
ТаблицаДанных = Новый ТаблицаЗначений;
ТаблицаДанных.Колонки.Добавить("Выбран"); ТаблицаДанных.Колонки.Добавить("Бонус"); ТаблицаДанных.Добавить().Бонус = "10%"; Форма = ПолучитьОбщуюФорму("ФормаТест"); Форма.Таблица = ТаблицаДанных; Форма.Таблица.ЗаполнитьЗначения(Истина, "Выбран"); Форма.ЭлементыФормы.Таблица.СоздатьКолонки(); Форма.Открыть(); |
|||
52
Shmidt
08.12.14
✎
13:18
|
ФормаВыбораБонус ???? Какая другая?
|
|||
53
Ёпрст
08.12.14
✎
13:20
|
(52)
первая форма, это ПолучитьОбщуюФорму у тебя вторая(это которая ДРУГАЯ) ОткрытьФормуМодально() Теперь с разбегу и об стенку.. |
|||
54
Shmidt
08.12.14
✎
13:21
|
(53) Да это уже давно поправлено
|
|||
55
Ёпрст
08.12.14
✎
13:23
|
(54) где ? На первом же скриншоте видно, что нет
|
|||
56
lxs
08.12.14
✎
13:25
|
(55) Ну че ты докопался? Я дел ему работающий код. Если не разберется, дадим пинка в нужном направлении.
|
|||
57
Shmidt
08.12.14
✎
13:37
|
(56) Спасибо. Все заполняется, только как теперь поле "Использовать" сделать флажком. Я на форме сделал флажком, но заполняется как поле ввода
|
|||
58
lxs
08.12.14
✎
13:44
|
первое, что пришло в голову:
Форма.ЭлементыФормы.Таблица.Колонки.Выбран.Данные = ""; Форма.ЭлементыФормы.Таблица.Колонки.Выбран.ДанныеФлажка = "Выбран"; |
|||
59
lxs
08.12.14
✎
13:44
|
на форме не надо ничего делать кстати
|
|||
60
lxs
08.12.14
✎
13:54
|
"но заполняется как поле ввода" - ты сделал колонки табачного поля на открываемой форме?
|
|||
61
lxs
08.12.14
✎
13:55
|
*табличного
|
|||
62
Shmidt
08.12.14
✎
14:04
|
(60) Да делал, потом убрал и добавил (58) Ругается на поле Выбран
|
|||
63
lxs
08.12.14
✎
14:12
|
Блеать, ну это ж мое поле)))
|
|||
64
lxs
08.12.14
✎
14:12
|
У тебя оно называется "Использовать"
|
|||
65
Shmidt
08.12.14
✎
14:12
|
Ну понятно... Я и "Таблица" и "Выбран" поменял на нужные
|
|||
66
Shmidt
08.12.14
✎
14:13
|
Ясное дело... Я не совсем...
|
|||
67
lxs
08.12.14
✎
14:13
|
Бывает)
|
|||
68
lxs
08.12.14
✎
14:13
|
Кто не ошибается, тот ничего не делает
|
|||
69
lxs
08.12.14
✎
14:15
|
Если не работает опять, давай код
|
|||
70
Shmidt
08.12.14
✎
14:15
|
ТаблицаДанных = Новый ТаблицаЗначений;
ТаблицаДанных.Колонки.Добавить("Бонус"); ТаблицаДанных.Колонки.Добавить("Использовать"); Для Каждого Строка из ДоступныеБонусы Цикл ТаблицаДанных.Добавить().Бонус = Строка.Бонус; КонецЦикла; Форма = ПолучитьОбщуюФорму("АНМ_ФормаВыбораБонус"); Форма.ТЗ = ТаблицаДанных; // Форма.ТЗ.ЗаполнитьЗначения(Ложь, "Использовать"); Форма.ЭлементыФормы.ТЗ.Использовать.Данные = ""; Форма.ЭлементыФормы.ТЗ.Использовать.ДанныеФлажка = "Использовать"; Форма.ЭлементыФормы.ТЗ.СоздатьКолонки(); Форма.Открыть(); |
|||
71
Shmidt
08.12.14
✎
14:17
|
Упорно ругается на "Использовать". Код может не совсем верный, верчу его повякому
|
|||
72
lxs
08.12.14
✎
14:19
|
//1
Форма.ТЗ.ЗаполнитьЗначения(Ложь, "Использовать"); //2 Форма.ЭлементыФормы.ТЗ.СоздатьКолонки(); //3 Форма.ЭлементыФормы.ТЗ.Колонки.Использовать.Данные = ""; Форма.ЭлементыФормы.ТЗ.Колонки.Использовать.ДанныеФлажка = "Использовать"; //4 Форма.Открыть(); |
|||
73
lxs
08.12.14
✎
14:20
|
Просто скопируй
|
|||
74
lxs
08.12.14
✎
14:21
|
Ложь для флага - значение по умолчанию. Его нет смысла заполнять отдельно, если ты его не заполняешь из исходных данных.
|
|||
75
lxs
08.12.14
✎
14:21
|
Поэтому п.1 можно опустить
|
|||
76
lxs
08.12.14
✎
14:21
|
Только колонку Использовать тогда надо типизировать
|
|||
77
Shmidt
08.12.14
✎
14:22
|
Вот отлично заработало. Спасибо большое !!!
|
|||
78
lxs
08.12.14
✎
14:23
|
Еще вопрос
|
|||
79
lxs
08.12.14
✎
14:24
|
Для каждого Стр Из Выборка Цикл
КоличествоБаллов = Стр.Количество; КонецЦикла; Это что? )))) |
|||
80
Shmidt
08.12.14
✎
14:25
|
Это количество баллов
|
|||
81
lxs
08.12.14
✎
14:26
|
Логично, блин..
Но если баллов нет вообще, у тебя процедура сработает в исключение, потому что переменная КоличествоБаллов будет тупо неопределена |
|||
82
lxs
08.12.14
✎
14:26
|
"Логично, блин" - это был сарказм..
|
|||
83
lxs
08.12.14
✎
14:27
|
Хотя да.. условие в запросе)
|
|||
84
pessok
08.12.14
✎
14:27
|
вы что, все еще помещаете? 0.0
|
|||
85
lxs
08.12.14
✎
14:29
|
(84) => (77)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |