делаю в расширении.
в расходной накладной добавляю новую печатку ТОРГ12 , процедуру печать и добавить команду все это через директиву &после добавляю.
так вот нужно, перед печатью ТОРГ12 Валютный открыть маленькую форму, где пользователь выбирает валюту и Сам ставит курс, по этому курсу дальше будет идти пересчет всех итогов сумм документа и замена копеек на центы или наоборот , в зависимости от курса. так у меня случился ступор, в форме документа росход наклд, процедура
открываем форму, в открытой форме
а как дальше передавать курс и валюту чтобы сделать пересчет?
модуль менеджера документа
в расходной накладной добавляю новую печатку ТОРГ12 , процедуру печать и добавить команду все это через директиву &после добавляю.
так вот нужно, перед печатью ТОРГ12 Валютный открыть маленькую форму, где пользователь выбирает валюту и Сам ставит курс, по этому курсу дальше будет идти пересчет всех итогов сумм документа и замена копеек на центы или наоборот , в зависимости от курса. так у меня случился ступор, в форме документа росход наклд, процедура
&НаКлиенте
&После("Подключаемый_ВыполнитьКоманду")
Процедура Расш1_Подключаемый_ВыполнитьКоманду(Команда)
// TODO: Пересмотреть нестандартное внедрение в пользу стандартного.
//УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтотОбъект, Объект);
//// УНФ
//СтатистикаИспользованияФормКлиент.ДобавитьСтатистикуКомандПечати(ЭтотОбъект, Команда);
//// Конец УНФ
Если Команда.Имя = "ПодменюПечатьОбычное_ТОРГ12Валютный" Тогда
ОткрытьФорму("Документ.РасходнаяНакладная.Форма.Расш2_ФормаВыбораКурса");
КонецЕсли;
//ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
Показатьоткрываем форму, в открытой форме
&НаКлиенте
Процедура Ок(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ВалютаВыбора", ВалютаВыбора);
ПараметрыФормы.Вставить("КурсВалюты", КурсВалюты);
Закрыть(ПараметрыФормы);
КонецПроцедуры
Показатьа как дальше передавать курс и валюту чтобы сделать пересчет?
модуль менеджера документа
&После("Печать")
Процедура Расш1_Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)
Перем Ошибки;
// #Вставка
ВозможныеВарианты = Обработки.ПечатьТОРГ12Валютный.МатрицаВозможныхВариантов();
Для каждого СтрокаТаблицы Из ВозможныеВарианты Цикл
ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, Обработки.ПечатьТОРГ12Валютный.ИдентификаторПечатнойФормы(СтрокаТаблицы.ВключаяУслуги, СтрокаТаблицы.ИспользоватьФаксимиле));
Если ПечатнаяФорма <> Неопределено Тогда
ПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
ПечатнаяФорма.ТабличныйДокумент.КлючПараметровПечати = Обработки.ПечатьТОРГ12Валютный.КлючПараметровПечати();
ПечатнаяФорма.ПолныйПутьКМакету = Обработки.ПечатьТОРГ12Валютный.ПолныйПутьКМакету();
ПечатнаяФорма.СинонимМакета = Обработки.ПечатьТОРГ12Валютный.ПредставлениеПФ(СтрокаТаблицы.ВключаяУслуги, СтрокаТаблицы.ИспользоватьФаксимиле);
ДанныеОбъектовПечати = ДанныеДокументовРегУчет(МассивОбъектов, СтрокаТаблицы.ИспользоватьФаксимиле, Истина, Ошибки);
Обработки.ПечатьТОРГ12Валютный.СформироватьПФ(ПечатнаяФорма, ДанныеОбъектовПечати, ОбъектыПечати, СтрокаТаблицы.ВключаяУслуги);
КонецЕсли;
КонецЦикла;
// #КонецВставки
...
КонецПроцедуры
&После("ДобавитьКомандыПечати")
Процедура Расш1_ДобавитьКомандыПечати(КомандыПечати)
ЗначениеИдентификатора = "АктОбОказанииУслуг,ТОРГ12,ТОРГ12СУслугами,ТОРГ12Валютный,Обработка.ПечатьСчетФактура.СчетФактура,%1,Обработка.ПечатьСчетФактура.УниверсальныйПередаточныйДокумент,М15,ТТН,Накладная,НакладнаяСУслугами,СчетНаОплату,ГарантийныйТалон,БланкТоварногоНаполнения";
ЗначениеИдентификатора = СтрШаблон(ЗначениеИдентификатора, Обработки.ПечатьАктПередачиПрав.ИдентификаторПечатнойФормы());
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьСерийныеНомера") Тогда
ЗначениеИдентификатора = СтрЗаменить(ЗначениеИдентификатора, ",ГарантийныйТалон", "");
КонецЕсли;
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = ЗначениеИдентификатора;
КомандаПечати.Представление = ПечатьДокументовУНФ.ПредставлениеКомплектаДокументов();
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.ДополнитьКомплектВнешнимиПечатнымиФормами = Истина;
КомандаПечати.Порядок = 1;
ВозможныеВарианты = Обработки.ПечатьТОРГ12.МатрицаВозможныхВариантов();
Для каждого СтрокаТаблицы Из ВозможныеВарианты Цикл
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = Обработки.ПечатьТОРГ12.ИдентификаторПечатнойФормы(СтрокаТаблицы.ВключаяУслуги, СтрокаТаблицы.ИспользоватьФаксимиле);
КомандаПечати.Представление = Обработки.ПечатьТОРГ12.ПредставлениеПФ(СтрокаТаблицы.ВключаяУслуги, СтрокаТаблицы.ИспользоватьФаксимиле);
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.Порядок = 10;
Если СтрокаТаблицы.ИспользоватьФаксимиле Тогда
КомандаПечати.МестоРазмещения = "ПодменюПечатьФаксимиле";
КомандаПечати.Порядок = КомандаПечати.Порядок + 1;
КонецЕсли;
КонецЦикла;
// #Вставить
ВозможныеВарианты = Обработки.ПечатьТОРГ12Валютный.МатрицаВозможныхВариантов();
Для каждого СтрокаТаблицы Из ВозможныеВарианты Цикл
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = Обработки.ПечатьТОРГ12Валютный.ИдентификаторПечатнойФормы(СтрокаТаблицы.ВключаяУслуги, СтрокаТаблицы.ИспользоватьФаксимиле);
КомандаПечати.Представление = Обработки.ПечатьТОРГ12Валютный.ПредставлениеПФ(СтрокаТаблицы.ВключаяУслуги, СтрокаТаблицы.ИспользоватьФаксимиле);
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.Порядок = 11;
Если СтрокаТаблицы.ИспользоватьФаксимиле Тогда
КомандаПечати.МестоРазмещения = "ПодменюПечатьФаксимиле";
КомандаПечати.Порядок = КомандаПечати.Порядок + 1;
КонецЕсли;
КонецЦикла;
// #КонецВставить
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Идентификатор = "М15";
КомандаПечати.Представление = НСтр("ru = 'М15 (Накладная на отпуск материалов)'");
КомандаПечати.ПроверкаПроведенияПередПечатью = Ложь;
КомандаПечати.Порядок = 17;
КонецПроцедуры
ПоказатьПо теме из базы знаний
- Счет-фактура за поставщика, УПД за контрагента, ТОРГ-12 за контрагента, ТТН за поставщика. БП 3.0 + формы 534
- Форма Т-5 (Перевод на другую должность) и Т-5 (Изменение оклада) с формой дополнительных параметров. ЗУП 3.1
- [БСП] Внешняя печатная форма: как перед печатью выводить форму настроек
- Внешняя печатная форма с выводом формы настроек перед печатью (выбор подписантов). Работает на БСП 3.1.9, имеет 1 форму настроек, есть режим отладки, управляемые формы 8.3
- Как отредактировать документ перед печатью в 1С. Советы пользователям
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Форму документа вообще трогать не надо, ищи "УправлениеПечатью.СоздатьКоллекциюКомандПечати" и там смотри какие колонки есть у таблицы "КомандыПечати", например "Обработчик", где ты, например, можешь указать процедуру общего модуля, в которой будешь открывать свою форму и уже из своей формы передавать параметры дальше куда тебе надо
прописываю в обработке команды
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ПараметрыФормы = новый структура("основание", ПараметрКоманды);
Открытьформу("Документ.РасходнаяНакладная.Форма.ФормаДокумента", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник,ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);
КонецПроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот