|
Пустой табличный документ | ☑ | ||
---|---|---|---|---|
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
|
>Где накосячил?
Везде |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |