Имя: Пароль:
1C
1С v8
Как с ТЗ записать в РС?
0 kyrgyz
 
29.07.12
13:23
Вот так не получается.

НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();

   ТЗ = ЭлементыФормы.НайденныеОбъекты.Значение;
   Для каждого Строка Из ТЗ Цикл
       Если Строка.Пометка Тогда
           Запись = НаборЗаписейЗначенияСвойств.Добавить();
           Запись.Объект   = Строка.Документ;
           Запись.Свойство = СвойствоОтгружен;
           Запись.Значение = Истина;
       КонецЕсли;
   КонецЦикла;
   
   
   
   Попытка
       НаборЗаписейЗначенияСвойств.Записать();
1 1C-band
 
29.07.12
13:26
МенеджерНабораЗаписей
2 kyrgyz
 
29.07.12
13:26
а если в начале так:

НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.РегистрСведенийНаборЗаписей();

То удаляет все зприси и вводит новые. :(

Неужели надо в цикле делать отбор по объекту и каждый раз читать РС?
3 1C-band
 
29.07.12
13:27
1. Установить отобр;
2. .Прочитать()
4 kyrgyz
 
29.07.12
13:29
(3) Неужели в цикле мне надо отбирать каждый раз?
5 Ctyd
 
29.07.12
13:30
ТЗ = ЭлементыФормы.НайденныеОбъекты.Значение;
   Для каждого Строка Из ТЗ Цикл
       Если Строка.Пометка Тогда
           Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
           Запись.Объект   = Строка.Документ;
           Запись.Свойство = СвойствоОтгружен;
           Запись.Значение = Истина;
Запись.записать();
       КонецЕсли;
   КонецЦикла;
   
А такой вариант плохой?
6 kyrgyz
 
29.07.12
13:32
(5) Попробую а так хотел извратиться так:

НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
     ТЗ = ЭлементыФормы.НайденныеОбъекты.Значение;
   Для каждого Строка Из ТЗ Цикл
       Если Строка.Пометка Тогда
           НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(Строка.Документ);
           НаборЗаписейЗначенияСвойств.Прочитать();
           Если НаборЗаписейЗначенияСвойств.Количество() = 0 Тогда
   
           ИначеЕсли НаборЗаписейЗначенияСвойств.Количество() = 1 Тогда
               НовыйКурс = НаборЗаписейЗначенияСвойств[0];
           Иначе
              Продолжить;
           КонецЕсли;
           Запись.Объект   = Строка.Документ;
           Запись.Свойство = СвойствоОтгружен;
           Запись.Значение = Истина;
           НаборЗаписейЗначенияСвойств.Записать();
       КонецЕсли;
   КонецЦикла;
7 kyrgyz
 
29.07.12
13:44
(5) Получилось Спасибо.
Токо я не понял почему не дублирует при вотроном запуске обработки?

Видимо сам менеджер следить за уникальностью.
8 vvp91
 
29.07.12
14:32
У РегистрСведенийНаборЗаписей есть метод Загрузить(ТаблицаЗначений).
Создаешь набор записей, устанавливаешь отбор, загружаешь таблицу значений, свойство Записывать устанавливаешь в Истина, вызываешь метод Записать().
9 kyrgyz
 
29.07.12
14:47
(8) Спасибо об этом я понял но не хотел еще возиться ТЗ создавать. Но на будущее для отпимизации буду использовать.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший