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

Допечатать что-либо в табличный документ, передаваемый как параметр процедуры

Автор Vdeg, 24 мая 2016, 12:29

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

Vdeg

Хочу объединить бухгалтерскую и налоговую справку в один табличный документ, для этого хочу передать табличный документ с бухгалтерской справкой в процедуру печати налоговой справки. Но программа ругается (

Цитировать{Документ.ОперацияБух.МодульОбъекта(225)}: Значение не является значением объектного типа (Вывести)
   ТабДокумент.Вывести(ШапкаДокумента);

при первой же попытке вывести новую секцию в передаваемый (в параметре) табличный документ.

Что тут не так? Как можно решить этот вопрос?

Функция ПечатьНалоговойСправки(ТабличныйДокумент = Неопределено)

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ОперацияБух.Организация,
| ОперацияБух.Номер,
| ОперацияБух.Дата,
| ОперацияБух.Содержание
|ИЗ
| Документ.ОперацияБух КАК ОперацияБух
|ГДЕ
| ОперацияБух.Ссылка = &Ссылка";

Док = Запрос.Выполнить().Выбрать();
Док.Следующий();

Запрос = Новый Запрос();
Запрос.УстановитьПараметр("Регистратор", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| НалоговыйДвиженияССубконто.НомерСтроки КАК НомерСтроки,
| НалоговыйДвиженияССубконто.СчетДт,
| НалоговыйДвиженияССубконто.СубконтоДт1,
| НалоговыйДвиженияССубконто.СубконтоДт2,
| НалоговыйДвиженияССубконто.СубконтоДт3,
| НалоговыйДвиженияССубконто.СчетКт,
| НалоговыйДвиженияССубконто.СубконтоКт1,
| НалоговыйДвиженияССубконто.СубконтоКт2,
| НалоговыйДвиженияССубконто.СубконтоКт3,
| НалоговыйДвиженияССубконто.Организация,
| НалоговыйДвиженияССубконто.Сумма,
| НалоговыйДвиженияССубконто.КоличествоДт,
| НалоговыйДвиженияССубконто.КоличествоКт,
| НалоговыйДвиженияССубконто.Содержание,
| НалоговыйДвиженияССубконто.ВидУчетаДт,
| НалоговыйДвиженияССубконто.ВидУчетаКт
|ИЗ
| РегистрБухгалтерии.Налоговый.ДвиженияССубконто(, , Регистратор = &Регистратор, , ) КАК НалоговыйДвиженияССубконто
|
|УПОРЯДОЧИТЬ ПО
| НомерСтроки";

ВыборкаДвижений = Запрос.Выполнить().Выбрать();

Макет = ПолучитьМакет("НалоговаяСправка");

// Получаем области макета для вывода в табличный документ.
ШапкаДокумента   = Макет.ПолучитьОбласть("Шапка");
ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
СтрокаТаблицы    = Макет.ПолучитьОбласть("СтрокаТаблицы");
ПодвалТаблицы    = Макет.ПолучитьОбласть("ПодвалТаблицы");
ПодвалДокумента  = Макет.ПолучитьОбласть("Подвал");

Если ТабличныйДокумент = Неопределено Тогда
ТабДокумент = Новый ТабличныйДокумент;

// Зададим параметры макета по умолчанию.
ТабДокумент.ПолеСверху              = 10;
ТабДокумент.ПолеСлева               = 0;
ТабДокумент.ПолеСнизу               = 0;
ТабДокумент.ПолеСправа              = 0;
ТабДокумент.РазмерКолонтитулаСверху = 10;
ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;

// Загрузим настройки пользователя.
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОперацияБух_НалоговаяСправка";
КонецЕсли;

// Выведем шапку документа.
СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Док.Организация, Док.Дата);

ШапкаДокумента.Параметры.Организация    = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
ШапкаДокумента.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Док);
ШапкаДокумента.Параметры.ДатаДокумента  = Формат(Док.Дата, "ДЛФ=D");
ШапкаДокумента.Параметры.Содержание     = Док.Содержание;

ТабДокумент.Вывести(ШапкаДокумента);

// Выведем заголовок таблицы.
ТабДокумент.Вывести(ЗаголовокТаблицы);

// Выведем строки документа.
Пока ВыборкаДвижений.Следующий() Цикл

СтрокаТаблицы.Параметры.Заполнить(ВыборкаДвижений);

АналитикаДт = Строка(ВыборкаДвижений.СубконтоДт1) + Символы.ПС
            + Строка(ВыборкаДвижений.СубконтоДт2) + Символы.ПС
                    + Строка(ВыборкаДвижений.СубконтоДт3);

АналитикаКт = Строка(ВыборкаДвижений.СубконтоКт1) + Символы.ПС
            + Строка(ВыборкаДвижений.СубконтоКт2) + Символы.ПС
                    + Строка(ВыборкаДвижений.СубконтоКт3);

СтрокаТаблицы.Параметры.АналитикаДт = АналитикаДт;
СтрокаТаблицы.Параметры.АналитикаКт = АналитикаКт;

// Проверим, помещается ли строка с подвалом.
СтрокаСПодвалом = Новый Массив;
СтрокаСПодвалом.Добавить(СтрокаТаблицы);
СтрокаСПодвалом.Добавить(ПодвалТаблицы);
СтрокаСПодвалом.Добавить(ПодвалДокумента);

Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда

// Выведем подвал таблицы.
ТабДокумент.Вывести(ПодвалТаблицы);

// Выведем разрыв страницы.
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();

// Выведем заголовок таблицы.
ТабДокумент.Вывести(ЗаголовокТаблицы);

КонецЕсли;

ТабДокумент.Вывести(СтрокаТаблицы);

КонецЦикла;

// Выведем подвал таблицы.
ТабДокумент.Вывести(ПодвалТаблицы);

// Выведем подвал документа.
ПодвалДокумента.Параметры.РасшифровкаПодписиИсполнителя = ?(НЕ ЗначениеЗаполнено(Ответственный), "", ОбщегоНазначения.ФамилияИнициалыФизЛица(Ответственный.ФизЛицо));
ТабДокумент.Вывести(ПодвалДокумента);

Возврат ТабДокумент;

КонецФункции // ПечатьНалоговойСправки()
Житель района Восточное Дегунино (Москва, Россия)
Мой блог программиста

Rasty

Цитата: Vdeg от 24 мая 2016, 12:29

    Если ТабличныйДокумент = Неопределено Тогда
        ТабДокумент = Новый ТабличныйДокумент;
       
        // Зададим параметры макета по умолчанию.
        ТабДокумент.ПолеСверху              = 10;
        ТабДокумент.ПолеСлева               = 0;
        ТабДокумент.ПолеСнизу               = 0;
        ТабДокумент.ПолеСправа              = 0;
        ТабДокумент.РазмерКолонтитулаСверху = 10;
        ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
       
        // Загрузим настройки пользователя.
        ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОперацияБух_НалоговаяСправка";

    КонецЕсли;
а должно быть

    Если ТабличныйДокумент = Неопределено Тогда
        ТабличныйДокумент = Новый ТабличныйДокумент;
       
        // Зададим параметры макета по умолчанию.
        ТабличныйДокумент .ПолеСверху              = 10;
        ТабличныйДокумент .ПолеСлева               = 0;
        ТабличныйДокумент .ПолеСнизу               = 0;
        ТабличныйДокумент .ПолеСправа              = 0;
        ТабличныйДокумент .РазмерКолонтитулаСверху = 10;
        ТабличныйДокумент .ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
       
        // Загрузим настройки пользователя.
        ТабличныйДокумент .ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ОперацияБух_НалоговаяСправка";

и т.д.
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Vdeg

Rasty, не совсем понял, что именно изменено в Вашем варианте кода.
Добавлено: 24 мая 2016, 12:50


Всё, я сам понял, спасибо! :zebzdr:

Я перепутал имя переменной, глупейшая ошибка.
Житель района Восточное Дегунино (Москва, Россия)
Мой блог программиста

Теги:

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

Рейтинг@Mail.ru

Поиск