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

1С 8.3 печать чека

Автор Александр Мун, 01 авг 2019, 13:19

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

Александр Мун

Добрый день!

1С 8.3 БП 3.0

Программно создаю документ "КорректировкаДолга", программно его провожу, все хорошо. В документе "КорректировкаДолга" есть кнопка "Чек" связна с командой "ОбщаяКоманда.ПечатьЧека".
Код "ОбщаяКоманда.ПечатьЧека"

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОписаниеОповещения = Новый ОписаниеОповещения("ПечатьЧекаЗавершение", ЭтотОбъект, Новый Структура("Форма", ПараметрыВыполненияКоманды.Источник));

ПечатьФискальныхДокументовКлиент.НапечататьЧек(ПараметрыВыполненияКоманды.Источник, ОписаниеОповещения);
КонецПроцедуры

&НаКлиенте
Процедура ПечатьЧекаЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат.Успешно Тогда
Форма =  ДополнительныеПараметры.Форма;
Объект = Форма.Объект;

Объект.НомерЧекаККМ = Результат.НомерЧекаККМ;

// Параметры операции при оплате картой
ЗаполнитьЗначенияСвойств(Объект, Результат.ПараметрыОплаты);

Форма.Записать();
ИначеЕсли ЗначениеЗаполнено(Результат.СообщениеОбОшибке) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Результат.СообщениеОбОшибке);
КонецЕсли;
КонецПроцедуры


Подскажите как можно программно выполнить печать чека, после программного проведения документа "КорректировкаДолга"?

Yotram

После проведения документа, на клиенте подставляешь кусок кода
   
ОписаниеОповещения = Новый ОписаниеОповещения("ПечатьЧекаЗавершение", ЭтотОбъект, Новый Структура("Форма", ЭтаФорма));

ПечатьФискальныхДокументовКлиент.НапечататьЧек(СсылкаНаДокумент, ОписаниеОповещения);


Не забудь обработать процедуру обработки оповещения "ПечатьЧекаЗавершение". Так же стоит заглянуть в процедуру печати чека. Вполне воззможно она смотрит на тип передаваемой в нее ссылки. Возможно придется добавить некоторые служебные реквизиты.

Александр Мун

Yotram, не совсем ясно
Код создания документа, находиться в модуле объекта:

ЗачетД = Документы.КорректировкаДолга.СоздатьДокумент();
ЗачетД.Дата = ТекущаяДата();
ЗачетД.Организация = ЭтотОбъект.Организация;
ЗачетД.УстановитьНовыйНомер();
ЗачетД.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.ЗачетЗадолженности;
ЗачетД.ВидАвансаЗадолженности = Перечисления.ВидыАвансаЗадолженности.АвансыПокупателя;
ЗачетД.ТипАвансаЗадолженности = Перечисления.ТипыЗадолженности.СамогоКонтрагента;
ЗачетД.КонтрагентДебитор = ЭтотОбъект.Контрагент;
ЗачетД.КонтрагентКредитор = ЭтотОбъект.Контрагент;
ЗачетД.ИД = Имя;
// Таблица значений ДебиторскаяЗадолженность
ТЗДЗ = Новый ТаблицаЗначений();
ТЗДЗ.Колонки.Добавить("ДоговорКонтрагента");
ТЗДЗ.Колонки.Добавить("КурсВзаиморасчетов");
ТЗДЗ.Колонки.Добавить("КратностьВзаиморасчетов");
ТЗДЗ.Колонки.Добавить("Сделка");
ТЗДЗ.Колонки.Добавить("Сумма");
ТЗДЗ.Колонки.Добавить("СуммаНУ");
ТЗДЗ.Колонки.Добавить("СуммаВзаиморасчетов");
ТЗДЗ.Колонки.Добавить("СчетУчетаРасчетов");
ТЗДЗ.Колонки.Добавить("УдалитьВидЗадолженности");
ТЗДЗ.Колонки.Добавить("КорДоговорКонтрагента");
ТЗДЗ.Колонки.Добавить("КорСчетУчетаРасчетов");
// Таблица значений КредиторскаяЗадолженность
ТЗКЗ = Новый ТаблицаЗначений();
ТЗКЗ.Колонки.Добавить("ДоговорКонтрагента");
ТЗКЗ.Колонки.Добавить("Сделка");
ТЗКЗ.Колонки.Добавить("КурсВзаиморасчетов");
ТЗКЗ.Колонки.Добавить("КратностьВзаиморасчетов");
ТЗКЗ.Колонки.Добавить("Сумма");
ТЗКЗ.Колонки.Добавить("СуммаНУ");
ТЗКЗ.Колонки.Добавить("СуммаВзаиморасчетов");
ТЗКЗ.Колонки.Добавить("СчетУчетаРасчетов");
ТЗКЗ.Колонки.Добавить("КорДоговорКонтрагента");
ТЗКЗ.Колонки.Добавить("КорСчетУчетаРасчетов");

ТЗДЗнСтрока = ТЗДЗ.Добавить();
ТЗКЗнСтрока = ТЗКЗ.Добавить();

ТЗДЗнСтрока.ДоговорКонтрагента = ЭтотОбъект.ДокОснование.ДоговорКонтрАгента;
ТЗДЗнСтрока.КурсВзаиморасчетов = 1;
ТЗДЗнСтрока.КратностьВзаиморасчетов = 1;
ТЗДЗнСтрока.Сумма = ЭтотОбъект.Зачет;
ТЗДЗнСтрока.СуммаВзаиморасчетов = ЭтотОбъект.Зачет;
ТЗДЗнСтрока.СчетУчетаРасчетов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");

ТЗКЗнСтрока.ДоговорКонтрагента = ЭтотОбъект.АгентскийДоговор;
ТЗКЗнСтрока.КурсВзаиморасчетов = 1;
ТЗКЗнСтрока.КратностьВзаиморасчетов = 1;
ТЗКЗнСтрока.Сумма = ЭтотОбъект.Зачет;
ТЗКЗнСтрока.СуммаВзаиморасчетов = ЭтотОбъект.Зачет;
ТЗКЗнСтрока.СчетУчетаРасчетов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.09");

ЗачетД.ДебиторскаяЗадолженность.Загрузить(ТЗДЗ);
ЗачетД.КредиторскаяЗадолженность.Загрузить(ТЗКЗ);

ЗачетД.Записать(РежимЗаписиДокумента.Проведение);


Как применить Ваш ответ?

Yotram

Не могу Вам сказать точнее куда надо вставлять блок ибо не вижу всей картины в целом. Если уж совсем пованговать, тогда вы вызываете эту процедуру создания документа откуда то из процедуры &НаКлиенте? Это, возможно, какой то обработчик команды? Вы по кнопке создаете документ корректировки долга? Если да, то в конец обработки команды.

Теги:

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

Рейтинг@Mail.ru

Поиск