Имя: Пароль:
1C
1С v8
Вызвать процедуру формы из другой формы
,
0 JuixyJes
 
10.10.19
11:16
Доброе утро день вечер! Я в типовой УТ сделала копию формы Документа чек ККМ, доработала ее и мне нужно из другой формы, вызываемой из нее, вызвать процедуру печати которая в нетиповой форме
1 JuixyJes
 
10.10.19
11:16
Функция Печать(ВладелецФ)
    ТабДок = Новый ТабличныйДокумент;
    Макет= Документы.ЧекККМ.ПолучитьМакет("Макет");
    ОбластьПриложение = Макет.ПолучитьОбласть("Приложение");
    ОбластьПриложение.Параметры.АдресГостиницы  = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВладелецФ.Организация, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации, ТекущаяДатаСеанса(), Истина);
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ОрганизацииКонтактнаяИнформация.Тип КАК Тип,
    |    ОрганизацииКонтактнаяИнформация.Вид КАК Вид,
    |    ОрганизацииКонтактнаяИнформация.Представление КАК Представление,
    |    ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
    |ГДЕ
    |    ОрганизацииКонтактнаяИнформация.Ссылка = &Ссылка
    |    И ОрганизацииКонтактнаяИнформация.Вид.Наименование = ""Телефон""";
    
    Запрос.УстановитьПараметр("Ссылка", ВладелецФ.Организация);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьПриложение.Параметры.ТелГостиницы =  ВыборкаДетальныеЗаписи.Представление;
    КонецЦикла;
    ОбластьПриложение.Параметры.номерчека = ВладелецФ.Номер;
    ОбластьПриложение.Параметры.датачека = Формат(ВладелецФ.Дата, "ДФ='dd ММММ yyyy'");
    ОбластьПриложение.Параметры.Адрес = Строка(ВладелецФ.Адрес);
    ОбластьПриложение.Параметры.датаначала = ВладелецФ.ДатаНачала;
    ТабДок.Вывести(ОбластьПриложение);
    ОбластьСтрокаТ = Макет.ПолучитьОбласть("СтрокаТаблицы");
    сч = 0;
    для каждого стр из ВладелецФ.Товары Цикл
        ОбластьСтрокаТ.Параметры.сч = стр.НомерСтроки;
        ОбластьСтрокаТ.Параметры.вид = стр.Номенклатура;
        ОбластьСтрокаТ.Параметры.едизм = стр.Номенклатура.ЕдиницаИзмерения;
        ОбластьСтрокаТ.Параметры.колво = стр.КоличествоУпаковок;
        ОбластьСтрокаТ.Параметры.цена = стр.Цена;
        ОбластьСтрокаТ.Параметры.сумма = стр.Сумма;
        НДС = стр.СтавкаНДС;
        ТабДок.Вывести(ОбластьСтрокаТ);
    КонецЦикла;
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");                          
    ОбластьПодвал.Параметры.ИтогСумма = ВладелецФ.СуммаДокумента;
    ОбластьПодвал.Параметры.НДС = Число(ВладелецФ.СуммаДокумента) * Число(20/100);
    ОбластьПодвал.Параметры.СуммаПрописью = ЧислоПрописью(ОбластьПодвал.Параметры.ИтогСумма,"Л=ru_RU;ДП=Истина", "рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2");
    ОбластьПодвал.Параметры.Пользователь = ВладелецФ.Кассир;
    ОбластьПодвал.Параметры.ТекущаяДата = Формат(ТекущаяДата(), "ДФ='dd ММММ yyyy'");
    ТабДок.Вывести(ОбластьПодвал);
    ТабДок.ОтображатьСетку=Ложь;
    ТабДок.Показать("Приложение");
КонецФункции

Функция РФЗ(ВФ);
     ВладелецФ = РеквизитФормыВЗначение(ВФ);
     Возврат ВладелецФ;
КонецФункции
&НаКлиенте
Процедура ПечатьПриложения(Команда)
    РФЗ(ВладелецФормы);
    Печать(ВФ);
КонецПроцедуры
2 JuixyJes
 
10.10.19
11:17
Пыталась сделать так, добавив Функцию вот так
3 JuixyJes
 
10.10.19
11:17
но ловлю ошибку, постоянно
4 JuixyJes
 
10.10.19
11:17
ошибка отображения типов отсутствует отображение для типа формаклиентскогоприложения
5 sitex
 
naïve
10.10.19
11:17
(0) Нажать Букву Я с  право от названия темы.
6 JuixyJes
 
10.10.19
11:20
7 JuixyJes
 
10.10.19
11:20
процедура выполняется, но вот с этой ошибкой (6)
8 JuixyJes
 
10.10.19
11:22
Функция Печать(ВладелецФ)
    ТабДок = Новый ТабличныйДокумент;
    Макет= Документы.ЧекККМ.ПолучитьМакет("Макет");
    ОбластьПриложение = Макет.ПолучитьОбласть("Приложение");
    ОбластьПриложение.Параметры.АдресГостиницы  = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(ВладелецФ.Организация, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации, ТекущаяДатаСеанса(), Истина);
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ОрганизацииКонтактнаяИнформация.Тип КАК Тип,
    |    ОрганизацииКонтактнаяИнформация.Вид КАК Вид,
    |    ОрганизацииКонтактнаяИнформация.Представление КАК Представление,
    |    ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка
    |ИЗ
    |    Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
    |ГДЕ
    |    ОрганизацииКонтактнаяИнформация.Ссылка = &Ссылка
    |    И ОрганизацииКонтактнаяИнформация.Вид.Наименование = ""Телефон""";
    
    Запрос.УстановитьПараметр("Ссылка", ВладелецФ.Организация);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбластьПриложение.Параметры.ТелГостиницы =  ВыборкаДетальныеЗаписи.Представление;
    КонецЦикла;
    ОбластьПриложение.Параметры.номерчека = ВладелецФ.Номер;
    ОбластьПриложение.Параметры.датачека = Формат(ВладелецФ.Дата, "ДФ='dd ММММ yyyy'");
    ОбластьПриложение.Параметры.Адрес = Строка(ВладелецФ.Адрес);
    ОбластьПриложение.Параметры.датаначала = ВладелецФ.ДатаНачала;
    ТабДок.Вывести(ОбластьПриложение);
    ОбластьСтрокаТ = Макет.ПолучитьОбласть("СтрокаТаблицы");
    сч = 0;
    для каждого стр из ВладелецФ.Товары Цикл
        ОбластьСтрокаТ.Параметры.сч = стр.НомерСтроки;
        ОбластьСтрокаТ.Параметры.вид = стр.Номенклатура;
        ОбластьСтрокаТ.Параметры.едизм = стр.Номенклатура.ЕдиницаИзмерения;
        ОбластьСтрокаТ.Параметры.колво = стр.КоличествоУпаковок;
        ОбластьСтрокаТ.Параметры.цена = стр.Цена;
        ОбластьСтрокаТ.Параметры.сумма = стр.Сумма;
        НДС = стр.СтавкаНДС;
        ТабДок.Вывести(ОбластьСтрокаТ);
    КонецЦикла;
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");                          
    ОбластьПодвал.Параметры.ИтогСумма = ВладелецФ.СуммаДокумента;
    ОбластьПодвал.Параметры.НДС = Число(ВладелецФ.СуммаДокумента) * Число(20/100);
    ОбластьПодвал.Параметры.СуммаПрописью = ЧислоПрописью(ОбластьПодвал.Параметры.ИтогСумма,"Л=ru_RU;ДП=Истина", "рубль,рубля,рублей,м,копейка,копейки,копеек,ж,2");
    ОбластьПодвал.Параметры.Пользователь = ВладелецФ.Кассир;
    ОбластьПодвал.Параметры.ТекущаяДата = Формат(ТекущаяДата(), "ДФ='dd ММММ yyyy'");
    ТабДок.Вывести(ОбластьПодвал);
    ТабДок.ОтображатьСетку=Ложь;
    ТабДок.Показать("Приложение");
КонецФункции


&НаКлиенте
Процедура ПечатьПриложения(Команда)
    Печать(ВладелецФормы.Объект);
КонецПроцедуры
9 JuixyJes
 
10.10.19
11:22
вот код
10 JuixyJes
 
10.10.19
11:24
Все, извините за тему, разобралась
11 Aleksandr N
 
10.10.19
11:25
(10) Интересно как.
12 JuixyJes
 
10.10.19
11:25
&НаКлиенте
Процедура ПечатьПриложения(Команда)
    вф = ВладелецФормы.Объект;
    Печать(вф);
КонецПроцедуры
13 JuixyJes
 
10.10.19
11:25
Неправильно передавала владельца формы
14 Aleksandr N
 
10.10.19
11:27
(12) А я думал так:
Функция Печать(Знач ВладелецФ)
15 JuixyJes
 
10.10.19
11:27
(14) точно, ахах, плавлюсь по тихоньку
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой