периодический реквизит

1. IRON PRIEST 18.01.11 19:34 Сейчас в теме
и снова здравствуйте !

подскажите как узнать является ли реквизит периодическим?

пробно сделал код

Код
Процедура Сформировать()
   Таб=СоздатьОбъект("Таблица");
   вид="Сотрудники";
   Спр=Метаданные.Справочник(вид);
   Для к=1 по спр.Реквизит() Цикл
      ном=спр.Реквизит(к);
      вид=ном.периодический;
      Таб.Вывестисекцию("секция_1");
   КонецЦикла;
   Таб.Показать();
КонецПроцедуры
Показать полностью


там где периодический ставится 1

а если вы пишу

Код
Если Ит.Субконто().СчетЗатрат.Периодический=1 Тогда           //|
            СчетЗатратНач=Ит.Субконто().СчетЗатрат.Получить(НачДата); //|
            СчетЗатратКон=Ит.Субконто().СчетЗатрат.Получить(КонДата); //|
         Иначе                                                         //|счет затрат в БУ
            СчетЗатратНач=Ит.Субконто().СчетЗатрат;                   //|
            СчетЗатратКон=Ит.Субконто().СчетЗатрат;                   //|
         КонецЕсли;
Показать полностью


то матюкается Поле агрегатного объекта не обнаружено (Периодический)
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. IRON PRIEST 19.01.11 16:25 Сейчас в теме
еще вопрос))

вот весь код
//*******************************************
Процедура Приоткрытии()
	НачДата=НачалоПериодаБИ();
	КонДата=КонецПериодаБИ();
	БУ=1;
КонецПроцедуры
//*******************************************
Процедура Сформировать()
	Таб=СоздатьОбъект("Таблица");
	ТЗ=СоздатьОбъект("ТаблицаЗначений");
	ТЗ.НоваяКолонка("ОС");
	ТЗ.НоваяКолонка("СчетНач");
	ТЗ.НоваяКолонка("СчетКон");
	ТЗ.НоваяКолонка("СчетЗатратНач");
	ТЗ.НоваяКолонка("СчетЗатратКон");
	ТЗ.НоваяКолонка("ИнвНом");
	ТЗ.НоваяКолонка("ДтНач");
	ТЗ.НоваяКолонка("КтНач");
	ТЗ.НоваяКолонка("ДтКон");
	ТЗ.НоваяКолонка("КтКон");
	ТЗ.НоваяКолонка("ДатаВвода");
	ТЗ.НоваяКолонка("Срок");
	Если БУ=1 Тогда
		Счет="10,11,12,13";
	Иначе
		Счет="ОС";
	КонецЕсли;
	Ит=СоздатьОбъект("БухгалтерскиеИтоги");
	Ит.ИспользоватьСубконто("НеоборотныеАктивы");
	Ит.ВключатьСубсчета(-1,);
	Ит.ВыполнитьЗапрос(НачДата,КонДата,Счет);
	Ит.ВыбратьСчета();
	Пока Ит.ПолучитьСчет()=1 Цикл
		Ит.ВыбратьСубконто();
		Пока Ит.ПолучитьСубконто()=1 Цикл
			ОС=Ит.Субконто().Наименование; //объект
			Если БУ=1 Тогда
				Попытка                                           //|
					Если ПустоеЗначение(Ит.Субконто().Счет.Получить(НачДата))=1 Тогда //|
					    СчетНач=Ит.Субконто().Счет.Получить(КонДата);
					Иначе
						СчетНач=Ит.Субконто().Счет.Получить(НачДата);
					КонецЕсли;
					СчетКон=Ит.Субконто().Счет.Получить(КонДата); //|
				Исключение                                        //|счет учета в БУ
					СчетНач=Ит.Субконто().Счет;                   //|
					СчетКон=Ит.Субконто().Счет;                   //|
				КонецПопытки;                                     //|
			Иначе
				СчетНач=Ит.Счет; //|
				СчетКон=Ит.Счет; //|счет с НУ
			КонецЕсли;
			Попытка 
				СчетЗатратНач=Ит.Субконто().СчетЗатрат.Получить(НачДата); //|
				СчетЗатратКон=Ит.Субконто().СчетЗатрат.Получить(КонДата); //|
			Исключение                                                    //|счет затрат в БУ
				СчетЗатратНач=Ит.Субконто().СчетЗатрат;                   //|
				СчетЗатратКон=Ит.Субконто().СчетЗатрат;                   //|
			КонецПопытки;
			Попытка                                                //|
				ИнвНом=Ит.Субконто().ИнвенНомер.Получить(КонДата); //| инвентарный номер
			Исключение                                             //|
				ИнвНом=Ит.Субконто().ИнвенНомер;                   //|
			КонецПопытки;                                          //|
			ДтНач=Ит.СНД();
			КтНач=Ит.СНК();
			ДтКон=Ит.СКД();
			КтКон=Ит.СКК();
			ДатаВвода=Ит.Субконто().ДатаВвода; // дата ввода в эксплуатацию
			Попытка                                                             //|
				Срок=Ит.Субконто().СрокИспользования.Получить(НачДата); 		//|
			Исключение                                                       	//| срок использования
				Срок=Ит.Субконто().СрокИспользования;                   		//|
			КонецПопытки;                                                  		//|
			ТЗ.НоваяСтрока();
			ТЗ.ОС=ОС;
			ТЗ.СчетНач=СчетНач;
			ТЗ.СчетКон=СчетКон;
			ТЗ.СчетЗатратНач=СчетЗатратНач;
			ТЗ.СчетЗатратКон=СчетЗатратКон;
			ТЗ.ИнвНом=ИнвНом;
			ТЗ.ДтНач=ДтНач;
			ТЗ.КтНач=КтНач;
			ТЗ.ДтКон=ДтКон;
			ТЗ.КтКон=КтКон;
			ТЗ.ДатаВвода=ДатаВвода;
			ТЗ.Срок=Срок;
		КонецЦикла;
	КонецЦикла;
	Таб.ВывестиСекцию("Шапка");
	ТЗ.Свернуть("ИнвНом,ОС,СчетНач,СчетКон,СчетЗатратНач,СчетЗатратКон","ДтНач,КтНач,ДтКон,КтКон,ДатаВвода,Срок");
  	ТЗ.Сортировать("СчетНач, ОС");
   	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку()=1 Цикл;
		Таб.ВывестиСекцию("Секция_1");
	КонецЦикла;
	Таб.ВывестиСекцию("итог1");
	Таб.ВывестиСекцию("Шапка2");
	ТЗ.Свернуть("СчетНач,СчетКон","ДтНач,КтНач,ДтКон,КтКон,ДатаВвода,Срок");
  	ТЗ.Сортировать("СчетНач");
   	ТЗ.ВыбратьСтроки();
	Пока ТЗ.ПолучитьСтроку()=1 Цикл;
		Таб.ВывестиСекцию("Секция_2");
	КонецЦикла;
   	Таб.ВывестиСекцию("итог2");
   	Таб.Опции(0,,6,,);
   	Таб.Показать();
	Таб.ТолькоПросмотр(1);
КонецПроцедуры    
Показать


как сделать вторую сводную таблицу по счетам? т.е. сейчас мне счета выводятся вроде как правильно, но итоги на конец естественно неправильные. можно это както организовать, а то никаких мыслей по этому поводу даже нет
2. VUN 38 18.01.11 22:51 Сейчас в теме
Периодический - это свойство объекта Метаданных. Так что надо найти реквизит в Метаданных.
3. IRON PRIEST 19.01.11 00:14 Сейчас в теме
а по другому никак нельзя проверку сделать?

зы: буду пытаться лепить метаданные
4. VUN 38 19.01.11 02:34 Сейчас в теме
Можно попробовать засунуть в Попытку
СчетЗатратНач=Ит.Субконто().СчетЗатрат.Получить(НачДата);
а в Исключение добавить
СчетЗатратНач=Ит.Субконто().СчетЗатрат;
5. IRON PRIEST 19.01.11 13:00 Сейчас в теме
работает машина! спасибо!

а вот такая фишка. например объект введен в эксплуатацию в 2009 году, а отчет я формирую за период 2008-2009 год. в результате СчетНач = " ". как сделать так чтобы если на начало периода счет =" ", тогда бралось значение на конец отчета

Если Ит.Субконто().Счет.Получить(НачДата) = " " Тогда
СчетНач=Ит.Субконто().Счет.Получить(КонДата);
Иначе
СчетНач=Ит.Субконто().Счет.Получить(НачДата);
КонецЕсли;

пробывал и "", и " " и =0 и <0. всеравно показывает " "
6. VUN 38 19.01.11 13:42 Сейчас в теме
Если ПустоеЗначение(Ит.Субконто().Счет.Получить(НачДата)) = 1 Тогда
IRON PRIEST; +1 Ответить
7. IRON PRIEST 19.01.11 15:16 Сейчас в теме
Оставьте свое сообщение

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