|
|
|
Список значений на форме | ☑ | ||
|---|---|---|---|---|
|
0
chirs
24.03.11
✎
08:19
|
Здравствуйте !
Извиняюсь, если мой вопрос пустяковый, просто я недавно только начал в 1С 8-ке программировать. Задача такова. Я создаю внешнюю обработку. В ней я добавил реквизит "ВариантРасчета", тип которому поставил "СписокЗначений". Затем на форму я его добавил так: меню "Форма" - "Размещение данных", отметил этот реквизит, при этом в колонке "Элемент формы" выбрал "Поле выбора". Теперь при открытии моей формы, т.е. в процедуре "ПриОткрытии" я пытаюсь добавить в этот реквизит значения. Делаю так: [code]ВариантРасчета.Добавить(1,"Вариант первый"); ВариантРасчета.Добавить(2,"Вариант второй");[/code] В результате при открытии своей формы в режиме "предприятие" в размещенном мной реквизите добавленные значения не появляются. Подскажите, что я делаю не правильно ? |
|||
|
1
Mort
24.03.11
✎
08:22
|
По кнопке списка выбора в поле ничего не выпадает?
|
|||
|
2
Wobland
24.03.11
✎
08:23
|
(0) ПолеВыбора (ComboBox)
СписокВыбора (ChoiceList) Использование: Чтение и запись. Описание: Тип: СписокЗначений. Содержит список значений для осуществления выбора по нажатию кнопки списка выбора. |
|||
|
3
chirs
24.03.11
✎
08:24
|
(1) да, пустое остается
|
|||
|
4
ВераТ
24.03.11
✎
08:24
|
Задача какая? Реквизит судя по всему должен быть сроковый, т.к. в нем хранится не список, а выбранное значение. Список для выбора формируете при начале выбора
|
|||
|
5
Cube
24.03.11
✎
08:26
|
(0) Реквизит обработки удали, можно обойтись и реквизитом формы, тип у которого - Произвольный. Потом на форму добавь поле выбора: Данные - твой реквизит, ТипЗначения - произвольный.
Затем в процедуре ПриОткрытии() пиши: ЭлементыФормы.ТвоеПолеВыбора.Значение = "Вариант первый"; ЭлементыФормы.ТвоеПолеВыбора.Значение = "Вариант второй"; |
|||
|
6
ВераТ
24.03.11
✎
08:27
|
В вашем случае я бы сделала проще. Вариант расчета - строковый тип. поле ввода на форму, галка КнопкаСпискаВыбора. В обработчик НачалоВыбораИзСписка:
СтандартнаяОбработка = Ложь; Список = Новый СписокЗначений; Список.Добавить(нужное значение); ВариантРасчета= ВыбратьИзСписка(Список,Элемент); |
|||
|
7
chirs
24.03.11
✎
08:27
|
(2) что-то не соовсем понял твою мысль... т.е. я должен создать сначала список значений и потом как-то его привязать к своему полю выбора ?
|
|||
|
8
Cube
24.03.11
✎
08:28
|
+(5) Ой, ошибся!
ПриОткрытии() такой код: ЭлементыФормы.ТвоеПолеВыбора.СписокВыбора.Добавить(1, "Вариант первый"); ЭлементыФормы.ТвоеПолеВыбора.СписокВыбора.Добавить(2, "Вариант второй"); |
|||
|
9
chirs
24.03.11
✎
08:30
|
т.е. без реквизита обработки никак не обойтись ?
|
|||
|
10
chirs
24.03.11
✎
08:30
|
ой, т.е. наоборот
|
|||
|
11
Cube
24.03.11
✎
08:31
|
(9) Читай (5).
|
|||
|
12
chirs
24.03.11
✎
08:31
|
т.е. сделать так, чтобы был реквизит обработки и его привязать к полю выбора на форме никак не получится ?
|
|||
|
13
ВераТ
24.03.11
✎
08:32
|
(9) да смысла нет его делать реквизитом
|
|||
|
14
GROOVY
24.03.11
✎
08:32
|
Вы случаем не путаете реквизит формы с реквизитом обработки?
|
|||
|
15
ВераТ
24.03.11
✎
08:32
|
(12) почему не получится? только вопрос-зачем?
|
|||
|
16
Cube
24.03.11
✎
08:33
|
(12) Можно и реквизит обработки и реквизит формы, читай (5).
|
|||
|
17
chirs
24.03.11
✎
08:33
|
хм... понятно...
всем спасибо большое за подсказки !!! |
|||
|
18
ВераТ
24.03.11
✎
08:33
|
(14) судя по (0) я поняла, что речь идет о реквизите обработки
|
|||
|
19
chirs
24.03.11
✎
08:35
|
(16) я прочитал (5) и если я все правильно понимаю, т.е. есть:
1. Реквизит обработки 2. Реквизит формы в сообщении (5) говорится о том, как заполнить список для реквизита формы, при этом реквизит обработки останется пустым и в нем ничего не будет. |
|||
|
20
chirs
24.03.11
✎
08:35
|
(18) верно, мне нужно чтобы выбранное значение было записано именно в реквизите обработки
|
|||
|
21
Cube
24.03.11
✎
08:37
|
(19) Делай (5) либо с реквизитом формы, либо с реквизитом обработки. Не нужно плодить кучу одинаковых реквизитов!
|
|||
|
22
chirs
24.03.11
✎
08:38
|
если в обработке создавать только реквизиты формы и потом получать к ним доступ через ЭлементыФормы, то зачем тогда вообще есть возможность создавать реквизиты обработки, если она внешняя и вообще ничего поидее не записывает в базу данных ?
|
|||
|
23
ВераТ
24.03.11
✎
08:39
|
(20) зачем? а вообще хозяин-барин...
а вообще как сделать, я в (6) написала |
|||
|
24
Cube
24.03.11
✎
08:40
|
(22) Да потому что есть ещё модуль обработки в котором реквизиты формы недоступны!
|
|||
|
25
chirs
24.03.11
✎
08:44
|
(24) ага !!! тогда тем более нужно добиться, чтобы выбранное значение попадало в реквизит именно обработки !
|
|||
|
26
chirs
24.03.11
✎
08:45
|
(23) попробовал, что-то не получается. Список для выбора появляется, но значение почему-то не выбирается в итоге
|
|||
|
27
chirs
24.03.11
✎
08:47
|
(23) хм... значение выбирается и записывается в ВариантРасчета, но почему-то в самом элементе формы выбранное значение не отображается
|
|||
|
28
ВераТ
24.03.11
✎
08:49
|
(27) Вы наверное просто запутались :) Мне не совсем понятно, нафиг это в реквизит обработки пихать, но как хотите...создаете реквизит со строковым типом, помещаете его на форме. Видимо сейчас у Вас поле на форме не связано с реквизитом
|
|||
|
29
ВераТ
24.03.11
✎
08:50
|
(28) + и неплохо бы при открытии формы заполнять его значением по умолчанию (если не хотите чтобы изначально был пустым)
|
|||
|
30
ВераТ
24.03.11
✎
08:51
|
+ у поля ввода на форме в Данных должен быть указан твой реквизит
|
|||
|
31
chirs
24.03.11
✎
08:51
|
(28) именно так, как Вы сказали и сделал. Реквизит формы - связан через поле "Данные" с реквизитом обработки.
|
|||
|
32
ВераТ
24.03.11
✎
08:52
|
(31) Тип?
|
|||
|
33
chirs
24.03.11
✎
08:53
|
[code]
Процедура ВыбПриказНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Список = Новый СписокЗначений; Список.Добавить("Вариант первый"); Список.Добавить("Вариант второй"); ВыбВариант = ВыбратьИзСписка(Список,Элемент); ЭлементыФормы.ВыбПриказ.Значение = ВыбВариант; КонецПроцедуры [/code] |
|||
|
34
chirs
24.03.11
✎
08:54
|
Тип реквизита обработки - строка (неограниченная)
|
|||
|
35
ВераТ
24.03.11
✎
08:54
|
ЭлементыФормы.ВыбПриказ.Значение = ВыбВариант;
- это не нужно |
|||
|
36
ВераТ
24.03.11
✎
08:55
|
Проверьте, что действительно связан с реквизитом обработки, а не формы. Этот код 100% рабочий :)
|
|||
|
37
chirs
24.03.11
✎
08:55
|
точнее так:
Процедура ВыбПриказНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Список = Новый СписокЗначений; Список.Добавить("Вариант первый"); Список.Добавить("Вариант второй"); ВариантРасчета = ВыбратьИзСписка(Список,Элемент); ЭлементыФормы.ВыбПриказ.Значение = ВариантРасчета; КонецПроцедуры |
|||
|
38
ВераТ
24.03.11
✎
08:56
|
(33) у тебя Поле с именем ВыбПриказ, а реквизит обработки - ВыбВраиант?
|
|||
|
39
chirs
24.03.11
✎
08:57
|
все, понял в чем моя ошибка была
|
|||
|
40
ВераТ
24.03.11
✎
08:57
|
(37) похоже ты запутался, и у тебя не связано поле с нужным реквизитом бработки
|
|||
|
41
ВераТ
24.03.11
✎
08:57
|
ЭлементыФормы.ВыбПриказ.Значение = ВариантРасчета;
- это убери! |
|||
|
42
chirs
24.03.11
✎
08:58
|
при размещении элемента на форму я делал так:
меню "Форма" - "Размещение данных", отметил этот реквизит, при этом в колонке "Элемент формы" выбрал "Поле выбора" |
|||
|
43
chirs
24.03.11
✎
08:58
|
а нужно было просто разместить это поле и потом поставить галочку "КнопкаСпискаВыбора"
|
|||
|
44
chirs
24.03.11
✎
08:58
|
(41) сделал
|
|||
|
45
chirs
24.03.11
✎
08:59
|
вообщем, теперь все работает и все выбирается и сохраняется в реквизите обработки, как мне и нужно было !
Спасибо большое ВераТ !!! |
|||
|
46
ВераТ
24.03.11
✎
09:02
|
(42) ну надо было внимательно читать, что я писала...
(45) ок, на здоровье :) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |