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