|
Из формы через флаг вывести УПД и ТОРГ12 вместе | ☑ | ||
---|---|---|---|---|
0
kodblack
03.07.23
✎
17:14
|
Добрый всем! подскажите как реализовать.
Имеется документ Распределение содержит: ЗаказЫ, РеализациИ и СФ-Ы. Из списка документов печать работает. Имеется форма с флагами: ТТН, ТН, УПД, ТОРГ12 т.д. &НаСервере Функция ПечатьНаСервере() Экспорт МассивНаправлений = Направление.НаправленияСборки.ВыгрузитьКолонку("Направление"); тзРаспределения = тРаспределения.Выгрузить(Новый Структура("Выбор", Истина),"Распределение"); МассивРаспределений = тзРаспределения.ВыгрузитьКолонку("Распределение"); МассивРеализаций = Новый Массив; МассивСФ = Новый Массив; Для Каждого СтрТЧ ИЗ МассивРаспределений Цикл Для Каждого СтрЗаказы ИЗ СтрТЧ.Заказы Цикл МассивРеализаций.Добавить(СтрЗаказы.Накладная); МассивСФ.Добавить(СтрЗаказы.СчетФактура); КонецЦикла; КонецЦикла; ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.АвтоМасштаб = Истина; ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет; ТабДокумент.ОтображатьЗаголовки = Ложь; ТабДокумент.ОтображатьСетку = Ложь; ТабДокумент.Защита = Истина; ПараметрыПечати = Новый Структура ; ПараметрыПечати.Вставить("ВыводитьУслуги",Ложь); ОбъектыПечати = Новый Структура("ЗаголовокФормы"); Если ПечатьУПД Тогда СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивСФ); ТабДокУПД = УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"УПД",НСтр("ru='Универсальный передаточный документ (УПД)'"), Обработки.ПечатьОбщихФорм.СформироватьПечатнуюФормуУПД(СтруктураТипов, ОбъектыПечати, ПараметрыПечати)); ТабДокумент.Вывести(ТабДокУПД); КонецЕсли; Если ПечатьТОРГ12 Тогда СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивРаспределений); ТабДокТОРГ12 = Обработки.ПечатьОбщихФорм.СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати); ТабДокумент.Вывести(ТабДокТОРГ12); КонецЕсли; Возврат ТабДокумент; КонецФункции &НаКлиенте Процедура Печать(Команда) Если Дата = '00010101' Тогда Сообщить("Не указана дата"); Возврат; КонецЕсли; Если Не ВсеНаправления И Направление.Пустая() Тогда Сообщить ("Не выбрано направление"); Возврат; КонецЕсли; Если тРаспределения.Количество() = 0 Тогда Сообщить("Не заполнен список документов для печати"); Возврат; КонецЕсли; ЕстьДокументы = Ложь; Для Каждого стр Из тРаспределения Цикл Если стр.Выбор Тогда ЕстьДокументы = Истина; Прервать; КонецЕсли; КонецЦикла; Если Не ЕстьДокументы Тогда Сообщить("Не выбраны документы для печати"); Возврат; КонецЕсли; ТабДок = ПечатьНаСервере(); //Вывод формы печать из БСП ЭлементКоллекцииДляПечати = Новый Структура; Для Каждого ИмяКолонки Из УправлениеПечатьюКлиентСервер.ИменаПолейКоллекцииПечатныхФорм() Цикл ЭлементКоллекцииДляПечати.Вставить(ИмяКолонки); КонецЦикла; ЭлементКоллекцииДляПечати.ТабличныйДокумент = ТабДок; ЭлементКоллекцииДляПечати.Экземпляров = 1; КоллекцияПечатныхФорм = Новый Массив; КоллекцияПечатныхФорм.Добавить(ЭлементКоллекцииДляПечати); ПараметрыОткрытия = Новый Структура("КоллекцияПечатныхФорм,ИсточникДанных,ПараметрыПечати"); ПараметрыОткрытия.КоллекцияПечатныхФорм = КоллекцияПечатныхФорм; ПараметрыОткрытия.ИсточникДанных = КоллекцияПечатныхФорм; ПараметрыОткрытия.ПараметрыПечати = Новый Структура; ПараметрыОткрытия.ПараметрыПечати.Вставить("ЗаголовокФормы", "Печать комплекта документов"); ПараметрыОткрытия.ПараметрыПечати.Вставить("ПереопределитьПользовательскиеНастройкиКоличества", Истина); ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ЭтаФорма, Строка(Новый УникальныйИдентификатор)); КонецПроцедуры Пытаюсь выловить ошибку, разными способами. УПД ругается на: Значение не является значением объектного типа (Свойство) {Обработка.ПечатьОбщихФорм.МодульМенеджера(2916)}:Если ПараметрыПечати.Свойство("ДополнитьПолученнымиСчетамиФактуры") {Документ.Распределение.Форма.ФормаПакетнойПечати.Форма(70)}:ТабДокУПД = Обработки.ПечатьОбщихФорм.СформироватьПечатнуюФормуУПД(СтруктураТипов, ОбъектыПечати, ПараметрыПечати = Неопределено); {Документ.Распределение.Форма.ФормаПакетнойПечати.Форма(118)}:ТабДок = ПечатьНаСервере(); ТОРГ12 на: Метод объекта не обнаружен (ПолучитьДанныеДляПечатнойФормыТОРГ12) {Обработка.ПечатьОбщихФорм.МодульМенеджера(245)}:ДанныеДляПечати = МенеджерОбъекта.ПолучитьДанныеДляПечатнойФормыТОРГ12(ПараметрыПечати, СтруктураОбъектов.Значение); {Документ.Распределение.Форма.ФормаПакетнойПечати.Форма(79)}:ТабДокТОРГ12 = Обработки.ПечатьОбщихФорм.СформироватьПечатнуюФормуТОРГ12(СтруктураТипов, ОбъектыПечати, ПараметрыПечати); {Документ.Распределение.Форма.ФормаПакетнойПечати.Форма(118)}:ТабДок = ПечатьНаСервере(); |
|||
1
kodblack
03.07.23
✎
17:24
|
УПД Если ПечатьУПД Тогда
СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивСФ); КоллекцияПечатныхФорм = Новый Массив; ТабДокУПД = УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"УПД",НСтр("ru='Универсальный передаточный документ (УПД)'"), Обработки.ПечатьОбщихФорм.СформироватьПечатнуюФормуУПД(СтруктураТипов, ОбъектыПечати, ПараметрыПечати)); ТабДокумент.Вывести(ТабДокУПД); КонецЕсли; Ошибка: Метод объекта не обнаружен (НайтиПоЗначению) {ОбщийМодуль.УправлениеПечатью.Модуль(173)}:Элемент = ОбъектыПечати.НайтиПоЗначению(Ссылка); {ИзмененияФорм Обработка.ПечатьОбщихФорм.МодульМенеджера(560)}:УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, {Обработка.ПечатьОбщихФорм.МодульМенеджера(3021)}:ЗаполнитьТабличныйДокументУПД(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати); {Документ.Распределение.Форма.ФормаПакетнойПечати.Форма(69)}:ТабДокУПД = УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"УПД",НСтр("ru='Универсальный передаточный документ (УПД)'"), {Документ.Распределение.Форма.ФормаПакетнойПечати.Форма(113)}:ТабДок = ПечатьНаСервере(); |
|||
2
kodblack
03.07.23
✎
17:26
|
Элемент = ОбъектыПечати.НайтиПоЗначению(Ссылка);
в отладчике - попадает СФ выданая №№№№ 01.02.2023, но дальше падает Метод объекта не обнаружен (НайтиПоЗначению) я дак понимаю какого то параметра не хватает ((( |
|||
3
Мимохожий Однако
04.07.23
✎
09:03
|
Какая конфигурация? Открой покровы. Возможно, велосипед с ходулями не нужен.
В УТ11 есть пакетная печать . По кнопке Печать "Комплект документов ..." |
|||
4
kodblack
04.07.23
✎
09:06
|
(3) УТ 11.5
|
|||
5
kodblack
04.07.23
✎
09:09
|
(3) в Форме - попадают очень много документов распределения: где в каждом распределении есть: МНОГО! Заказов, Реа-ции, СФ-ы.
по мимо УПД, ТОРГ12, еще печатаются, ТН, ТТН, маршрутные листы и много чего еще. все работает, кроме стандартного механизма УПД и ТОРГ12 |
|||
6
Мимохожий Однако
04.07.23
✎
09:11
|
(5) В форме есть как минимум три вида настроек для печати. Если уж колхозить, то добавить возможность сохранения или выбора дополнительной настройки.
Например, сталкивался с задачей, когда надо печатать комплекты документов на разные принтеры. |
|||
7
kodblack
04.07.23
✎
09:14
|
(6) как в моем случае реализовать УПД и ТОРГ12, подскажите.
|
|||
8
Мимохожий Однако
04.07.23
✎
09:21
|
Расскажи подробнее про документ Распределение.) Он типовой ещё?
|
|||
9
kodblack
04.07.23
✎
09:24
|
(8) нет. самописный. необходим для создания маршрутов по доставке.
https://disk.yandex.ru/i/phsXIYMU6oJFEg |
|||
10
kodblack
04.07.23
✎
09:30
|
||||
11
Мимохожий Однако
04.07.23
✎
09:39
|
(9) Мои советы вряд ли помогут. Вместо я бы использовал обработку и регистр сведений, чтобы не ломать и использовать типовые настройки. У тебя уже пошёл процесс другим путём.
PS. Сколько программистов, столько и вариантов реализации. |
|||
12
kodblack
04.07.23
✎
09:47
|
(11) согласен. Но у меня уже построен такой процесс.
при чем: Элемент = ОбъектыПечати.НайтиПоЗначению(Ссылка); в отладчике, при печати из списка документа, так же в ссылку попадает СФ выданная №123 01.01.2023, но проходит дальше: Элемент = ОбъектыПечати.НайтиПоЗначению(Ссылка); Если Элемент = Неопределено Тогда ИмяОбласти = "Документ_" + Формат(ОбъектыПечати.Количество() + 1, "ЧН=; ЧГ="); ОбъектыПечати.Добавить(Ссылка, ИмяОбласти); Иначе ИмяОбласти = Элемент.Представление; КонецЕсли; а при печати из формы печати, падает: Метод объекта не обнаружен (НайтиПоЗначению) {ОбщийМодуль.УправлениеПечатью.Модуль(173)}:Элемент = ОбъектыПечати.НайтиПоЗначению(Ссылка); {ИзмененияФорм Обработка.ПечатьОбщихФорм.МодульМенеджера(560)}:УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, {Обработка.ПечатьОбщихФорм.МодульМенеджера(3021)}:ЗаполнитьТабличныйДокументУПД(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати); |
|||
13
Мимохожий Однако
04.07.23
✎
10:35
|
Поставь точку останови и проверь какой тип значения и заполнения. А дальше как обычно- долго думать)
|
|||
14
kodblack
04.07.23
✎
10:38
|
(13) ОбъектыПечати по сути не заполнены, а как их передать .....
|
|||
15
kodblack
04.07.23
✎
15:30
|
решено: ОбъектыПечати = Новый СписокЗначений;
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |