Как заполнить свойство программно

1. sasha-asn 28.01.20 10:36 Сейчас в теме
Здравствуйте уважаемые эксперты! Прошу вашей помощи, так как впал в тупик...

Пишу обработку, по массовому заполнению Свойств у Номенклатуры. В итоге хочу заполнить Свойство "КодДляСайта" с типом значений Строка, данными из Номенклатура.Код, для каждой номенклатуры.

Написал запрос, он выводит то что мне надо. Теперь не могу понять как мне обработать результат запроса "ВЗЯТЬ данные из Номенклатура.Код и ВСТАВИТЬ их в ЗначенияСвойствОбъектов.Значение" ?

Прошу прощение, учусь программированию в 1с

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Номенклатура.Ссылка,
		|	Номенклатура.Код,
		|	ЗначенияСвойствОбъектов.Свойство,
		|	ЗначенияСвойствОбъектов.Значение
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
		|		ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
		|			И (ЗначенияСвойствОбъектов.Свойство = &Свойство)";
	
	Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("КодДляСайта"));	
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		  
	КонецЦикла;
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
4. Teut_Vlad 191 28.01.20 10:45 Сейчас в теме
(2) всё правильно
КодДляСайта = ПланоВидовХарактеристик.СвойстваОбъектов.НайтиПоПаименованию("КодДляСайта ");
//ВашЗапрос
 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
	
МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Ссылка;
МенеджерЗаписи.Свойство = КодДляСайта ;
МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Код;

МенеджерЗаписи.Записать();   
    КонецЦикла;
Показать
asterisk; sasha-asn; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sasha-asn 28.01.20 10:40 Сейчас в теме
Мне не понятно, если я в Обработку результата запихну Сообщить(РезультатЗапроса), поругается на тип данных, это логично так как выводится будет 4 колонки...
Может бы это сделать через РегистрСведенийМенеджерЗаписи.<имя> ? https://its.1c.ru/db/metod8dev/content/2486/hdoc
4. Teut_Vlad 191 28.01.20 10:45 Сейчас в теме
(2) всё правильно
КодДляСайта = ПланоВидовХарактеристик.СвойстваОбъектов.НайтиПоПаименованию("КодДляСайта ");
//ВашЗапрос
 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
       МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
	
МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Ссылка;
МенеджерЗаписи.Свойство = КодДляСайта ;
МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Код;

МенеджерЗаписи.Записать();   
    КонецЦикла;
Показать
asterisk; sasha-asn; +2 Ответить
5. sasha-asn 28.01.20 10:59 Сейчас в теме
(4)
КодДляСайта = ПланоВидовХарактеристик.СвойстваОбъектов.НайтиПоПаименованию("КодДляСайта ");
//ВашЗапрос
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();

МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Ссылка;
МенеджерЗаписи.Свойство = КодДляСайта ;
МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Код;

МенеджерЗаписи.Записать();
КонецЦикла;


Спасибо, но почему то ошибка
Прикрепленные файлы:
6. Teut_Vlad 191 28.01.20 11:00 Сейчас в теме
(5)
ПланоВидовХарактеристик.СвойстваОбъектов.НайтиПоПаименованию("КодДляСайта ");

ПланоВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00223");

А вообще поставьте точку останова, я не првоерял свой код на синтаксис ошибки)
sasha-asn; +1 Ответить
3. bugagashenka 203 28.01.20 10:42 Сейчас в теме
1. Добавить ГДЕ ЗначенияСвойствОбъектов.Значение Есть NULL
И
Номенклатура.Код Как Значение

Запрос Должен быть:

ВЫБРАТЬ
| Номенклатура.Ссылка Как объект,
| Номенклатура.Код Как Значение,
| &Свойство Как Свойство,
...

2. РС = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(РС, Выборка);
РС.Записать();
sasha-asn; Teut_Vlad; +2 Ответить
7. sasha-asn 28.01.20 11:37 Сейчас в теме
ВСЕМ ОГРОМНОЕ СПАСИБО! ДАЙ БОГ ВАМ ЗДОРОВЬЯ И ДЕНЕГ ПОБОЛЬШЕ!

Если кому то понадобится в будущем, вот решение Как из реквизита Номенклатуры вставить в Свойство
	КодДляСайта = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("00223");
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	Номенклатура.Ссылка,
	|	Номенклатура.Код,
	|	ЗначенияСвойствОбъектов.Свойство,
	|	ЗначенияСвойствОбъектов.Значение
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
	|		ПО Номенклатура.Ссылка = ЗначенияСвойствОбъектов.Объект
	|ГДЕ ЗначенияСвойствОбъектов.Значение Есть NULL";
	
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
		
		МенеджерЗаписи.Объект = ВыборкаДетальныеЗаписи.Ссылка;
		МенеджерЗаписи.Свойство = КодДляСайта ;
		МенеджерЗаписи.Значение = ВыборкаДетальныеЗаписи.Код;
		
		МенеджерЗаписи.Записать();   
	КонецЦикла;
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот