Имя: Пароль:
1C
1С v8
Ошибка Поле объекта недоступно для записи Получено
0 shamsiaka
 
05.03.15
15:41
Создал процедуру В Договора Купли продажи ТМЦ (Форма Списка) 1с8.1


Процедура ДействияФормыПереПроверитьДоговора(Кнопка)
      Выборка = Документы.ДоговорКуплиПродажиТМЦ.Выбрать();
      Пока Выборка.Следующий()
      Цикл
          ПризнакДоговора = Выборка.Представление;
              ВсегоСтрокНоменклатур = Выборка.Список.Количество();
             Для jj=0 по ВсегоСтрокНоменклатур-1
          Цикл
              ТекДокумент = Выборка.Список.Получить(jj);
          ТекДокумент.Получено = 0;
?? Ошибка  Поле объекта недоступно для записи Получено
          ТекДокумент.Записать();
              КонецЦикла;
      КонецЦикла;            
КонецПроцедуры
1 Анютик
 
05.03.15
15:42
Объект получить нужно
2 ДенисЧ
 
05.03.15
15:42
Возьми бумажку А4, ручку и напишии на ней 100 раз фразу "Я всегда буду получать объект из ссылки для изменения!"

После того, как напишешь, используй метод ПолучитьОбъект()
3 DexterMorgan
 
05.03.15
15:42
выходит что недоступно
4 DexterMorgan
 
05.03.15
15:44
обход документов доставил, такого не видел =)
5 GROOVY
 
05.03.15
15:49
(4)  Да, отличный показатель. ТС не въезжает что такое "выборка" и зачем она нужна. А судя по вопросу и то, что такое "Объект" и "ссылка".
6 shamsiaka
 
05.03.15
15:54
Документ.ДоговорКуплиПродажиТМЦ.Форма.ФормаСписка(21)}: Метод объекта не обнаружен (ПолучитьОбъект)
                  ТекДокумент.ПолучитьОбъект();
7 D_E_S_131
 
05.03.15
15:56
Вероятно "Выборка.Список.Получить(jj)" получает строку ТЧ, из которой только потом нужно получить документ.
8 shamsiaka
 
05.03.15
16:01
Пробовал по всякому но метод ПолучитьОбъект() не доступен
9 D_E_S_131
 
05.03.15
16:01
А словами объяснить можно что и в каком объекте надо изменить?
10 ДенисЧ
 
05.03.15
16:01
Сообщить(ТипЗнч(ТекДокумент));
11 shamsiaka
 
05.03.15
16:07
Колонка ТЧ Получено (Это кол-во полученного товара по приходным накладным в договоре список номенклатуры)
нужно сначало обнулить , а потом обход накладных документов и подсчет количества товаров по номенклатуре
12 shamsiaka
 
05.03.15
16:09
Сообщить(ТипЗнч(ТекДокумент));



Документ табличная часть строка: Список
13 salvator
 
05.03.15
16:10
Обнуление:

Процедура ДействияФормыПереПроверитьДоговора(Кнопка)
      Выборка = Документы.ДоговорКуплиПродажиТМЦ.Выбрать();
      Пока Выборка.Следующий() Цикл
          ПризнакДоговора = Выборка.Представление;
          ТекДокумент = Выборка.Ссылка.ПолучитьОбъект();
          Для Каждого СтрТЧ ИЗ ТекДокумент.Список Цикл
             СтрТЧ.Получено = 0;
          КонецЦикла;
          ТекДокумент.Записать();
      КонецЦикла;            
КонецПроцедуры
14 shamsiaka
 
05.03.15
16:22
Для Каждого СтрТЧ ИЗ ТекДокумент.Список Цикл
             СтрТЧ.Получено = 0;
          КонецЦикла;

ТекДокумент.Список    Поле объекта не обнаружено (Список)
15 salvator
 
05.03.15
16:26
(14) Какое имя у табличной части документа?
16 shamsiaka
 
05.03.15
16:28
Вот так Документ Открывается

ДокОбразец  = Выборка.ПолучитьОбъект().ПолучитьФорму();
ДокОбразец.Открыть();

но не открывая документ обнулить значение поля ТЧ
17 shamsiaka
 
05.03.15
16:28
Список
18 vicof
 
05.03.15
16:34
(17) докажи
19 salvator
 
05.03.15
16:35
(17) Скинь сюда свою процедуру исправленную.
20 shamsiaka
 
05.03.15
16:40
Процедура ДействияФормыПереПроверитьДоговора(Кнопка)
  Выборка = Документы.ДоговорКуплиПродажиТМЦ.Выбрать();
  Пока Выборка.Следующий()
  Цикл
      ПризнакДоговора = Выборка.Представление;
      ВсегоСтрокНоменклатур = Выборка.Список.Количество();
      ДокОбразец = Неопределено;
      Для jj=0 по ВсегоСтрокНоменклатур-1
      Цикл
       ТекДокумент = Выборка.Список.Получить(jj);
       Для Каждого СтрТЧ ИЗ ТекДокумент.Список Цикл
           СтрТЧ.Получено = 0;
       КонецЦикла;
       ТекДокумент.Записать();
      ДокОбразец  = Выборка.ПолучитьОбъект).ПолучитьФорму();
       ДокОбразец.Открыть();
       ДокОбразец.Активизировать();
       ДокОбразец.ТекущийЭлемент.Доступность = Истина;
       //Сообщить(ТипЗнч(ТекДокумент));
      //ТекДокумент.ПолучитьОбъект();              
      //ТекДокумент.Получено = "0";    
    КонецЦикла;
              
    ВыборкаН = Документы.НоменклатураПоступление.Выбрать();
     Пока ВыборкаН.Следующий()
              Цикл
                  Если ВыборкаН.ДоговорКорреспондента=ПризнакДоговора
                    Тогда
                         // Получить количество строк Табличной части документа
                         ВсегоСтрок = ВыборкаН.Список.Количество();
                         //Сообщить("Выборка.ДоговорКорреспондента = "+Выборка.ДоговорКорреспондента,СтатусСообщения.Важное);                  
                       Если ВсегоСтрок>0 Тогда
                              // Проход по списку табличной части документа Номенклатура Поступление
                              //Сообщить("ВсегоСтрок "+ВсегоСтрок,СтатусСообщения.Важное);                        
                              Для ii=0 по ВсегоСтрок-1
                            Цикл
                                  Выбор     = ВыборкаН.Список.Получить(ii);
                                Товар     = Выбор.Номенклатура;
                                Цена      = Выбор.Цена;
                                Колво     = Выбор.Количество;
                                  //Сообщить(" "+товар+" "+цена+" "+колво,СтатусСообщения.Важное);
                                  // Проход по списку табличной части Договора Купли Продажи ТМЦ                        
                                Для jj=0 по ВсегоСтрокНоменклатур-1
                                Цикл
                                     ТекДокумент = Выборка.Список.Получить(jj);
                                      //Сообщить("ТекДокумент.Номенклатура "+ТекДокумент.Номенклатура,СтатусСообщения.Важное);                            
                                    Если ТекДокумент.Номенклатура = Товар Тогда
                                         КолвоВСпец = ТекДокумент.Получено;
                                             //Сообщить(" "+ТекДокумент.Номенклатура+" "+КолвоВСпец+" "+колво,СтатусСообщения.Важное);
//                                         ТекДокумент.Получено   = КолвоВСпец + Колво;                                          
                                           //Сообщить("ТекДокумент.Количество "+ТекДокумент.Количество,СтатусСообщения.Важное);                                  
                                    КонецЕсли;
                                  КонецЦикла;
                            КонецЦикла;                        
                       КонецЕсли;
                    КонецЕсли;                
              КонецЦикла;        
          КонецЦикла;
    
    
        //Если ЭлементыФормы.ДокументСписок.ТекущиеДанные = Неопределено Тогда
        //     Сообщить("Возврат = ",СтатусСообщения.Важное);
        //     //Возврат;
        // Иначе
        //    //Договора = ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка;
        //    ОткрытьЖурналПроводок(ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка);            
        //    //ОткрытьДоговораКуплиПродажиТМЦ(ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка);
        //    Договора = ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка;
        //    //Сообщить("ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка = "+Договора,СтатусСообщения.Важное);
        //    Договора = ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка.Представление;
        //    Сообщить("ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка.Представление = "+Договора,СтатусСообщения.Важное);            
        //    ФормаСписка =Документы.ДоговорКуплиПродажиТМЦ.ПолучитьФорму("ФормаДокумента");
        //    ФормаСписка.Открыть;
        //КонецЕсли;
        //  
    

КонецПроцедуры
21 salvator
 
05.03.15
16:42
(20) И где ты изменил ее?
22 shamsiaka
 
05.03.15
16:44
с 11 по 13 строке
23 shamsiaka
 
05.03.15
16:48
Salvator Добав поле "Получено"  в списке номенклатур ДоговорКуплиПродажиТМЦ и провер
24 alle68
 
05.03.15
16:51
(22) Смешно, но, боюсь, не всем.
Ты хоть понял о чём код в (13)?
25 salvator
 
05.03.15
16:52
(23) Ты внятно можешь описать задачу? Кроме того, что тебе надо обнулить поле "Количество" я нихрена не понял.
26 shamsiaka
 
05.03.15
17:03
Обнулить нужно поле Получено , а не Количество
Все это Для контроля прихода материалов по договору согласно списка
27 salvator
 
05.03.15
17:04
(26) Ну да, "Получено", опечатался. А дальше что?
28 shamsiaka
 
06.03.15
07:34
Salvator-у Спасибо
Недоглядел Ссылку в ТекДокумент = Выборка.Ссылка.ПолучитьОбъект();
29 1976vas
 
06.03.15
08:10
(28) Посмотри уроки Чистова, там в 4-м уроке все озвучено, что такое выборка, что такое ссылка и что такое объект и связи.
2 + 2 = 3.9999999999999999999999999999999...