Запись реквизита #208199


#0 by Leshii_sib
Значение реквизита содержится в строке, которую считываем из файла каким образом записать это значение в реквизит документа Выражение: где СтрИмя - Имя реквизита Стр - строка считываемая из файла - значение реквизита. не выполняет требуемое действие.
#1 by КантЪ
УстановитьАтрибут
#2 by Стрелок
а вто такое "Выполнить"?????
#3 by Волшебник
каков тип переменной Док?
#4 by Leshii_sib
Прошу прощения случайно оказалась v7 сабж относится к восьмерке Док - Документ
#5 by hotZED
ДокументОбъект[имяРеквизита] = Значение;
#6 by Leshii_sib
в принципе, я так понимаю, что указанная мной строчка это и предпологает, с учетом что ИмяРеквизита также содержится в строке.
#7 by hotZED
Тогда
#8 by Leshii_sib
первая просто не выполняет требуемой операции, а вторая выдает ошибку
#9 by Shaytan
Какого типа переменная "Док", Какого типа реквизит документа с именем "СтрИмя"? Для чего используется оператор выполнить?
#10 by Leshii_sib
Выполнить использую для того чтобы в выполняемых операциях можно было изменять имя реквизита, подгружаемое по циклу. т.е. выполнить "проход" всех реквизитов. Док - Документ объект реквизит по идее должен быть любой, т.е. перечисления, справочник и т.п...
#11 by Leshii_sib
Ошибку свою кажется осознал... если это касается типа реквизита. но как тогда поступить?
#12 by Shaytan
Есть несколько вариантов: почитать документацию, нормально сформулировать вопрос для людей не обладающих телепатическими способностями и т. д. и т. п.
#13 by Shaytan
... ... Док.Записать;
#14 by Leshii_sib
постараюсь объяснить по подробнее Производится выгрузка документа в текстовый файл значение каждого реквизита прописывается в отдельной строке далее создаем новый документ (ваша первая строчка) начинаем считывать этот текстовый файл и попутно устанавливаем значение соответствующим реквизитам Соответственно необходима операция, которая позволит установить значение реквизита, когда само значение содержится в строке.
#15 by Leshii_sib
Про ПолучитьЗначениеРеквизитаПоСтроке(Стр) похоже что программа даже не слышала.
#16 by Leshii_sib
Ап. Тема актуальна.
#17 by Leshii_sib
по сути получается необходимо преобразовать строковое значение в тип реквизита.
#18 by Leshii_sib
опробовал такую конструкцию при том что считываемые строки: Перечисление ссылка: Виды операций документа "Реализация товаров и услуг" продажа, комиссия ОписТип.ПривестиЗначение(значен); возвращает значение типа строка, идентичное переменной 'значен'
#19 by Neco
Текст.ПолучитьСтроку что возвращает?
#20 by Leshii_sib
Текст.ПолучитьСтроку: Перечисление ссылка: Виды операций документа "Реализация товаров и услуг" Текст.ПолучитьСтроку: продажа, комиссия
#21 by Neco
Нет так не годится. Нужно так:
#22 by Leshii_sib
ок попробую
#23 by Leshii_sib
что-то я уже совсем запутался. чем дальше в лес тем больше вопросов. 1) теперь возвращает пустое значение с типом ПеречислениеСсылка.ВидыОперацийРеализацияТоваров т.е. как бы половина того что требуется :( --------------- 2) И еще: как получить строку вида: "ПеречислениеСсылка.ВидыОперацийРеализацияТоваров" или СправочникСсылка.Валюты т.е. входной параметр конструктора ОписаниеТипов Если функция ТипЗнч(Документ.ИмяРеквизита) возвращает значения вида: Перечисление ссылка: Виды операций документа "Реализация товаров и услуг"
#24 by Neco
1. Так. По этому пункту сделаем немного по другому: 2. А сохраняем так: ЗЫ: Ну что-то вроде этого. Там еще проверять нужно на тип объекта метаданных, какие с ним можно производить действия. Например с перечислениями можно вызвать "ЗначенияПеречисления"
#25 by Leshii_sib
Обработка.ПерегрузкаДокумента}: Значение не является значением объектного типа (ЗначенияПеречисления) хотя отладчик на Метаданные.НайтиПоПолномуИмени("ПеречислениеСсылка.ВидыОперацийРеализацияТоваров").ЗначенияПеречисления["ПродажаКомиссия"]; реагирует адекватно. и еще посему вопрос выходит что при загрузке реквизитов документа из файла, нужно в зависимости от типа реквизита разделять алгоритмы т.е. если строка то так читаем, если справочник то так, если документ то еще и вот так? и еще: каким образом тогда выгружать значение чтобы записывалось его имя а не синоним т.е. чтобы в строку записывалось не "продажа, комиссия" а "ПродажаКомиссия" Прошу прощения за свой ЧАЙНИКизм :(
#26 by Neco
Сделай так: [1С] Док["ВидОперации"]=Метаданные.НайтиПоПолномуИмени("Перечисление.ВидыОперацийРеализацияТоваров").ЗначенияПеречисления["ПродажаКомиссия"]; [/1C] Записывать перечисление, следует так:
#27 by Leshii_sib
так-с.. :( в первом случае имеем что конструкция Метаданные.НайтиПоПолномуИмени("Перечисление.ВидыОперацийРеализацияТоваров").ЗначенияПеречисления["ПродажаКомиссия"]; возвращает объект метаданных, и поэтому должным образом не работает если добавить .Имя, то возвращаться будет строка, что уже является пройденным этапом. во втором случае Документ.ВидОперации.Имя; просто не раюотает ввиду отсутствия параметра .Имя
#28 by Neco
В первом случаем, конструкция: возвращает значение перечисления. Можно правда написать проще:
#29 by Leshii_sib
Вот! заработало! огромное спасибо! странно только но отладчик у меня выдает тип результата "Метаданные...." как ОбъектМетаданных. теперь бы еще понять каким образом выгрузку производить...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С