1с 7.7 Ошибка при получении реквизита субконто из справочника

1. P1rate 26.04.17 11:52 Сейчас в теме
Добрый день. в 7.7 не силён. такой вопрос. Делаю простой отчёт в 1с7. Пытаюсь получить реквизит субконто из справочника:
ДатаНачала = Ит.Субконто(ВидыСубконто.РасходыБудущихПериодов).ДатаНачалаСписания;
И получаю ошибку :
ДатаНачала = Ит.Субконто(ВидыСубконто.РасходыБудущихПериодов).ДатаНачалаСписания;
{Отчет.новый2.Форма.Модуль(14)}: Значение не представляет агрегатный объект (ДатаНачалаСписания)

Если же я это значение (Ит.Субконто(ВидыСубконто.РасходыБудущихПериодов).ДатаНачалаСписания) просто вставляю в ячейку таблицы как выражение, то значение выводит нужные данные в таблице. В чём косяк?
По теме из базы знаний
Найденные решения
8. v3rter 26.04.17 12:53 Сейчас в теме
Понятно: в момент времени, когда Вы обращаетесь к Ит, он еще не создан. Объект создается здесь
Ит = СоздатьОбъект("БухгалтерскиеИтоги"); 


То есть надо перенести строку ниже, как минимум - сюда:
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "97",,, 1,, "С"); 
ДатаНачала = НачМесяца(Ит.Субконто().ДатаНачалаСписания); 


А по логике Вашего кода строка напрашивается в цикл:

Пока Ит.ПолучитьСубконто(ВидыСубконто.РасходыБудущихПериодов) = 1 Цикл
ДатаНачала = НачМесяца(Ит.Субконто().ДатаНачалаСписания);
// Получили дату, теперь надо ререшить, что с ней делать дальше
Сформировать_Колонки(Ит, Таб, "Субконто1");

КонецЦикла;


Вот здесь есть http://1c-pro.ru/threads/vidy-subkonto.47036/ чей-то пример кода с этим субконто
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
7. P1rate 26.04.17 12:49 Сейчас в теме
Процедура Сформировать_Колонки(Ит, Таб, Стр)   
	
ДатаНачала  = НачМесяца(Ит.Субконто().ДатаНачалаСписания);  

	Таб.ВывестиСекцию(Стр+"|Начало");
	Ит.ВыбратьСчета(1);
	Пока Ит.ПолучитьСчет() = 1 Цикл
		Таб.ПрисоединитьСекцию(Стр+"|Счет");
	КонецЦикла;
	Таб.ПрисоединитьСекцию(Стр+"|Итог");
КонецПроцедуры

Процедура Сформировать()
	Таб = СоздатьОбъект("Таблица");
	Таб.ИсходнаяТаблица("Сформировать");
	Ит = СоздатьОбъект("БухгалтерскиеИтоги");
	Ит.ИспользоватьСубконто(ВидыСубконто.РасходыБудущихПериодов,, 1);
	Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "97",,, 1,, "С");
	Таб.ВывестиСекцию("Заголовок");
	Сформировать_Колонки(Ит, Таб, "Шапка");
	Таб.Опции(0,0,Таб.ВысотаТаблицы(),0);
	Ит.ВыбратьСубконто(ВидыСубконто.РасходыБудущихПериодов);
	Пока Ит.ПолучитьСубконто(ВидыСубконто.РасходыБудущихПериодов) = 1 Цикл 
		                                          
	       Сформировать_Колонки(Ит, Таб, "Субконто1");
	КонецЦикла;
	Сформировать_Колонки(Ит, Таб, "Подвал");
	Таб.ТолькоПросмотр(1);
	Таб.Показать("Сформировать","");
КонецПроцедуры
//}}БУХГАЛТЕРСКИЙ ЗАПРОС  

Процедура ПриОткрытии()

//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать)
	ВыбНачПериода = НачалоПериодаБИ();
	ВыбКонПериода = КонецПериодаБИ();
//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА

КонецПроцедуры
Показать
2. rimma_n 160 26.04.17 11:58 Сейчас в теме
Посмотрите в отладчике, какой объект получается Ит.Субконто(ВидыСубконто.РасходыБудущихПериодов)
3. P1rate 26.04.17 12:25 Сейчас в теме
(2)Так а как посмотреть, если у меня отчёт не формируется? Сразу же при нажатии формировать ругается на ошибку и отчёт не формирует. Т.е. я не дохожу до точки останова, чтобы посмотреть тип.
4. Cooler 22 26.04.17 12:29 Сейчас в теме
(3) Запустите 1С в режиме "Отладчик", откройте свой отчет и поставьте точку останова на строку перед ошибкой. Потом F11 - запуск в режиме "Предприятие".

Ну, а дальше "Табло" и вводите то, что надо увидеть.
5. P1rate 26.04.17 12:38 Сейчас в теме
(4)Спасибо) По факту никакого значения не получаю. Ввожу ДатаНачала = Ит.Субконто().ДатаНачалаСписания; Получаю ответ : ДатаНачала =
10. Cooler 22 26.04.17 13:07 Сейчас в теме
(5)
Ввожу ДатаНачала = Ит.Субконто().ДатаНачалаСписания; Получаю ответ : ДатаНачала =
По сути вам уже ответили, но на будущее учтите: так вы никогда ничего не увидите.

Надо запрашивать либо "Ит.Субконто().ДатаНачалаСписания" (только без кавычек), либо имя переменной (например, ДатаНачала), но это только если ее значение уже вычислено раньше.
6. v3rter 26.04.17 12:44 Сейчас в теме
А что в Ит? Понятно, что итоги, а на момент обращения они вообще получены? В
(2)
именно это и советовали: поставьте точку останова на эту строку, запустите и посмотрите после остановки в табло что в Ит, а затем - что в Ит.Субконто(ВидыСубконто.РасходыБудущихПериодов)
8. v3rter 26.04.17 12:53 Сейчас в теме
Понятно: в момент времени, когда Вы обращаетесь к Ит, он еще не создан. Объект создается здесь
Ит = СоздатьОбъект("БухгалтерскиеИтоги"); 


То есть надо перенести строку ниже, как минимум - сюда:
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "97",,, 1,, "С"); 
ДатаНачала = НачМесяца(Ит.Субконто().ДатаНачалаСписания); 


А по логике Вашего кода строка напрашивается в цикл:

Пока Ит.ПолучитьСубконто(ВидыСубконто.РасходыБудущихПериодов) = 1 Цикл
ДатаНачала = НачМесяца(Ит.Субконто().ДатаНачалаСписания);
// Получили дату, теперь надо ререшить, что с ней делать дальше
Сформировать_Колонки(Ит, Таб, "Субконто1");

КонецЦикла;


Вот здесь есть http://1c-pro.ru/threads/vidy-subkonto.47036/ чей-то пример кода с этим субконто
9. P1rate 26.04.17 13:05 Сейчас в теме
11. P1rate 26.04.17 13:27 Сейчас в теме
(8)И ещё небольшой вопрос, как теперь полученную дату передать в процедуру Сформировать_Колонки(Ит, Таб, "Субконто1");? Ибо выводить её надо в секции, которая формируется в Сформировать_Колонки(Ит, Таб, "Субконто1");
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот