8.х Как сменить значение у регистра сведений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Pacan4ik, 18 фев 2010.

  1. TopicStarter Overlay
    Pacan4ik
    Offline

    Pacan4ik

    Регистрация:
    16 дек 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Парни подскажите!

    Хочу сменить значение у регистра сведений ЗначенияСвойствОбъектов, который ссылается на элементы справочника Номенклатура. Вот хотелось бы сменить значение на другой элемент БезТорУп на НовоеЗначение.
    Пока дошел до этого момета, и не могу двинуться дальше

    Код:
    Процедура ТестоваяКнопкаНажатие(Элемент)
    ОчиститьСообщения();
    текТ = Новый ТекстовыйДокумент();
    текТ.Прочитать("D:\cat.txt");
    текТ.Очистить();
    текТ.Записать("D:\cat.txt");	
    регС = РегистрыСведений.ЗначенияСвойствОбъектов.Выбрать();
    Пока регС.Следующий() Цикл
    Если СокрЛП(регС.Значение) = "БезТорУп" Тогда
    Если СокрЛП(регС.Значение.Родитель) = "_Тор" Тогда
    Если СокрЛП(регС.Объект.Владелец) = "К20400" Тогда
    
    
    НовоеЗначение = Справочники.Номенклатура.НайтиПоКоду("00000009602");
    
    Строка0 = Строка(регС.Объект.Владелец);
    Строка1 = Строка(регС.Объект.Наименование);
    текТ.ДобавитьСтроку(Строка0+", "+Строка1);
    текТ.Записать("D:\cat.txt");
    конецЕсли;
    конецЕсли;
    конецЕсли;
    конецЦикла;
    КонецПроцедуры
    
    
    
    
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Через Набор записей надо а не через выборку. получайте набор записей регистра сведений
  3. TopicStarter Overlay
    Pacan4ik
    Offline

    Pacan4ik

    Регистрация:
    16 дек 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Получил то же самое, как сделать , не пойму?

    Код:
    Процедура кнНажатие(Элемент)
    очиститьСообщения();
    рег = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
    рег.Прочитать();
    Для Каждого Запись Из рег Цикл   
    Если СокрЛП(Запись.Значение) = "Без двигателя" Тогда
    Сообщить(Запись.Объект);
    конецЕсли;
    конецЦикла;
    КонецПроцедуры
    
    
    
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    рег.Прочитать() делать не обязательно, либо нужно установить отбор, если, например, регистр сведений зависимый.

    с набором записей работать примерно как с ТЗ.После заполнения набора записей делаем НаборЗаписей.Записать(<Замещать>), где Замещать - булево, указывает, замещать ли имеющиеся записи РС, либо добавлять новые.
  5. TopicStarter Overlay
    Pacan4ik
    Offline

    Pacan4ik

    Регистрация:
    16 дек 2008
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1

    Спасибо за ответы, но я чего-то недпонимаю. С 8-ой работаю пару дней. Наделал вот такое

    Код:
    Процедура кнНажатие(Элемент)
    очиститьСообщения();
    рег = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
    рег.Прочитать();
    Для Каждого Запись Из рег Цикл   
    Если СокрЛП(Запись.Значение) = "БезТорУп" Тогда
    Если СокрЛП(Запись.Значение.Родитель) = "_Двигатели" Тогда
    Если СокрЛП(Запись.Объект.Владелец) = "К2000" Тогда
    Запись.Значение = Справочники.Номенклатура.НайтиПоКоду("00000007010");
    Сообщить(Запись.Объект.Наименование);
    конецЕсли;
    конецЕсли;
    конецЕсли;
    конецЦикла;
    рег.Записать(Истина);
    КонецПроцедуры
    
    
    

Поделиться этой страницей