Имя: Пароль:
1C
1C 7.7
v7: Пустой реквизит.
0 progaoff
 
05.04.18
14:01
СпрОбъектыДляПеч.ВыбратьСтроки();
    НомерМесяца = МесяцаГода.ТекущаяСтрока();    
    
       ТабОбъекты.ВыбратьСтроки();
Пока ТабОбъекты.ПолучитьСтроку() = 1 Цикл
  Если ДатаМесяц(ТабОбъекты.Объект.ДатаЗаменыЭКЛЗ) = НомерМесяца Тогда
    
Пока СпрОбъектыДляПеч.ПолучитьСтроку() = 1 Цикл
  
  Если СпрОбъектыДляПеч.Пометка = 1 Тогда
        СпрОбъектыДляПеч.Выбран = "+";
  Иначе    
        СпрОбъектыДляПеч.Выбран = "-";  
  КонецЕсли;
        
КонецЦикла;
КонецЕсли;
КонецЦикла;
Делаю такую процедуру, при обращении к Объекту, все реквизиты пустые, за исключением тех кто имеет ссылочный тип данных. Что не так делаю? Подскажите пожалуйста.
1 progaoff
 
05.04.18
14:01
ТабОбъекты - Имеется ввиду вот этот объект.
2 Lokli
 
05.04.18
14:20
ТабОбъекты - это таблица значений? Может покажешь код, где она заполняется?
3 progaoff
 
05.04.18
15:25
Процедура ЗаполнитьТабОбъекты()
    
    Если Контрагент.ВидКонтрагента <> Перечисление.ВидыКонтрагентов.ЧастноеЛицо Тогда
        ТабОбъекты.УдалитьСтроки();
        Объектов = 0;
        ОбслуживаемоеКоличество = 0;
        Если Выбран() = 1 Тогда
            СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании");
            СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());
            СпрОбъекты.ВыбратьЭлементы();
            Пока СпрОбъекты.ПолучитьЭлемент() = 1 Цикл
                Объектов = Объектов + 1;
                Если СпрОбъекты.НаОбслуживании.Получить(ИспользоватьДату()) = 1 Тогда
                    ТабОбъекты.НоваяСтрока();
                    ТабОбъекты.Ном = Объектов;
                    ТабОбъекты.Объект = СпрОбъекты.ТекущийЭлемент();
                    ТабОбъекты.СерийныйНомер = СпрОбъекты.СерийныйНомер.ЗаводскойНомер;
                    ТабОбъекты.СтрККМ = Шаблон("[СпрОбъекты.ВидОбъекта] [СпрОбъекты.Модель]");
    //                ТабОбъекты.Сотрудник = ФИО(СпрОбъекты.Сотрудник.Получить(ТекущаяДата()));
                    ТабОбъекты.Сотрудник = СпрОбъекты.Сотрудник.Получить(ТекущаяДата());
                    ТабОбъекты.Цена = СпрОбъекты.БалансоваяСтоимость;
                    ТабОбъекты.Телефоны = СокрЛП(СпрОбъекты.Телефон1);
                    ТабОбъекты.Контакты = СокрЛП(СпрОбъекты.КонтЛицо1);
                    ТабОбъекты.ДатаЗаменыЭКЛЗ =  СпрОбъекты.ДатаЗаменыЭКЛЗ;
                    ОбслуживаемоеКоличество = ОбслуживаемоеКоличество + 1;
                КонецЕсли;
            КонецЦикла;
        КонецЕсли;
4 progaoff
 
05.04.18
15:25
Добавил дату замены, теперь пишет Поле агрегатного объекта не обнаружено (ДатаЗамены)
5 Ёпрст
 
05.04.18
15:33
(0) для периодических реквизитов нужно или использовать Получить(НужнаяДата)  или перед этим всему объекту ИспользоватьДату()
6 Ёпрст
 
05.04.18
15:34
а код, конечно, в топку.
7 progaoff
 
05.04.18
15:34
(6) Весь?
8 Pit0n_08
 
05.04.18
15:43
А ТабОбъекты на форме висит? Она ж очищается ТабОбъекты.УдалитьСтроки(); и заполняется от СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());
9 Ёпрст
 
05.04.18
15:46
И еще, колонки в ТЗ твоей, типизированы ?
Покажи код создания колонок
10 progaoff
 
05.04.18
15:49
(8) Да есть на форме
11 progaoff
 
05.04.18
15:56
(9) Процедура СоздатьТЗ()  
    СпрОбъектыДляПеч.НоваяКолонка("Выбран","Строка","1",,,5);
    СпрОбъектыДляПеч.НоваяКолонка("Объект",,,,,10);
    СпрОбъектыДляПеч.НоваяКолонка("ЗавНомер",,,,,10);
    СпрОбъектыДляПеч.НоваяКолонка("Механик",,,,,30);
    СпрОбъектыДляПеч.НоваяКолонка("ДатаЗаменыЭКЛЗ","Дата",,,,,20);
КонецПроцедуры
12 Pit0n_08
 
05.04.18
15:58
Так что на форме ТабОбъекты или СпрОбъектыДляПеч?
13 progaoff
 
05.04.18
16:00
(12) ТабОбъекты
14 progaoff
 
05.04.18
16:01
(13) И второе тоже там есть
15 progaoff
 
05.04.18
16:07
Поле агрегатного объекта не обнаружено (ДатаЗамены)
Как с этим быть?)
16 HawkEye
 
05.04.18
18:42
(0) для чего цикл в цикле, если во вложенном ты не используешь данные внешного, при этом выбратьстроки() вложенного - за вешним, что за бред?!

у тебя при первом срабатывании условия, весь внутрений цикл выполниться и больше ничего выполняться не будет....
17 HawkEye
 
05.04.18
18:43
(15) никак с этим не быть, смириться, ну нет такого поля у объекта
18 HawkEye
 
05.04.18
18:44
(7) ";" - можешь оставить...
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.