Имя: Пароль:
1C
1С v8
v8: Опять про характеристики
0 zippygrill
 
30.09.11
16:40
Хотелось б программно скопировать значение из колонке Значение в колонке Ответственный.  Оба являются значениесвойствобъектов.
http://i54.tinypic.com/20acew0.jpg
Остановился здесь:


   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ДоговорыКонтрагентов.Владелец,
                  |    ДоговорыКонтрагентов.Ссылка,
                  |    ДоговорыКонтрагентов.Код КАК Код,
                  |    ЗначенияСвойствОбъектов.Свойство,
                  |    ЗначенияСвойствОбъектов.Значение,
                  |    Ответственные.Ответственный,
                  |    Ответственные.СвойствоОтветственный
                  |ИЗ
                  |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
                  |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                  |            ЗначенияСвойствОбъектов.Объект КАК Объект,
                  |            ЗначенияСвойствОбъектов.Свойство КАК Свойство,
                  |            ЗначенияСвойствОбъектов.Значение КАК Значение
                  |        ИЗ
                  |            РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                  |        ГДЕ
                  |            ЗначенияСвойствОбъектов.Свойство = &Свойство) КАК ЗначенияСвойствОбъектов
                  |        ПО ДоговорыКонтрагентов.Ссылка = ЗначенияСвойствОбъектов.Объект
                  |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                  |            ЗначенияСвойствОбъектов.Объект КАК Объект,
                  |            ЗначенияСвойствОбъектов.Свойство КАК СвойствоОтветственный,
                  |            ЗначенияСвойствОбъектов.Значение КАК Ответственный
                  |        ИЗ
                  |            РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                  |        ГДЕ
                  |            ЗначенияСвойствОбъектов.Свойство = &Ответственный) КАК Ответственные
                  |        ПО ДоговорыКонтрагентов.Ссылка = Ответственные.Объект
                  |ГДЕ
                  |    (НЕ ЗначенияСвойствОбъектов.Значение ЕСТЬ NULL )
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Код";
                 
   Исполнитель = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Исполнитель по договору");              
   Ответственный = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Ответственный по договору");              
   Запрос.УстановитьПараметр("Свойство", Исполнитель);
   Запрос.УстановитьПараметр("Ответственный", Ответственный);
   Результат = Запрос.Выполнить().Выгрузить();
   ВТабличныйДокумент(Результат);
   //Выборка = Результат.Выбрать();
   //Пока Выборка.Следующий() Цикл
   //    ОбъектДоговор = Выборка.Ссылка.ПолучитьОбъект();
   //    ОбъектЗначениеИсполнитель = Выборка.Значение.ПолучитьОбъект();
   //    ОбъектЗначениеОтветственный = Выборка.СвойствоОтветственный.ПолучитьОбъект();// тут уже значение нету и ничего не получать
   //            
   //    
   //
   //КонецЦикла;
1 zippygrill
 
30.09.11
16:44
!
2 Жан Пердежон
 
30.09.11
16:45
Да
3 Axel2009
 
30.09.11
16:45
ВЫБОР КОГДА Ответственные.Ответственный = ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) ТОГДА ЗначенияСвойствОбъектов.Свойство ИНАЧЕ Ответственные.Ответственный КОНЕЦ
4 zippygrill
 
30.09.11
16:48
(3) нет ты не понял. обработкой хочу копировать все Исполнители в колонке Ответственные.
5 Axel2009
 
30.09.11
16:50
записать?
6 zippygrill
 
30.09.11
16:51
(5) аааа да
7 zippygrill
 
30.09.11
16:51
свойство договора :)
8 Axel2009
 
30.09.11
16:52
Если Не ЗначениеЗаполнено(Выборка.Ответственный) Тогда
МЗ = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
МЗ.Объект = Выборка.Ссылка
мз.свойство = выборка.СвойствоОтветственный;
мз.значение = выборка.Ответственный
мз.записать()
что сложного?
9 zippygrill
 
30.09.11
16:57
типо так?:

Выборка = Результат.Выбрать();
   Пока Выборка.Следующий() Цикл
   Если Не ЗначениеЗаполнено(Выборка.Ответственный) Тогда
       МЗ = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
       МЗ.Объект = Выборка.Ссылка
       мз.свойство = выборка.СвойствоОтветственный;
       мз.значение = выборка.Ответственный
       мз.записать()
   КонецЕсли;
   КонецЦикла;
10 zippygrill
 
04.10.11
11:56
а еще не подскажете как удалить свойство для всех договоров? :)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс