Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Пустой табличный документ

Пустой табличный документ
Я
   Never
 
03.12.18 - 14:03
Добрый день. Пытаюсь сделать УПД ВПФ из встроенной. При печати выводится пустой табличный документ. Где накосячил?
Функция Печать() Экспорт
    
    ТабДокумент = Новый ТабличныйДокумент;
    
    возврат ТабДокумент;
    
КонецФункции// Печать

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

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

    |ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Ссылка
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |ГДЕ
    |    РеализацияТоваровУслуг.Ссылка В(&МассивОбъектов)
    |    И РеализацияТоваровУслуг.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СКомиссионером)
    |;
    |
    ////////////////////////////////////////////////////////////////////////////////

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

    Выборка = Результат[1].Выбрать();
    Пока Выборка.Следующий() Цикл
        
        УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(Выборка.Дата, Выборка.Организация);
           Если НЕ ЗначениеЗаполнено(УчетнаяПолитика) Тогда
            ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
        ИначеЕсли НЕ УчетнаяПолитика.НачислятьНДСПоОтгрузке Тогда
            ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
        ИначеЕсли НЕ Выборка.ЕстьНДС И УчетнаяПолитика.УСН Тогда
            ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
        КонецЕсли;
         
    КонецЦикла;
    
    // Отгрузки по договорам комиссии

    Выборка = Результат[2].Выбрать();
    Пока Выборка.Следующий() Цикл
        ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
    КонецЦикла;
    
    // Прочие реализации

    Выборка = Результат[3].Выбрать();
    Пока Выборка.Следующий() Цикл
        
        УчетнаяПолитика = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитикиРегл(Выборка.Дата, Выборка.Организация);
           Если НЕ ЗначениеЗаполнено(УчетнаяПолитика) Тогда
            ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
        ИначеЕсли НЕ Выборка.ЕстьНДС И УчетнаяПолитика.УСН Тогда
            ДокументыСчетФактураНеТребуется.Добавить(Выборка.Ссылка);
        КонецЕсли;
        
    КонецЦикла;
    
    Возврат ДокументыСчетФактураНеТребуется;
    
КонецФункции

Функция ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати)
    
     ТабДокумент = Новый ТабличныйДокумент;
    
    // Устанавливаем параметры печати и колонтитулы

    ТабДокумент.ОриентацияСтраницы     = ОриентацияСтраницы.Ландшафт;
    ТабДокумент.ПолеСверху                = 12;
    ТабДокумент.ПолеСлева                 = 0;
    ТабДокумент.ПолеСнизу                 = 0;
    ТабДокумент.ПолеСправа                = 0;
    ТабДокумент.АвтоМасштаб         = Истина;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент";
    
    ПервыйДокумент                = Истина;
    ВыводитьКолонтитул         = МассивОбъектов.Количество() = 1;
    ТабДокументНеВыводитьНаПечать     = Истина;
    ДокументыСчетФактураНеТребуется = ОпределитьСчетФактураТребуются(МассивОбъектов);
    
    Для каждого Ссылка Из МассивОбъектов Цикл
            
        Если Не ПервыйДокумент Тогда
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ПервыйДокумент = Ложь;
        НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
        
        РеквизитыДокумента = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Ссылка, "Ссылка, Дата, Номер, Организация,
            |ВидОперации, Контрагент, ДоговорКонтрагента, ОтпускРазрешил, ГлавныйБухгалтер, Подразделение, 
            |ДоверенностьНомер, ДоверенностьДата, ДоверенностьВыдана, ДоверенностьЧерезКого");
            
        ДанныеДокумента = Новый Структура();
        ДанныеДокумента.Вставить("ДокументСсылка",                    РеквизитыДокумента.Ссылка);
        ДанныеДокумента.Вставить("Номер",                             РеквизитыДокумента.Номер);
        ДанныеДокумента.Вставить("Дата",                              РеквизитыДокумента.Дата);
        ДанныеДокумента.Вставить("Ссылка",                               Документы.СчетФактураВыданный.ПустаяСсылка());
        ДанныеДокумента.Вставить("ДокументОснование",                 РеквизитыДокумента.Ссылка);
        ДанныеДокумента.Вставить("Организация",                         РеквизитыДокумента.Организация);
        ДанныеДокумента.Вставить("Контрагент",                           РеквизитыДокумента.Контрагент);
        ДанныеДокумента.Вставить("ДоговорКонтрагента",                   РеквизитыДокумента.ДоговорКонтрагента);
        ДанныеДокумента.Вставить("Руководитель",                       РеквизитыДокумента.ОтпускРазрешил);
        ДанныеДокумента.Вставить("ГлавныйБухгалтер",                  РеквизитыДокумента.ГлавныйБухгалтер);
        ДанныеДокумента.Вставить("ВалютаРегламентированногоУчета",  глЗначениеПеременной("ВалютаРегламентированногоУчета"));
        ДанныеДокумента.Вставить("Подразделение",                       РеквизитыДокумента.Подразделение);
        
        Если ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьНомер) ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьДата)
            ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьВыдана) ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьЧерезКого) Тогда
            Доверенность = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
                НСтр("ru = 'по доверенности №%1 от %2 выданной %3 %4'"),
                РеквизитыДокумента.ДоверенностьНомер, Формат(РеквизитыДокумента.ДоверенностьДата, "ДЛФ=ДД"),
                РеквизитыДокумента.ДоверенностьВыдана, РеквизитыДокумента.ДоверенностьЧерезКого);
            ДанныеДокумента.Вставить("Доверенность", Доверенность);
        КонецЕсли;
        
        ВидДоговора = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РеквизитыДокумента.ДоговорКонтрагента, "ВидДоговора");
        ПередачаНаРеализациюПоКомиссии = (ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);
        ДанныеДокумента.Вставить("ПередачаНаРеализациюПоКомиссии",  ПередачаНаРеализациюПоКомиссии);
        
        СчетФактураТребуется = (ДокументыСчетФактураНеТребуется.Найти(Ссылка) = Неопределено);
        
        СтруктураОтбораСчетаФактуры = Новый Структура;
        СтруктураОтбораСчетаФактуры.Вставить("ПометкаУдаления", Ложь);
        
        Если УчетНДС.ПечатьУниверсальногоПередаточногоДокумента(ДанныеДокумента, СчетФактураТребуется, ТабДокумент, СтруктураОтбораСчетаФактуры) = Неопределено Тогда
            Продолжить;
        КонецЕсли;
        
        ТабДокумент.ВерхнийКолонтитул.Выводить = ВыводитьКолонтитул;
        
        ТабДокументНеВыводитьНаПечать = Ложь;
        УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка);
        
    КонецЦикла;
    
Если ТабДокументНеВыводитьНаПечать Тогда
        Макет = ПолучитьМакет("ун");
        ОбластьМакета = Макет.ПолучитьОбласть("Ошибка");
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли;


    
    Возврат ТабДокумент;
    
КонецФункции
 
 
   Полбатона
 
1 - 03.12.18 - 14:05
Функция Печать() Экспорт
    
    
    
    возврат ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати);
    
КонецФункци// Печать
   Never
 
2 - 03.12.18 - 14:06
(1) Переменная не определена МассивОбъектов, Объекты печати(
   Lexey_
 
3 - 03.12.18 - 14:08
(0) а откуда он будет непустой, если
"ТабДокумент = Новый ТабличныйДокумент;
    
возврат ТабДокумент;"
?
   Never
 
4 - 03.12.18 - 14:12
(3) Если так то при печати выдает, недостаточно фактических параметров



Функция Печать(МассивОбъектов, ОбъектыПечати) Экспорт
    
    ТабДокумент = ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати);
    
    возврат ТабДокумент;
    
КонецФункции// Печать
   Lexey_
 
5 - 03.12.18 - 14:27
(4) конечно недостаточно, ты же наверняка не передаешь их при вызове процедуры Печать()
   Never
 
6 - 03.12.18 - 14:37
(5) Не подскажешь как передать?
   hhhh
 
7 - 03.12.18 - 14:49
(6) посмотреть в типовой. Там штук 5 параметров. А ты почему=то 2 параметра пишешь.
   Never
 
8 - 03.12.18 - 15:40
Перем МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода;
Функция Печать() Экспорт
    
    ТабДокумент = ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати);
    
    возврат ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати);
    
КонецФункции// Печать



 Значение не является значением объектного типа (Количество)
    ВыводитьКолонтитул         = МассивОбъектов.Количество() = 1;

Теперь это(
   dezss
 
9 - 03.12.18 - 16:01
(0) Посмотри в типовой любую команду печати.
Например, в документе.
   Полбатона
 
10 - 03.12.18 - 16:12
>Где накосячил?
Везде
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует