![]() |
|
Изменение типа ячейки формы | ☑ | ||
---|---|---|---|---|
0
Csar
24.01.13
✎
10:13
|
Доброго дня, коллеги!
Подскажите, пожалуйста, начинающему 1Снику. Суть: Имеется форма, на форме "поле ввода" с реквизитом типа "Произвольный" (назовем "ЗначениеВвод"). Соответственно на самой форме при выборе этого реквизита в палитре свойств поле "ТипЗначения" стало пустым и недоступным (т.к. я реквизит создал на странице реквизитов и там же присвоил тип, а на странице диалога просто выбрал реквизит). В эту ячейку необходимо присваивать значение выбираемого измерения (реквизита или ресурса) выбираемого регистра из конкретного документа корректировки записей регистров. Регистр и измерение могут быть любыми в рамках выбираемого документа корректировки. Т.о. изначально ТипЗначения ЭлементаФормы "ЗначениеВвод" Неопределено, а значение отсутствует. При выборе измерения обработка смотрит значение этого измерения в документе и должна присвоить его в "ЗначениеВвод". На просторах интерента нашел множество вариантом, но ни один не сработал у меня (видать руки кривые или я чего то не понимаю. Второе вероятнее). Вот как вариант: ВидРегистра - например, РегистрыНакопления Регистр - например, НДСПредъявленный Измерение - например, Поставщик Данные[0][Измерение] - строка, с выбранной колонкой "Измерение", т.е. фактически уже готовое значение, которое надо присвоить в "ЗначениеВвод" и типом, который также надо присвоить "ЗначениеВвод". ОписаниеНашегоТипа = Метаданные[ВидРегистра][Регистр].Измерения[Измерение].Тип; ЭлементыФормы.ЗначениеВвод.Значение = ОписаниеНашегоТипа.ПривестиЗначение(Данные[0][Измерение]); Тем не менее после этого алгоритма в ячейку записывается текстовая(!) строка с значением равным Данные[0][Измерение]. Тип "ЗначениеВвод" не удается изменить. В задумке еще в зависимости от типа программно ставить кнопку "КнопкаВыбора", что бы вручную менять значение, выбирая из ФормыСписка, открывающейся по появившейся кнопке. Но это станет возможно, когда тип получится изменить. Напрямую задать тип на форме нельзя, т.к. напрямую он не определен и может принимать очень много вариантов различных значений. Помогите, пожалуйста, с кодом для присваивания значения и типаЗначения. |
|||
1
Wobland
24.01.13
✎
10:15
|
что-то всё мутно. присваивание делается оператором =, задание типа - присваиванием пустого значения нужного типа
|
|||
2
Csar
24.01.13
✎
10:15
|
Прошу прощения. Это моя первая тема.
Вопрос стоит на 1С8.2 УПП, файловая |
|||
3
Csar
24.01.13
✎
10:23
|
(1) Как вариант еще есть
ЭлементыФормы.ЗначениеВвод.ТипЗначения.ПривестиЗначение(Данные[0][Измерение]); Но это также не работает. Wobland, не могли бы вы пояснить как мне получить пустое значение нужного типа, при условии, что тип будет определяться тем, какое измерение выбрал пользователь? Когда пустое значение будет получено, то код получится просто таким (?): ЭлементыФормы.ЗначениеВвод.ТипЗначения = ПустоеЗначениеНашегоТипа; ЭлементыФормы.ЗначениеВвод.Значение = Данные[0][Измерение]; Еще вопрос. Как красиво вставить сюда код 1С? |
|||
4
Wobland
24.01.13
✎
10:24
|
(3) я мало что понял вообще. может, после второго раза дойдёт ;)
{1c}скобки квадратные{/1с} |
|||
5
Csar
24.01.13
✎
10:30
|
(4) Если кратко, то надо присвоить значение определенного типа (которое до запуска обработки не известно, но становится известным как формируется ее значение) в ячейку на форме, тип которой "Произвольный".
|
|||
6
samozvanec
24.01.13
✎
10:30
|
вроде как реквизит произвольного типа и присваивай ему че хочешь, не?
|
|||
7
Wobland
24.01.13
✎
10:30
|
(5) =
|
|||
8
Wobland
24.01.13
✎
10:30
|
+(7) и всё
|
|||
9
Csar
24.01.13
✎
10:36
|
(6) (7) (8)
т.е. просто так? ЭлементыФормы.ЗначениеВвод.Значение = Данные[0][Измерение]; |
|||
10
Wobland
24.01.13
✎
10:37
|
(9) КакойТоРеквизит=НужноеЗначение; - так кошерней. не путай данные с их представлением
|
|||
11
Wobland
24.01.13
✎
10:38
|
test |
|||
12
Wobland
24.01.13
✎
10:38
|
(11) ветка не в той теме
|
|||
13
Csar
24.01.13
✎
10:40
|
сории за спам, тестирую тэги
ЭлементыФормы.ЗначениеВвод.Значение = Данные[0][Измерение];
ЭлементыФормы.ЗначениеВвод.Значение = Данные[0][Измерение];
(12) Я посотрел в списке веток - не нашел ничего, связанного с 1С. Подскажите, пожалуйста, какое название ветки для 1с? |
|||
14
Csar
24.01.13
✎
10:41
|
(11) что то ни с русскими тегами ни с английскими тегами на выходит вставить код
|
|||
15
Wobland
24.01.13
✎
10:47
|
(13) видишь правильную тему для ветки?
http://screencast.com/t/t1GwgluW |
|||
16
Csar
24.01.13
✎
10:48
|
(6) (12) Спасибо большое за помощь. Видимо проблема не в самом присваивании, а программном добавлении кнопки выбора. Задумка была, что бы программно создавать кнопку выбора и пользователь мог бы щелкнув по ней открыть формуВыбора и выбрать (если захочет) другое значение реквизита.
В итоге кнопка у меня создается, но она не работает (нажатие на нее не дает никакого результата). В моем коде только кнопка создается: ЭлементыФормы.ЗначениеВвод.КнопкаВыбора = Истина;
Как заставить кнопку работать? Чего ей не хватает? Реквизит содержит нужный тип, так как почему же кнопка не открывает форму выбора соответствующего справочника или журнала? |
|||
17
Csar
24.01.13
✎
10:50
|
(15) 1Сv8 у меня стояла, а в окошке Секция я выбрал секцию Математика и алгоритмы, т.к. там нет 1С. Видимо в Секции ничего не надо выбирать, просто ее оставить и не трогать?
PS за скрин. |
|||
18
Wobland
24.01.13
✎
10:51
|
(16) кнопка выбора добавляется одной галкой в свойствах поля ввода
|
|||
19
Wobland
24.01.13
✎
10:52
|
(18) не углядел, там всё прогораамно, пардон
|
|||
20
Csar
24.01.13
✎
10:55
|
(18) (19) я попробовал в палитре свойств включить и программно - результат один - кнопка есть, но при нажатии на нее форма выбора не открывается. Вообще ничего не происходит.
|
|||
21
Csar
24.01.13
✎
10:56
|
Разве кнопка выбора не открывает автоматически форму выбора соответствующего справочника или журнала, опираясь на тип реквизита? Например, если тип Справочники.Контрагенты, то открывать форму именно этого справочника?
|
|||
22
Wobland
24.01.13
✎
10:57
|
(20) а должно. при первом открытии что там? "Т" должно быть...
|
|||
23
Csar
24.01.13
✎
11:04
|
(22) Да, первоначально там кнопка выбора типа "Т", но она так же неактивная, т.е. при нажатии она кликается, но ничего не происходит. Вот скрин http://pikucha.ru/ia1Rh. События не назначены у ячейки
|
|||
24
Wobland
24.01.13
✎
11:06
|
(23) реквизит себе заведи. данные странные и тип данных
|
|||
25
Csar
24.01.13
✎
11:10
|
В данных сидит реквизит, созданный на вкладке Реквизиты http://pikucha.ru/ia1Rj
Тип данны у него по умолчанию Произвольный, но когда я присваиваю ему значение, то тип значения так же присваивается и в итоге реквизит получается со значением и типом. |
|||
26
Wobland
24.01.13
✎
11:15
|
мда.. попробовал на практике. это всё от того, что тип произвольный
|
|||
27
Wobland
24.01.13
✎
11:15
|
(26) сделай нужный составной
|
|||
28
Csar
24.01.13
✎
11:19
|
(26) неужели мне придется проставить все галочки в типах?? С учетом того, что у меня будет много различных вариантов, то как то странно, что 1С так реализовала этот момент. Попробовал указать некоторые типы, в т.ч. справочники - их хорошо открывает.
[b]Wobland[/b], спасибо тебе огромное за помощь! |
|||
29
Wobland
24.01.13
✎
11:20
|
(28) я тип произвольный даже не видел никогда. а зачем все галки? да и не так их много..
|
|||
30
Wobland
24.01.13
✎
11:20
|
@_Csar - подчерк убрать: Csar
|
|||
31
Csar
24.01.13
✎
11:21
|
(29) документ корректировок всевозможные регистры редактирует. Все измерения, реквизиты и ресурсы надо просмотреть и их типы указать.
|
|||
32
hhhh
24.01.13
✎
11:24
|
(23) а реквизит точно тип "Произвольный" задано?
|
|||
33
Csar
24.01.13
✎
11:27
|
(32) да, в (25) есть скрин. Я сначала создал реквизит на странице реквизитов, потом указал его в ячейке.
|
|||
34
Wobland
24.01.13
✎
11:27
|
(32) точно. не работает с произвольным
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |