Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2026, 07:44

как вклиниться в код

Автор sali, 23 фев 2026, 14:09

0 Пользователей и 1 гость просматривают эту тему.

sali

есть код который пробивает чек, а потом показывает его. мне нужно вклиниться в момент, когда программа всё сделала - пробили чек на сервере , вернул ответ, создал документ с чеком, заполнил данными печатный документ (предпросмотр, с кнопками "печать", "отправить на email")
но проблема в том что я не знаю как в него впихнуть своё.

вот идут последние строки кода процедуры (находятся в середине её)


ПараметрыПечатиЧека = ПродажиКлиент.ПараметрыПечатиЧека();
ПараметрыПечатиЧека.СсылкаНаЧек = ЧекДляПробития.КассовыйЧек;   

ПродажиКлиент.РаспечататьНефискальныйЧек(ПараметрыПечатиЧека, Истина);

РезультатПечатиЧека.Успешно = Истина;

ПродажиКлиент.ПечатьЧекаПродажи(ЧекДляПробития.КассовыйЧек,
СтруктураПараметровДляПечати, РезультатПечатиЧека);

ПробитьЧекНаККТПродолжение(РезультатПечатиЧека, ЧекДляПробития); // здесь проходит в процедуру которая закрывает форму и открывает готовую печатную форму, + заходит в общий модуль в процедуру "РаспечататьНефискальныйЧек"

 в общем модуле открывается обработка , где формируется эта печатная форма. сюда она заходит дважды, сначала собрать, а потом показать. как я понял
Процедура РаспечататьНефискальныйЧек(Параметры, ВывестиЧекНаЭкран = Ложь) Экспорт

ДанныеДляПечатиЧека = ПродажиВызовСервера.ПолучитьДанныеДляПечатиЧека(Параметры.СсылкаНаЧек);

Если ВывестиЧекНаЭкран Тогда
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ВходныеПараметры", ДанныеДляПечатиЧека);
ПараметрыФормы.Вставить("ВыходныеПараметры", Неопределено);
ОткрытьФорму("Обработка.Отчеты.Форма.Чек", ПараметрыФормы);
// закрывается форма (в которой нужно добавить две команды), открывается эта форма, делаются все дела(сборка данных, заполнение печатной формы,
// вывод её)
Иначе

вот при открытии чека
&НаКлиенте
Процедура ПриОткрытии(Отказ)

ПодключенноеУстройство = МенеджерОборудованияКлиент.ПолучитьПодключенноеУстройство(ПодключаемоеОборудованиеКлиент.ИдентификаторКлиентаОборудования());

Если ПодключенноеУстройство <> Неопределено Тогда
ВходныеПараметры.Вставить("ПараметрыПодключения", ПодключенноеУстройство.ПараметрыПодключения);
КонецЕсли;

СформироватьНаСервере(ВходныеПараметры);
//Если НЕ ПросмотрЧекаПослеПечати И ЗначениеЗаполнено(ПодключенноеУстройство) Тогда
ПодключаемоеОборудованиеH62P = ПолучитьОборудованиеПечати();
ПараметрыПечатиЧека = ПродажиКлиент.ПараметрыПечатиЧека();
ПараметрыПечатиЧека.СсылкаНаЧек = ВходныеПараметры.ДокументОснование;
ПараметрыПечатиЧека.Вставить("ПодключаемоеОборудованиеH62P", ПодключаемоеОборудованиеH62P);
ПродажиКлиент.РаспечататьНефискальныйЧек(ПараметрыПечатиЧека);
Если НЕ ПросмотрЧекаПослеПечати Тогда
ЭтаФорма.Закрыть();
КонецЕсли;

как уловить момент , чтобы и форму не закрыть и чек показать или распечатать?

sali

попробую по-другому задать вопрос,
как нагло вклиниться в программу которая выполняет 51% кода? то бишь, залезть в середину, впихнуть на форму две команды "посмотреть чек" и "распечатать чек". если нажимаем посмотреть чек запускаем процесс вывода печатной формы чека, на команде распечатать просто печатаем его,  но так если пользователь закрыл форму то просто закрыл
это надо для того чтобы посмотреть, где больше уходит времени, так как у клиентов весь процесс пробития чека занимает минуты 2

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск