Версия для печати темы (https://pro1c.org.ua/index.php?s=330194a9865c0160849441414120e92e&showtopic=67663)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Возможно ли как то вывести сообщение с данными из печатной формы?

Автор: Mr_Daniel_Khorn 31.10.24, 15:10

Доброго дня.
BAF (8.3.19.1529)
Business Automation Software for small company. PROF (1.6.21.1)

Есть процедура из модуля интеграции Вчаснокасса и Baf

Процедура ВыводЧека(фОбъект) Экспорт    
    Сообщить(Объект.Ответ["info"]["doccode"]);  
    
    Если (фОбъект.Параметры.ВыводЧека = 2 Или фОбъект.Параметры.ВыводЧека = 3) И
           Не (фОбъект.Параметры.ИспользоватьОтправку И (фОбъект.Ответ["info"]["task"] = 1 Или фОбъект.Ответ["info"]["task"] = 2)) Тогда
        Возврат;
    КонецЕсли;
    
    ШиринаЛентыКоэф = фОбъект.Параметры.ШиринаЛенты * 0.95;
    Картинка = Новый Картинка(Base64Значение(СтрЗаменить(фОбъект.Ответ["pf_image"], "data:image/png;base64,", "")));
    
    Файл = Новый Файл(ПолучитьИмяВременногоФайла("png"));
    Картинка.Записать(Файл.ПолноеИмя);
    
    Shell = Новый COMОбъект("Shell.Application");
    Folder = Shell.NameSpace(Файл.Путь);
    Item = Folder.ParseName(Файл.Имя);
    Детали = Folder.GetDetailsOf(Item, -1);
    Детали = СтрЗаменить(Детали, " ", "");
    Х = Найти(Детали, "x");
    
    ВысотаКартинки = "";
    Сч = Х + 1;
    Пока Истина Цикл
        Если КодСимвола(Детали, Сч) >= 48 И КодСимвола(Детали, Сч) <= 57 Тогда
            ВысотаКартинки = ВысотаКартинки + Сред(Детали, Сч, 1);
            Сч = Сч + 1;
        Иначе
            Прервать;
        КонецЕсли;
    КонецЦикла;
    
    ШиринаКартинки = "";
    Сч = Х - 1;
    Пока Истина Цикл
        Если КодСимвола(Детали, Сч) >= 48 И КодСимвола(Детали, Сч) <= 57 Тогда
            ШиринаКартинки = Сред(Детали, Сч, 1) + ШиринаКартинки;
            Сч = Сч - 1;
        Иначе
            Прервать;
        КонецЕсли;
    КонецЦикла;
    
    УдалитьФайлы(Файл.ПолноеИмя);
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.ПолеСверху = 0;
    ТабДок.ПолеСлева = 0;
    ТабДок.ПолеСнизу = 0;
    ТабДок.ПолеСправа = 0;
    ТабДок.АвтоМасштаб = Истина;
    
    Макет = ПолучитьМакетНаСервере("Макет");
    Область = ПолучитьОбластьНаСервере(Макет, "Область");
    Область.ОбластьПечати = Область.Область(1, 1, 1, 1);
    
    Рисунок = Область.Рисунки.PNG;
    Рисунок.Высота = ШиринаЛентыКоэф * ВысотаКартинки / ШиринаКартинки;
    Рисунок.Ширина = ШиринаЛентыКоэф;
    Рисунок.Картинка = Картинка;
    
    ВывестиОбластьНаСервере(ТабДок, Область);
    
    Если фОбъект.Параметры.ВыводЧека = 0 Или фОбъект.Параметры.ИспользоватьОтправку Тогда
        ПараметрыОткрытияФормы = Новый Структура;
        ПараметрыОткрытияФормы.Вставить("Чек", ТабДок);
        Если фОбъект.Параметры.ИспользоватьОтправку И (фОбъект.Ответ["info"]["task"] = 1 Или фОбъект.Ответ["info"]["task"] = 2) Тогда
            ПараметрыОткрытияФормы.Вставить("Отправка", Истина);
            ПараметрыОткрытияФормы.Вставить("ФискальныйНомер", фОбъект.Ответ["info"]["doccode"]);  
            
                //наумов 30.10.2024 передача чека Начало

            
            
            
                    
            //наумов 30.10.2024 передача чека Конец    
            
            ПараметрыОткрытияФормы.Вставить("Токен", фОбъект.Параметры.Токен);
        Иначе
            ПараметрыОткрытияФормы.Вставить("Отправка", Ложь);    
                
        КонецЕсли;
        ОткрытьФорму("ВнешняяОбработка.ПрограммныйРегистраторКассираВчасноКасаДополнительнаяОбработка.Форма.ФормаЧека", ПараметрыОткрытияФормы, ЭтаФорма);        
    КонецЕсли;
    
    Если фОбъект.Параметры.ВыводЧека = 1 Тогда
        ТабДок.Напечатать();    
            
    КонецЕсли;    
    
КонецПроцедуры


Только в этой процедуре есть запрос Фискального Номера.

ПараметрыОткрытияФормы.Вставить("ФискальныйНомер", фОбъект.Ответ["info"]["doccode"]);


Подскажите можно ли каким то образом получить данный номер.
Хотя бы вывести в сообщении или что то подобное
В дальнейшем нужно данный код передать на форму но с этим думаю разбируся

Автор: sava1 31.10.24, 15:42

вставить в ТабДок.
потом в табдок найти ячейку и прочитать

Автор: Mr_Daniel_Khorn 31.10.24, 16:03

sava1 @ Сегодня, 15:42 * ,
Как вариант спасибо. Буду пробывать

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua