Имя: Пароль:
1C
 
Как программно установить значение для перечисления?
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), но дополню:
ИмяПеречисления = Значение.Метаданные().Имя;
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn