Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывод диалога с выбором данных из справочника и даты перед открытием макета печатной формы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Constantus
Приветствую, форумчане!
1с8.3.6, УФ, самописная

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

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

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

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

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


    
    
    Таб.Вывести(Обл);
    
    Таб.ОтображатьСетку = Ложь;
    Таб.Защита = Истина; //42590
    Таб.ТолькоПросмотр = Истина;
    Таб.ОтображатьЗаголовки = Ложь;
    Таб.ПолеСлева=10;
    Таб.ПолеСправа=5;
    Таб.АвтоМасштаб = Истина;
    
    Таб.ИмяПараметровПечати="АктПриемаУслугПоУстановкеИзделия";
    Возврат Таб;

Constantus

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

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

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


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

КонецПроцедуры


nik389
на инфостарте было "Передача параметров в управляемые и обычные формы"
когда-то воспользовался, помогло
Constantus
nik389 @ Сегодня, 0:51 необходимо зарегистрироваться для просмотра ссылки ,

И как это помогло?
nik389
все получилось. задача была, во внешнюю печ. форму параметры передавать
Constantus
nik389 @ Сегодня, 13:55 необходимо зарегистрироваться для просмотра ссылки ,

Понимаю, что сейчас глупость сморожу, но у меня не внешняя печатная форма, внутренний макет печати...

Как таковых параметров при печати этого макета нет. Нажимается кнопка, а потом в Менеджере идет отбор непосредственно из формы...

На кнопке открываю форму "Форма отбора" - эта форма свободная без привязки к какаому либо документу

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

КонецПроцедуры


При создании на сервере этой свободной формы пишу:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    //Вставить содержимое обработчика
    
    ЭтаФорма.ГородДляПечати = Справочники.Города.НайтиПоНаименованию("Ярославль");
    ЭтаФорма.ДатаСоставленияАкта = ТекущаяДата();
    
    Параметры = Новый Структура("ГородПечати",ЭтаФорма.ГородДляПечати);
    

    
КонецПроцедуры


Потом эта форма закрывается. Нужно где-то и как-то сохранить этот Город и потом применить его при печати Макета в Менеджере:

Обл=Макет;
    
    Обл.Параметры.НомерДоговора = Объект.Номер;
    Обл.Параметры.Заказчик = Объект.Заказчик.Наименование;
    Обл.Параметры.ДатаЗаказа = " от "+ Формат(Объект.Дата,"ДЛФ=DD");

Обл.Параметры.ДатаЗаказа = Город //????????????????


дайте списать icon_beer17.gif


 ! 

необходимо зарегистрироваться для просмотра ссылки: 9
 
nik389
если у вас УФ и используется БСП, и вы не хотите ломать общий механизм печати,
без внешней печатной формы не обойтись. и эта печатная форма будет принимать ваши параметры

1. определяется собственная команда печати, которая будет вызывать вашу внешнюю печ. форму
2. разрабатывается внешняя печ. форма, там есть пара нюансов

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

Цитата
Нужно где-то и как-то сохранить этот Город и потом применить

можно через ХранилищеОбщихНастроек это сделать, как вариант, хоть это и некрасиво
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.