Имя: Пароль:
1C
 
Как обработать все документы и установить значение реквизита
0 УПП
 
23.03.06
10:17
Мне надо восстановить значения реквизиты у тех документов у которых есть реквихит ЗАВЕРШЕНИЕ, и изменить его на истина.
1 Андрюха
 
23.03.06
10:19
Выбирай все документы и через Метаданные смотри есть у них такой реквизит или нет.
2 УПП
 
23.03.06
10:19
я делаю так:
Для каждого Документ Из Документы Цикл
   
       Метаданные = Документ.Метаданные();
       Если ЕстьРеквизитДокумента(Документ.Завершение,Метаданные) Тогда
           
           Документ.Завершение = Истина;    
       КонецЕсли;
       
   КонецЦикла;

Пишет не найден метод Метаданные(), а почему?
3 УПП
 
23.03.06
10:20
(1) так?

   Для каждого Документ Из Документы Цикл
   
       Метаданные = Документ.Метаданные();
       Если ЕстьРеквизитДокумента(Метаданные.Завершение,Метаданные) Тогда
           
           Документ.Завершение = Истина;
           
       КонецЕсли;
       
   КонецЦикла;
4 УПП
 
23.03.06
10:21
а почему?
{Форма.Форма(6)}: Метод объекта не обнаружен (Метаданные)
       Метаданные = Документ.Метаданные();
5 vde69
 
23.03.06
10:26
А ты посмотри в отладчике тип значения Документ

подсказка, нужен еще один цикл
6 УПП
 
23.03.06
10:27
(5) Ну да, тип ДокументМенеджер, а у тетого типа нет такого метода Метаданные(). А как теперь получить тип ДокументОбъект?
7 Seed
 
23.03.06
10:32
2УПП: как переменную Документ объявляешь?
8 УПП
 
23.03.06
10:40
(7) Нет
9 УПП
 
23.03.06
10:43
Как перебрать документы с типом ДокументОбъект?
10 vde69
 
23.03.06
10:43
читай подсказку (5) или в поиск
11 Seed
 
23.03.06
10:51
Попробуй так:
      Метаданные = Документ.ПустаяСсылка().Метаданные();      
      Если ЕстьРеквизитДокумента("Завершение",Метаданные) Тогда
12 vasinok
 
23.03.06
10:58
Для Каждого Документ Из Метаданные.Документы Цикл
   Если ЕстьРеквизитДокумента("Завершение", Документ) Тогда
       ДокВыборка = Документы[Документ.Имя].Выбрать();
       Пока ДокВыборка.Следующий() Цикл
           ДокВыборка.Завершение = Истина;
       КонецЦикла;
   КонецЕсли;
КонецЦикла;
13 УПП
 
23.03.06
11:01
(12) ДокВыборка.Завершение = Истина; Поле объекта не доступно для записи
14 vasinok
 
23.03.06
11:04
ДокВыборка.ПолучитьОбъект().Завершение =
15 vde69
 
23.03.06
11:09
ладно, не буду мучить

   Для каждого элемент Из Документы Цикл
       Выборка = Элемент.Выбрать();
       Пока Выборка.Следующий() Цикл
           Если не Выборка.Проведен Тогда
               Продолжить;
           КонецЕсли;
16 agarych
 
23.03.06
11:14
А если попробывать через попытку... Если нет такого реквизита, то бдет отрабатывать исключение...
17 agarych
 
23.03.06
11:15
эээ... сорри, я думал про v7 разговор
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс