Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
30 окт 2024, 05:21

Как объявить ДокОбъект

Автор divaterwch, 28 окт 2024, 10:47

0 Пользователей и 1 гость просматривают эту тему.

divaterwch

Добрый день! В функции объявлял ДокОбъект в параметрах, но появилась надобность объявления в самой функции. Однако если писать ДокОбъект = Документы.ВедомостьНаВыплатуЗарплатыВБанк, то везде где используется ДокОбъект, например, ссылка или дата, выходит ошибка "Поле объекта не обнаружено". Не понимаю в чем затуп, подскажите


Функция ВывестиДанныеДокумента(МассивОбъектов, ОбъектыПечати)     
          //Шапка
     ТабДок = Новый ТабличныйДокумент;   
     Макет = ПолучитьМакет("ПФ_РасчетныйСчетИСумма");
     ДокОбъект = Документы.ВедомостьНаВыплатуЗарплатыВБанк;   
     
     ОблШапка = Макет.ПолучитьОбласть("Шапка");
     
     ОблШапка.Параметры.Дата = ДокОбъект.Дата;   //ДатаРеестра
     ТабДок.Вывести(ОблШапка);
     
     Запрос = Новый Запрос;
     Запрос.Текст =
     "ВЫБРАТЬ
    |    Состав.НомерСтроки КАК НомерСтроки,
    |    Состав.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
    |    t1.Сумма     КАК Сумма
    |ИЗ
    |    Документ.ВедомостьНаВыплатуЗарплатыВБанк.Состав КАК Состав
    |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |            СУММА(ВедомостьПрочихДоходовВБанкВыплаты.КВыплате) КАК Сумма,
    |            ВедомостьПрочихДоходовВБанкВыплаты.ИдентификаторСтроки КАК ИдентификаторСтроки
    |        ИЗ
    |            Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК ВедомостьПрочихДоходовВБанкВыплаты
    |       
    |        СГРУППИРОВАТЬ ПО
    |            ВедомостьПрочихДоходовВБанкВыплаты.ИдентификаторСтроки) КАК t1
    |        ПО (Состав.ИдентификаторСтроки = t1.ИдентификаторСтроки)
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизическихЛиц.СрезПоследних(&ДатаДок, ) КАК ФИОФизическихЛицСрезПоследних
    |        ПО (Состав.ФизическоеЛицо = ФИОФизическихЛицСрезПоследних.ФизическоеЛицо)
    |ГДЕ
    |    Состав.Ссылка = &ДокСсылка
    |УПОРЯДОЧИТЬ ПО
    |    Состав.НомерСтроки";
     
     Запрос.УстановитьПараметр("ДокСсылка",ТабДок.Ссылка);
     Запрос.УстановитьПараметр("ДатаДок",ТабДок.Дата);
     РЗ = Запрос.Выполнить();
     Выборка = РЗ.Выбрать();
     ИтогоСтрок = Выборка.Количество();
         
     ИтогоСумма = 0;
     ОблСтрока = Макет.ПолучитьОбласть("Стр");
     
     //НомерЛицевогоСчета = Выборка.НомерЛицевогоСчета;
     
     Пока Выборка.Следующий() Цикл
         Если Выборка.НомерЛицевогоСчета = Выборка.НомерЛицевогоСчета Тогда
         ИтогоСумма = ИтогоСумма + Выборка.Сумма;
         ОблСтрока.Параметры.Заполнить(Выборка);
         ОблСтрока.Параметры.ДокументСерия = Выборка.ДокументСерия;//СтрЗаменить(Выборка.ДокументСерия," ","");
          ТабДок.Вывести(ОблСтрока);   
         КонецЕсли;
     КонецЦикла;
     
     //Подвал
     ОблПодвал = Макет.ПолучитьОбласть("Подвал");
     ОблПодвал.Параметры.ИтогоСтрок = ИтогоСтрок;
     ОблПодвал.Параметры.ИтогоСумма = ИтогоСумма;
     
     ТабДок.Вывести(ОблПодвал);
         
КонецФункции

Максим75

divaterwch, так сам Объект надо получить. скорее всего в МассивОбъектов живут сами объекты, вот оттуда и надо получить.

divaterwch

Максим75,
ВыбДок = Документы.ВедомостьНаВыплатуЗарплатыВБанк; 
   
   
ДокОбъект = ВыбДок.ПолучитьОбъект();

Если писать так, то ошибка "Метод объекта не обнаружен (ПолучитьОбъект)"

Максим75

divaterwch, ПолучитьОбъект Вы можете из Ссылки, а так не работает, как у Вас.
еще раз посмотрите, что Вы передаете в качестве параметров в функцию. вот явно там у Вас должны быть ссылки, а из ссылки уже получаете объект. Можно даже не объявлять его ВыбДок = Документы.ВедомостьНаВыплатуЗарплатыВБанк;

Вы откуда эту функцию вызываете ВывестиДанныеДокумента? из самого документа или из внешней обработки?

divaterwch

Максим75, из внешней обработки

Максим75

divaterwch, что в МассивОбъектов и ОбъектыПечати Вы передаете?

Похожие темы (5)

Рейтинг@Mail.ru

Поиск