групповая печать УПД, , где данные формируются из 5-20 распред, в которых по 3-20 СФ
Добрый день!
Подскажите, где ошибка… 2 дня уже мучаюсь.
Есть документ «распред» в нем формируются ТЧ:
Заказ, клиент, накл, и СФ.
Создана форма по групповой печати: ТТН, ТН, и тд и УПД.
Если печатать из распр: УПД – то из в документа.распред – все данные по СФ – выходят.
НО, если печатать из формы групп печать, где данные формируются из 5-20 распред, в которых по 3-20 СФ, выдает ошибку.
В модуле распр:
В модуле менеджера - распр:
ОШИБКА:
Недостаточно фактических параметров
{Документ._Распределение.Форма.ФормаПакетнойПечати.Форма(43)}:ТабДокУПД = Документы._Распределение.СформироватьНесколькоУПД(МассивСФ, МассивНаправлений);
{Документ._Распределение.Форма.ФормаПакетнойПечати.Форма(98)}:ТабДок = ПечатьНаСервере();
Подскажите, где ошибка… 2 дня уже мучаюсь.
Есть документ «распред» в нем формируются ТЧ:
Заказ, клиент, накл, и СФ.
Создана форма по групповой печати: ТТН, ТН, и тд и УПД.
Если печатать из распр: УПД – то из в документа.распред – все данные по СФ – выходят.
НО, если печатать из формы групп печать, где данные формируются из 5-20 распред, в которых по 3-20 СФ, выдает ошибку.
В модуле распр:
&НаСервере
Функция ПечатьНаСервере () Экспорт
МассивНаправлений = Направление.НаправленияСборки.ВыгрузитьКолонку("Направление");
тзРаспределения = тРаспределения.Выгрузить(Новый Структура("Выбор", Истина),"Распределение");
МассивРаспределений = тзРаспределения.ВыгрузитьКолонку("Распределение");
МассивРеализаций = Новый Массив;
МассивСФ = Новый Массив;
МассивОбъектов = Новый Массив;
Для Каждого СтрТЧ ИЗ МассивРаспределений Цикл
Для Каждого СтрЗаказы ИЗ СтрТЧ.Заказы Цикл
МассивРеализаций.Добавить(СтрЗаказы.Накладная);
МассивСФ.Добавить(СтрЗаказы.СчетФактура);
КонецЦикла;
КонецЦикла;
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДокумент.ОтображатьЗаголовки = Ложь;
ТабДокумент.ОтображатьСетку = Ложь;
ТабДокумент.Защита = Истина;
Если ПечатьУПД Тогда
ТабДокУПД = Документы.Распределение.СформироватьНесколькоУПД(МассивСФ, МассивНаправлений);
ТабДокумент.Вывести(ТабДокУПД);
КонецЕсли;
Возврат ТабДокумент;
КонецФункции
&НаКлиенте
Процедура Печать (Команда)
Если Дата = '00010101' Тогда
Сообщить("Не указана дата");
Возврат;
КонецЕсли;
Если Не ВсеНаправления И Направление.Пустая() Тогда
Сообщить ("Не выбрано направление");
Возврат;
КонецЕсли;
Если тРаспределения.Количество() = 0 Тогда
Сообщить("Не заполнен список документов для печати");
Возврат;
КонецЕсли;
ЕстьДокументы = Ложь;
Для Каждого стр Из тРаспределения Цикл
Если стр.Выбор Тогда
ЕстьДокументы = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Не ЕстьДокументы Тогда
Сообщить("Не выбраны документы для печати");
Возврат;
КонецЕсли;
//ПечатьНаСервере();
ТабДок = ПечатьНаСервере();
//Вывод формы печать из БСП
ЭлементКоллекцииДляПечати = Новый Структура;
Для Каждого ИмяКолонки Из УправлениеПечатьюКлиентСервер.ИменаПолейКоллекцииПечатныхФорм() Цикл
ЭлементКоллекцииДляПечати.Вставить(ИмяКолонки);
КонецЦикла;
ЭлементКоллекцииДляПечати.ТабличныйДокумент = ТабДок;
ЭлементКоллекцииДляПечати.Экземпляров = 1;
КоллекцияПечатныхФорм = Новый Массив;
КоллекцияПечатныхФорм.Добавить(ЭлементКоллекцииДляПечати);
ПараметрыОткрытия = Новый Структура("КоллекцияПечатныхФорм, ИсточникДанных, ПараметрыПечати, СтруктураТипов, ДанныеДляПечати, ОбъектыПечати");
ПараметрыОткрытия.КоллекцияПечатныхФорм = КоллекцияПечатныхФорм;
ПараметрыОткрытия.ИсточникДанных = КоллекцияПечатныхФорм;
ПараметрыОткрытия.ПараметрыПечати = Новый Структура;
ПараметрыОткрытия.ПараметрыПечати.Вставить("ЗаголовокФормы", "Печать комплекта документов");
ПараметрыОткрытия.ПараметрыПечати.Вставить("ПереопределитьПользовательскиеНастройкиКоличества", Истина);
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ЭтаФорма, Строка(Новый УникальныйИдентификатор));
КонецПроцедуры
ПоказатьВ модуле менеджера - распр:
Функция СформироватьНесколькоУПД(МассивОбъектов, МассивНаправлений = "ВСЕ", ДанныеДляПечати, ОбъектыПечати) Экспорт
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабличныйДокумент.ОтображатьЗаголовки = Ложь;
ТабличныйДокумент.ОтображатьСетку = Ложь;
ТабличныйДокумент.Защита = Ложь;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УПД";
Для каждого Ссылка из МассивОбъектов Цикл
ТабДокументОбъекта = Обработки.ПечатьОбщихФорм.ЗаполнитьТабличныйДокументУПД(ТабличныйДокумент,ДанныеДляПечати,ОбъектыПечати);
Если ТабличныйДокумент.ВысотаТаблицы > 0 И ТабДокументОбъекта.ВысотаТаблицы > 0 Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ТабличныйДокумент.Вывести(ТабДокументОбъекта);
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов);
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "УПД") Тогда
МассивСчетовФактур = Новый Массив;
Для Каждого ДокСсылка из МассивОбъектов Цикл
ДокРаспределение = ДокСсылка.ПолучитьОбъект();
Для Каждого стр из ДокРаспределение.Заказы Цикл
Если стр.СчетФактура.ДокументОснование <> Неопределено Тогда
нуженУПД = стр.СчетФактура.Контрагент.ДокументыПечатьУПД=стр.СчетФактура.Контрагент.ДокументыПечатьТОРГ12;
Если стр.СчетФактура.Контрагент.ДОС_ДокументыПечатьУПД или нуженУПД Тогда
МассивСчетовФактур.Добавить(стр.СчетФактура);
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если МассивСчетовФактур.Количество() > 0 Тогда
СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивСчетовФактур);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"УПД",НСтр("ru='Универсальный передаточный документ (УПД)'"),
Обработки.ПечатьОбщихФорм.СформироватьПечатнуюФормуУПД(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
Иначе
ПустойТабДок = Новый ТабличныйДокумент;
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"УПД",
НСтр("ru='Универсальный передаточный документ (УПД)'"),
ПустойТабДок);
КонецЕсли;
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТОРГ12") Тогда
МассивНакладных = Новый Массив;
Для Каждого ДокСсылка из МассивОбъектов Цикл
ДокРаспределение = ДокСсылка.ПолучитьОбъект();
Для Каждого стр из ДокРаспределение.Заказы Цикл
Если стр.Накладная.Контрагент.ДОС_ДокументыПечатьТОРГ12 Тогда
МассивНакладных.Добавить(стр.Накладная);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если МассивНакладных.Количество() > 0 Тогда
СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивНакладных);
СинонимМакета = НСтр("ru='Товарная накладная без услуг (ТОРГ-12)'");
ПараметрыПечати.Вставить("ВыводитьУслуги",Ложь);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"ТОРГ12",
СинонимМакета,
Обработки.ПечатьОбщихФорм.СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати));
Иначе Сообщить ("В документе нет созданных накладных, печать невозможна. У контрагента, на вкладке: дополнительные данные, не проставлено печатать ТОРГ-12");
КонецЕсли;
КонецЕсли;
ПоказатьОШИБКА:
Недостаточно фактических параметров
{Документ._Распределение.Форма.ФормаПакетнойПечати.Форма(43)}:ТабДокУПД = Документы._Распределение.СформироватьНесколькоУПД(МассивСФ, МассивНаправлений);
{Документ._Распределение.Форма.ФормаПакетнойПечати.Форма(98)}:ТабДок = ПечатьНаСервере();
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
А что непонятного?
Вот у тебя есть: (За использование необязательных параметров перед обязательными - надо отдельно отрезать пальцы)
И вот у тебя есть вызов Считать умеешь? Ну, хотя бы до трёх...
Вот у тебя есть:
Функция СформироватьНесколькоУПД(МассивОбъектов, МассивНаправлений = "ВСЕ", ДанныеДляПечати, ОбъектыПечати) Экспорт
И вот у тебя есть вызов
ТабДокУПД = Документы.Распределение.СформироватьНесколькоУПД(МассивСФ, МассивНаправлений);
(2)
Синтаксис предлагает: МассивОбъектов, МассивНаправлений, ДанныеДляПечати, ОбъектыПечати
но ни как не данныеДляПечати, ОбъекыПечати и т.д.
Если в функцию &НаСервере
Функция ПечатьНаСервере () Экспорт
ТабДокУПД = Документы.ДОС_Распределение.СформироватьНесколькоУПД(МассивСФ, МассивНаправлений, ДанныеДляПечати, ОбъектыПечати);
то ошибка, : Переменная не определена (ДанныеДляПечати), Переменная не определена (ОбъектыПечати)
(За использование необязательных параметров перед обязательными - надо отдельно отрезать пальцы)
И вот у тебя есть вызов
И вот у тебя есть вызов
Синтаксис предлагает: МассивОбъектов, МассивНаправлений, ДанныеДляПечати, ОбъектыПечати
но ни как не данныеДляПечати, ОбъекыПечати и т.д.
Если в функцию &НаСервере
Функция ПечатьНаСервере () Экспорт
ТабДокУПД = Документы.ДОС_Распределение.СформироватьНесколькоУПД(МассивСФ, МассивНаправлений, ДанныеДляПечати, ОбъектыПечати);
то ошибка, : Переменная не определена (ДанныеДляПечати), Переменная не определена (ОбъектыПечати)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот