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

Недостаточно фактических параметров

Автор happynattion, 03 дек 2018, 12:46

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

happynattion


Функция Печать() Экспорт

ТабДокумент = ПечатьУниверсальныхПередаточныхДокументов();

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

КонецФункции // Печать
Функция ОпределитьСчетФактураТребуются(МассивОбъектов)

ДокументыСчетФактураНеТребуется = Новый Массив;

Если НЕ ЗначениеЗаполнено(МассивОбъектов) Тогда
Возврат ДокументыСчетФактураНеТребуется;
КонецЕсли;

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

Результат = Запрос.ВыполнитьПакет();

// Отгрузки без перехода права собственности
Выборка = Результат[1].Выбрать();
Пока Выборка.Следующий() Цикл

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

КонецЦикла;

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

// Прочие реализации
Выборка = Результат[3].Выбрать();
Пока Выборка.Следующий() Цикл

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

КонецЦикла;

Возврат ДокументыСчетФактураНеТребуется;

КонецФункции

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

ТабДокумент = Новый ТабличныйДокумент;

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

ПервыйДокумент     = Истина;
ВыводитьКолонтитул = МассивОбъектов.Количество() = 1;
ТабДокументНеВыводитьНаПечать = Истина;
ДокументыСчетФактураНеТребуется = ОпределитьСчетФактураТребуются(МассивОбъектов);

Для каждого Ссылка Из МассивОбъектов Цикл

Если Не ПервыйДокумент Тогда
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;

РеквизитыДокумента = ОбщегоНазначения.ПолучитьЗначенияРеквизитов(Ссылка, "Ссылка, Дата, Номер, Организация,
|ВидОперации, Контрагент, ДоговорКонтрагента, ОтпускРазрешил, ГлавныйБухгалтер, Подразделение,
|ДоверенностьНомер, ДоверенностьДата, ДоверенностьВыдана, ДоверенностьЧерезКого");

ДанныеДокумента = Новый Структура();
ДанныеДокумента.Вставить("ДокументСсылка",    РеквизитыДокумента.Ссылка);
ДанныеДокумента.Вставить("Номер",              РеквизитыДокумента.Номер);
ДанныеДокумента.Вставить("Дата",              РеквизитыДокумента.Дата);
ДанныеДокумента.Вставить("Ссылка",   Документы.СчетФактураВыданный.ПустаяСсылка());
ДанныеДокумента.Вставить("ДокументОснование", РеквизитыДокумента.Ссылка);
ДанныеДокумента.Вставить("Организация",      РеквизитыДокумента.Организация);
ДанныеДокумента.Вставить("Контрагент",   РеквизитыДокумента.Контрагент);
ДанныеДокумента.Вставить("ДоговорКонтрагента",   РеквизитыДокумента.ДоговорКонтрагента);
ДанныеДокумента.Вставить("Руководитель",   РеквизитыДокумента.ОтпускРазрешил);
ДанныеДокумента.Вставить("ГлавныйБухгалтер",  РеквизитыДокумента.ГлавныйБухгалтер);
ДанныеДокумента.Вставить("ВалютаРегламентированногоУчета",  глЗначениеПеременной("ВалютаРегламентированногоУчета"));
ДанныеДокумента.Вставить("Подразделение",   РеквизитыДокумента.Подразделение);

Если ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьНомер) ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьДата)
ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьВыдана) ИЛИ ЗначениеЗаполнено(РеквизитыДокумента.ДоверенностьЧерезКого) Тогда
Доверенность = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'по доверенности №%1 от %2 выданной %3 %4'"),
РеквизитыДокумента.ДоверенностьНомер, Формат(РеквизитыДокумента.ДоверенностьДата, "ДЛФ=ДД"),
РеквизитыДокумента.ДоверенностьВыдана, РеквизитыДокумента.ДоверенностьЧерезКого);
ДанныеДокумента.Вставить("Доверенность", Доверенность);
КонецЕсли;

ВидДоговора = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РеквизитыДокумента.ДоговорКонтрагента, "ВидДоговора");
ПередачаНаРеализациюПоКомиссии = (ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером);
ДанныеДокумента.Вставить("ПередачаНаРеализациюПоКомиссии",  ПередачаНаРеализациюПоКомиссии);

СчетФактураТребуется = (ДокументыСчетФактураНеТребуется.Найти(Ссылка) = Неопределено);

СтруктураОтбораСчетаФактуры = Новый Структура;
СтруктураОтбораСчетаФактуры.Вставить("ПометкаУдаления", Ложь);

Если УчетНДС.ПечатьУниверсальногоПередаточногоДокумента(ДанныеДокумента, СчетФактураТребуется, ТабДокумент, СтруктураОтбораСчетаФактуры) = Неопределено Тогда
Продолжить;
КонецЕсли;

ТабДокумент.ВерхнийКолонтитул.Выводить = ВыводитьКолонтитул;

ТабДокументНеВыводитьНаПечать = Ложь;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка);

КонецЦикла;

Если ТабДокументНеВыводитьНаПечать Тогда
Макет = ПолучитьОбщийМакет("УниверсальныйПередаточныйДокумент");
ОбластьМакета = Макет.ПолучитьОбласть("Ошибка");
ТабДокумент.Вывести(ОбластьМакета);
КонецЕсли;



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

КонецФункции

Выдает ошибку Недостаточно фактических параметров (ПечатьУниверсальныхПередаточныхДокументов)
   ТабДокумент = <<?>>ПечатьУниверсальныхПередаточныхДокументов(); (Проверка: Толстый клиент (обычное приложение))


Не подскажите в чем может быть проблема ?

Z.spb

Автор, у вас напрочь отсутствует хоть какое-то представление о процедурах и функциях, о входных и выходных параметрах. То есть о самых базовых основах программирования. Куда ж Вы сразу в сложное то лезете? Вам бы основы-основ изучить сначала. Если у функции или процедуры есть параметры, то они должны быть обязательно указаны при вызове этой функции.
Функция ПечатьУниверсальныхПередаточныхДокументов(МассивОбъектов, ОбъектыПечати) - вот эти два параметра "МассивОбъектов" И "ОбъектыПечати" являются обязательными
А Вы её без параметров вообще вызываете
ТабДокумент = ПечатьУниверсальныхПередаточныхДокументов();

Советую почитать по теме "Основы алгоритмизации и программирования". Это не касается 1С, это общее для всех языков программирования.


happynattion

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

oleg-x

Цитата: happynattion от 03 дек 2018, 13:20
Вставляю туда параметры МассивОбъектов, ОбъектыПечати. Выдает что переменная не определена, где мне ее нужно определить?
Правильно, вы же не объяснили программе, что это и откуда взялось.
Как и писали выше, Вам необходимо изучить основы. Или же обратитесь к специалисту.
Если уж очень хочете сделать сами, то смотрите как вызывается у Вас печать, где ваши ручки не добрались.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Теги:

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

Рейтинг@Mail.ru

Поиск