![]() |
![]() |
![]() |
|
Печать чека со сдачей Комплексная автоматизация | ☑ | ||
---|---|---|---|---|
0
evorle145
20.02.12
✎
18:51
|
Подскажите, каким образом делают печать чека со сдачей? Макет чека в конфигурации не нашел.
|
|||
1
maxmb
20.02.12
✎
19:03
|
Кассового чека ?
|
|||
2
maxmb
20.02.12
✎
19:04
|
сдачу вы где хотите увидеть в макете чека или на кассовом чеке(который вылазит из ККМ) ?
|
|||
3
evorle145
20.02.12
✎
22:38
|
Спасибо, что откликнулись. Сдача нужна конечно на кассовом чеке. Я пытался найти хотя бы макет. Захожу В ПКО, смотрю что происходит по нажатию кнопки "ЧЕК". Там нахожу только
Результат = ПолучитьСерверТО().ПечатьЧекаПКО(ФР, "", НомерЧекаККМ, НомерСмены, ТаблицаПлатежей, СуммаДокумента, 0); Дальше нахожу ПечатьЧекаПКО. вот такая функция: Функция ПечатьЧекаПКОРКО(Идентификатор, ЭтоРКО, Пароль, НомерЧека, НомерСмены, ОписаниеПлатежа, СуммаНал, СуммаБезнал) Обработка = Неопределено; Объект = Неопределено; ВремНомерЧека = 0; Результат = ПолучитьОбъектДрайвера(Идентификатор, Обработка, Объект); Если НЕ ЗначениеЗаполнено(Результат) Тогда НомерОтдела = Неопределено; Результат = Обработка.ПолучитьПараметрыНаличнойОплаты(Объект, НомерОтдела); Если НЕ ЗначениеЗаполнено(Результат) Тогда Результат = Обработка.ОткрытьЧек(Объект, Пароль, ЭтоРКО, ВремНомерЧека, НомерСмены, Истина); Если НЕ ЗначениеЗаполнено(Результат) Тогда Позиция = Неопределено; Для Каждого Позиция Из ОписаниеПлатежа Цикл Результат = Обработка.ПечататьСтроку(Объект, Позиция.Заголовок, 1, Позиция.Сумма, 0, НомерОтдела, Позиция.НДС); Если ЗначениеЗаполнено(Результат) Тогда Прервать; КонецЕсли; КонецЦикла; Если НЕ ЗначениеЗаполнено(Результат) Тогда Результат = Обработка.ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал); КонецЕсли; КонецЕсли; КонецЕсли; мОписаниеОшибки = Объект.ОписаниеОшибки; Иначе мОписаниеОшибки = ПолучитьТекстОшибкиПодключенияТО("ФР"); КонецЕсли; Если НЕ ЗначениеЗаполнено(Результат) Тогда НомерЧека = ВремНомерЧека КонецЕсли; Возврат Результат; Не могу понять, где здесь обращение к макету... Если макет вообще не используется, то подскажите, как в этом случае подступиться. |
|||
4
Мимохожий Однако
20.02.12
✎
22:40
|
Чеком занимается ККМ или фискальный регистратор по командам, переданным при проведении чека.
|
|||
5
evorle145
20.02.12
✎
22:52
|
Не очень понял. Получается мне нужно найти команду которая бы мне вывела сдачу? Но как? А что имеется ввиду под словом "проведение" чека, это вроде не документ?
|
|||
6
Reaper_1c
20.02.12
✎
23:03
|
В торговом оборудовании нет макетов, всем заправляет драйвер. Пример смотри в печати чека ККМ из подсистемы розничной торговли. Он умеет, почему не используете?
|
|||
7
MrStomak
20.02.12
✎
23:05
|
Для ККМ есть разные команды - закрытие чека и закрытие чека со сдачей.
Строчки формируются уже на ней драйвером ККМ. Можно и вручную там написать любой текст. Макетов никаких, естественно, не используется, всё на командах драйверу |
|||
8
evorle145
20.02.12
✎
23:36
|
Спасибо, позволю себе уточнить, правильно ли понял, что если в команде Обработка.ПечататьСтроку("") - напишу свой текст. Например, буду печатать последней строкой сдачу, то она у меня появится на чеке. Код привел ниже:
Результат = Обработка.ОткрытьЧек(Объект, Пароль, ЭтоРКО, ВремНомерЧека, НомерСмены, Истина); Если НЕ ЗначениеЗаполнено(Результат) Тогда Позиция = Неопределено; Для Каждого Позиция Из ОписаниеПлатежа Цикл Результат = Обработка.ПечататьСтроку(Объект, Позиция.Заголовок, 1, Позиция.Сумма, 0, НомерОтдела, Позиция.НДС); Если ЗначениеЗаполнено(Результат) Тогда Прервать; КонецЕсли; КонецЦикла; //Сдача Начало доработки Сдача = Обработка.ПечататьСтроку("Текст со сдачей"); //Окончание доработки Если (НЕ ЗначениеЗаполнено(Результат)) И (НЕ ЗначениеЗаполнено(Сдача)) Тогда Результат = Обработка.ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал); КонецЕсли; КонецЕсли; |
|||
9
Reaper_1c
20.02.12
✎
23:44
|
(8) И ты успешно вкатишь сдачу в фискальную память как выручку.
|
|||
10
evorle145
20.02.12
✎
23:45
|
(9) прошу пояснить. Почему последняя строка со сдачей станет выручкой?
|
|||
11
Fragster
гуру
20.02.12
✎
23:46
|
параметры СуммаНал и СуммаБезнал как бы намекают
|
|||
12
Fragster
гуру
20.02.12
✎
23:46
|
а также ТаблицаПлатежей и СуммаДокумента
|
|||
13
evorle145
20.02.12
✎
23:49
|
Тогда куда же нужно добавить строку со сдачей, посоветуйте?
|
|||
14
Reaper_1c
20.02.12
✎
23:58
|
(13) В (6) даже написано где списать. Совесть-то имей...
|
|||
15
evorle145
21.02.12
✎
00:00
|
давно бы уже списал, только нет у меня конфигурации розничной торговли(
|
|||
16
evorle145
21.02.12
✎
00:13
|
(6) похоже не правильно понял ваш совет. В подсистеме розничной торговли вы имели ввиду чек, который печатается из документа Чек ККМ ?
|
|||
17
Reaper_1c
21.02.12
✎
00:22
|
(16) Именно.
|
|||
18
evorle145
21.02.12
✎
00:33
|
(17) Да, изначально я совсем неправильно вас понял) В той печати чека вместо печататьСтроку() используется ПечатьТекста(), в котором вместо строк подставляется массив строк(среди которых есть сдача). Однако не ясно почему в первой случае используется
Результат = Обработка.ЗакрытьЧек(Объект, СуммаНал, СуммаБезнал); а, во втором: ПолучитьСерверТО().ЗакрытьЧек(ФР, 0, 0); Почему параметры СуммаНал и СуммаБезнал во-втором случае нулевые? |
|||
19
Mashinist
21.02.12
✎
01:18
|
Если СуммаНал = 0 то считается, что по чеку взято ровно столько сколько пробито
Видимо если будет СуммаНал > СуммыЧека, то ФР сам напечатает сдачу |
|||
20
evorle145
21.02.12
✎
12:35
|
Тогда получается достаточно в параметр СуммаНал подставить сумму полученных наличных и сдача должна появится. В мануале к драйверу нашел, что ЗакрытьЧек() сохраняет сумму сдачи в соответствующий параметр.
|
|||
21
evorle145
21.02.12
✎
14:15
|
Большое спасибо всем кто откликнулся. Вы вывели меня на правильный путь.
Сдача стала печататься, когда при закрытии чека параметр СуммаНал стал больше чем Итого. Думаю, ветку можно закрыть. |
|||
22
evorle145
21.02.12
✎
14:36
|
Если СуммаНал = 0, я так понял, вообще не нужно выводить строку с оплата Наличными.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |