| 
    
            
         
         | 
    
    
  | 
Пустой табличный документ | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        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 
 | 
         
        Функция Печать() Экспорт
 
        возврат ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати); КонецФункции// Печать  | 
|||
| 
    2
    
        Never    
     03.12.18 
            ✎
    14:06 
 | 
         
        (1) Переменная не определена МассивОбъектов, Объекты печати(     
         | 
|||
| 
    3
    
        Lexey_    
     03.12.18 
            ✎
    14:08 
 | 
         
        (0) а откуда он будет непустой, если
 
        "ТабДокумент = Новый ТабличныйДокумент; возврат ТабДокумент;" ?  | 
|||
| 
    4
    
        Never    
     03.12.18 
            ✎
    14:12 
 | 
         
        (3) Если так то при печати выдает, недостаточно фактических параметров
 
        Функция Печать(МассивОбъектов, ОбъектыПечати) Экспорт ТабДокумент = ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати); возврат ТабДокумент; КонецФункции // Печать  | 
|||
| 
    5
    
        Lexey_    
     03.12.18 
            ✎
    14:27 
 | 
         
        (4) конечно недостаточно, ты же наверняка не передаешь их при вызове процедуры Печать()     
         | 
|||
| 
    6
    
        Never    
     03.12.18 
            ✎
    14:37 
 | 
         
        (5) Не подскажешь как передать?     
         | 
|||
| 
    7
    
        hhhh    
     03.12.18 
            ✎
    14:49 
 | 
         
        (6) посмотреть в типовой. Там штук 5 параметров. А ты почему=то 2 параметра пишешь.     
         | 
|||
| 
    8
    
        Never    
     03.12.18 
            ✎
    15:40 
 | 
         
        Перем МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода;
 
        Функция Печать() Экспорт ТабДокумент = ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати); возврат ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати); КонецФункции // Печать Значение не является значением объектного типа (Количество) ВыводитьКолонтитул = МассивОбъектов.Количество() = 1; Теперь это(  | 
|||
| 
    9
    
        dezss    
     03.12.18 
            ✎
    16:01 
 | 
         
        (0) Посмотри в типовой любую команду печати.
 
        Например, в документе.  | 
|||
| 
    10
    
        Полбатона    
     03.12.18 
            ✎
    16:12 
 | 
         
        >Где накосячил? 
 
        Везде  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |