|
Как программно установить значение для перечисления? | ☑ | ||
---|---|---|---|---|
0
ChuckLittle
04.10.23
✎
14:53
|
Есть название элемента метаданных документа с типом перечисление и переменная с значением (в виде строки). Как мне это значение присвоить элементу документа типа перечисление?
|
|||
1
Волшебник
04.10.23
✎
14:56
|
Док.Поле = Перечисления[ИмяПеречисления][ЗначениеСтрокой]; или Перечисления["ТипТовара"]["Товар"] |
|||
2
ChuckLittle
04.10.23
✎
14:58
|
Понимаю, что мало чего понятно из текста, но очень долго расписывать всю суть, вот для примера как не работает, но по логике(моей) должно: НовыйДокумент[МетаданныеНовогоДокумента.Имя](Тип ПеречислениеСсылка.ВидыОперацийРеализацияТоваров) = МетаданныеСтарогоДокумента.Значение; ("Товары")
|
|||
3
Волшебник
04.10.23
✎
15:05
|
Вам надо понять, что такое ТИП ДАННЫХ и как обращаться к полям значения.
Это безумие из квадратных и круглых скобок, точек с запятой и кавычек, не сработает просто так. Программирование — это не магия, а точная наука. |
|||
4
ChuckLittle
04.10.23
✎
15:09
|
(1) Так я пытаюсь сделать, но не могу получить имя перечисления нового документа, получаю его не того вида, который нужен, используя ТипЗнч, получаю: Виды операций документа "Реализация (акт.накладная)". То есть значение ссылки, насколько я понимаю. А мне нужно: ПеречислениеСсылка.ВидыОперацийРеализацияТоваров. Извиняюсь, если вопрос глупый или некорректно сформулирован, недавно начал изучать 1С.
|
|||
5
ChuckLittle
04.10.23
✎
15:11
|
(3) Пока что, по ощущениям, именно на 1с программирование местами ближе к магии)
|
|||
6
ChuckLittle
04.10.23
✎
15:12
|
(3) На всякий случай ещё поясню, в круглых скобках "(Тип ПеречислениеСсылка.ВидыОперацийРеализацияТоваров)" я написал для лучшего понимания, чего я хочу получить. В коде этого естественно нет
|
|||
7
yurikmellon2
04.10.23
✎
15:22
|
(6) тебе же в (1) Волшебник всё написал
Док.Поле = Перечисления.ВидыОперацийРеализацияТоваров[ИмяЗначения];
Док.Поле - это реквизит в документе, куда тебе надо записать значение твоего перечисления ИмяЗначения - это то, что у тебя в переменной, которая строка |
|||
8
Волшебник
04.10.23
✎
15:20
|
(5) Это кажущаяся видимость.
(4) Используйте метод Метаданные(), чтобы от значения перейти к метаданным МетаданныеСправочника = ТоварСсылка.Метаданные(); |
|||
9
ChuckLittle
04.10.23
✎
15:21
|
(3) Прошу прощения, что ввёл в заблуждение, сейчас постараюсь сформулировать проблему получше. У меня есть структура в которой хранится название свойства документа: "ВидОперации" и значение: "Товары". Мне нужно создать новый документ и в тоже свойство "ВидОперации" поместить значение из структура, а именно: "Товары". Помогите пожалуйста разобраться, уже миллион способов перепробовал.
|
|||
10
vicof
04.10.23
✎
15:26
|
Документ= Документы[ТвояСтруктура.имяДокумента].СоздатьДокумент();
Документ.ВидОперации = Перечисления.ВидыОпераций[ТвояСтруктура.ВидОперации] |
|||
11
Волшебник
04.10.23
✎
15:31
|
(9) Ответ уже давно в (1), но я ещё дополню:
Док[ИмяПоля] = Перечисления[ИмяПеречисления][ЗначениеСтрокой]; |
|||
12
ChuckLittle
04.10.23
✎
15:33
|
(11) Да, я понимаю, просто не могу понять как получить имя перечисления, но попробую разобраться, спасибо!
|
|||
13
Волшебник
04.10.23
✎
15:39
|
(12) ответ в (8), но дополню:
ИмяПеречисления = Значение.Метаданные().Имя; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |