Перебрать и обработать программно свойства контрагентов
27.04.2009
09:15
#1
Уважаемые специалисты. У нас в УТ 1С: Предприятие 8.1 последний релиз для всей номенклатуры установлен ряд свойств на одноименной закладке. Например есть свойства А и Б. У каждого свойства могут быть разные значения. Возможно ли программно их перебрать и установить нужные значения?
За пару строк кода был бы благодарен.
За пару строк кода был бы благодарен.
27.04.2009
12:34
#2
"НужноеСвойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Нужное");
ЗаменяемоеЗначение = 500;
Если НужноеСвойство.Пустая() Тогда
Сообщить("Не найдено свойство по наименованию """""Нужное"""", СтатусСообщения.Внимание);
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Объект КАК Ссылка
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство
| И ЗначенияСвойствОбъектов.Значение = &Значение"
;
Запрос.УстановитьПараметр("Свойство", НужноеСвойство);
Запрос.УстановитьПараметр("Значение", ЗаменяемоеЗначение);
ВыборкаКонтрагентов = Запрос.Выполнить().Выбрать();
НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Свойство.Установить(НужноеСвойство);
Пока ВыборкаКонтрагентов.Следующий() Цикл
НаборЗаписей.Отбор.Объект.Установить(ВыборкаКонтрагентов.Ссылка);
НаборЗаписей.Прочитать();
НаборЗаписей[0].Объект = ВыборкаКонтрагентов.Ссылка;
НаборЗаписей[0].Свойство = НужноеСвойство;
НаборЗаписей[0].Значение = 100;
НаборЗаписей.Записать();
КонецЦикла;"
ЗаменяемоеЗначение = 500;
Если НужноеСвойство.Пустая() Тогда
Сообщить("Не найдено свойство по наименованию """""Нужное"""", СтатусСообщения.Внимание);
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Объект КАК Ссылка
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство = &Свойство
| И ЗначенияСвойствОбъектов.Значение = &Значение"
;
Запрос.УстановитьПараметр("Свойство", НужноеСвойство);
Запрос.УстановитьПараметр("Значение", ЗаменяемоеЗначение);
ВыборкаКонтрагентов = Запрос.Выполнить().Выбрать();
НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Свойство.Установить(НужноеСвойство);
Пока ВыборкаКонтрагентов.Следующий() Цикл
НаборЗаписей.Отбор.Объект.Установить(ВыборкаКонтрагентов.Ссылка);
НаборЗаписей.Прочитать();
НаборЗаписей[0].Объект = ВыборкаКонтрагентов.Ссылка;
НаборЗаписей[0].Свойство = НужноеСвойство;
НаборЗаписей[0].Значение = 100;
НаборЗаписей.Записать();
КонецЦикла;"
Читают тему
(гостей: 1)