Вывод диалога с выбором данных из справочника и даты перед открытием макета печатной формы

1. Arkadag 23.02.19 17:07 Сейчас в теме
Приветствую, форумчане!
1с8.3.6, УФ, самописная

Имеется некий макет печати Акта выполненных работ. В Акте имеются параметры "Город" и "ДатаСоставления"

Как можно перед печатью вывести немодальное окно, где будет спрашиваться выбор города из справочника и дату составления акта???

ВвестиДату, ВвестиСтроку и т.д. крайне неудобны. Ну я не смог их понять, а нужно именно, чтобы запрашивалось 2-а параметра, которые потом бы смогли уйти на макет.

Кроме того, нужно выбрать именно из справочника значение города

Печеть расположена в модуле Менеджера

Функция ПечатьАктаПриемаУслугПоУстановкеИзделия(МассивОбъектов, ОбъектыПечати)
    
    ////ОткрытьФорму("Документ.Заказ.Форма.ФормаОтбора");
    //ДатаАкта = ТекущаяДата();
    //Если
    //    ВвестиДату(ДатаАкта, "Введите дату подписания акта", ЧастиДаты.Дата) = Истина
    //Тогда
    //    Сообщить("Вы родились " + ДатаАкта);
    //КонецЕсли;
    
    
    Если ТипЗнч(МассивОбъектов) = Тип("Массив") Тогда
        Объект = МассивОбъектов[0];
    Иначе
        Объект = МассивОбъектов;
    КонецЕсли; 
    
    Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.АктПриемаУслугПоУстановкеИзделия"); //ПолучитьОбщийМакет("АктПриемаУслугПоУстановкеИзделия");
    
    Таб=Новый ТабличныйДокумент; 
    
    Обл=Макет;
    
    Обл.Параметры.НомерДоговора = Объект.Номер;
    Обл.Параметры.Заказчик = Объект.Заказчик.Наименование;
    Обл.Параметры.ДатаЗаказа = " от "+ Формат(Объект.Дата,"ДЛФ=DD");
    Обл.Параметры.Исполнитель = СокрЛП(Объект.Организации.ПолноеНаименование); //52898
    Обл.Параметры.Отступ = Символы.Таб + Символы.Таб; 


    
    
    Таб.Вывести(Обл);
    
    Таб.ОтображатьСетку = Ложь;
    Таб.Защита = Истина; //42590
    Таб.ТолькоПросмотр = Истина;
    Таб.ОтображатьЗаголовки = Ложь;
    Таб.ПолеСлева=10;
    Таб.ПолеСправа=5;
    Таб.АвтоМасштаб = Истина;
    
    Таб.ИмяПараметровПечати="АктПриемаУслугПоУстановкеИзделия";
    Возврат Таб;
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Denis_CFO 48 23.02.19 17:26 Сейчас в теме
(1) Если кнопка "Печать" нажимается пользователем, тогда после нажатия кнопки выводи форму которая спрашивает город и адрес, а после её закрытия вызывай функцию печати.
3. Arkadag 23.02.19 17:55 Сейчас в теме
Ну так вроде и пошел

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    
    ПолучитьФорму("Документ.Заказ.Форма.ФормаОтбора").ОткрытьМодально();    
    
    УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(
        "Документ.Заказ",
        "ПечатьАктУслугУстановки",
        ПараметрКоманды,
        Неопределено);

КонецПроцедуры
Показать


На кнопку, которая печатает добавил код открытия формы с выбором.
Открывает, выбирает город и дату...

Но (если я на верном пути) как передать эти город и дату в менеджер объекта, чтобы эти значения пропечатались в макете?

Обл.Параметры.Город = ????????????????;


Как передать эти значения в менеджер, который доводит печать до конца?
4. Denis_CFO 48 23.02.19 18:09 Сейчас в теме
(3) Ващпе не так.
1.
&НаКлиенте
Функция ЗадатьВопросПередПечатью()
                   СтрукПарам = Новый Структура("ТекстВопроса", "Вы хотите Напечатать документ?);
		Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияФормыВопроса", ЭтаФорма);
ОткрытьФорму("Документ.ПечатьФормы.Форма.ФормаВопроса", СтрукПарам,,,,,Оповещение);
КонецФункции

2.
&НаСервере
Функция НапечататьДокументНаСервере(Рез)
        Возврат Печать();
КонецФункции

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


Примерно так.
5. Arkadag 23.02.19 18:19 Сейчас в теме
(4) Разве предложенный Вами метод как-то связан с моим вопросом? Возможно Вы изложили общую концепцию, но я так и не понял как мне это применить в моем случае, не меняя структуру базы.

Как здесь можно передать или запомнить данные из открытой формы?
6. Denis_CFO 48 23.02.19 18:30 Сейчас в теме
(5) Да, некорректно написал.
Вместо
ОткрытьФорму("Документ.ПечатьФормы.Форма.ФормаВопроса", СтрукПарам,,,,,Оповещение);

Используй ПоказатьВопрос()
7. Denis_CFO 48 23.02.19 18:34 Сейчас в теме
+ (6) ОбработкаКоманды(<ПараметрКоманды>, <ПараметрыВыполненияКоманды>)
<ПараметрКоманды>
В параметр передается значение от источника, в котором реализована команда. Может содержать как единичное значение, так и массив значений.
Вот сюда передавай то, что получаешь после закрытия формы
8. Arkadag 23.02.19 18:48 Сейчас в теме
(7) Я наверное не правильно всё объяснил.

Мне абсолютно не нужно задавать вопрос: "Печатать или не Печатать".

У меня был вопрос, как перед печатью открыть некую форму, на которой есть 2а реквизита (город и дата) и после выбора города и даты закрыть эту форму при этом выбранные значения сохранить и передать для печати в модуле менеджера...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот