Добрый день.
Розница 1.0
Подскажите пожалуйста как правильно вести учет подарочных сертификатов.
1. День
Продаем сертификаты как обычный товар. 1000 руб.
2. День
Продаем товар 1000 руб. Вид оплаты "Подарочный сертификат"
Вроде все ок. Для нас вроде все ок, для бухгалтерии нет(
При закрытии смены в обоих днях в z-отчет попадает 1000 руб. Итого 2000 руб.
У нас кассовый метод признания доходов.
Прочитал статью: http://buh.ru/articles/documents/17812/ В ней написано "При оплате товара подарочным сертификатом также необходимо пробивать чек ККТ, но по отдельной секции"
Вопрос как сделать на практике пробивание чека по отдельной секции? Используем ШТРИХ-МИНИ-ФР-К
Спасибо большое.
Исключительно допиливая, 1с бьёт по умолчанию на 2 секции(нал, безнал). Первое, пилим пробитие чека по секциям. Второе, правила обмена РТ-БП. Когда делали это для одного клиента это дорого ему обошлось, очень много нюансов там.
То есть я правильно понял.
Сейчас в фискальнике используется две секции(нал,безнал). Надо сделать 3 секцию чтобы туда записывать оплату сертификатом.
Ну обмена у нас с бухгалтерией нет, слава богу.
Вроде все работает. Но в инструкции по программированию к фискальнику написано что всего в методе ЗакрытьЧек есть четыре параметра: сумма1, сумма2, сумма3. сумма4
Смотрите рисунок. В наименовании типов оплат в фискальнике тоже 4 строки.
Если в функцию добавить еще сумму:
Объект.Драйвер.ЗакрытьЧек(Объект.ИДУстройства, СуммаНал, СуммаБезнал, СуммаСертификат, ДопСумма)
то при работе выскакивает соответствующая ошибка: Слишком много фактических параметров
Функция ПробитьЧекВыполнить(ОбъектЧекККМ, ТекстСообщения)
добавил код
Если СтрокаТЧ.Номенклатура.видНоменклатуры.ТипНоменклатуры=Перечисления.ТипыНоменклатуры.ПодарочныйСертификат Тогда
НомерСекции = 2;
Иначе
НомерСекции = 1;
КонецЕсли;
Результат = Истина;
ПараметрыПодключения.Вставить("СтрокаЛога", "");
// Открываем чек
Результат = ОбщийМодульОборудования.ОткрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения,
ОбщиеПараметры[0] = 1, ОбщиеПараметры[1], ВыходныеПараметры);
// Печатаем строки чека
Если Результат Тогда
СтруктураШаблонаЧека = МенеджерОборудованияСервер.ПолучитьСтруктуруШаблонаЧека(ПараметрыШаблонаЧека, ТаблицаНоменклатуры.Количество(), ПараметрыПодключения.ИДУстройства);
МассивТекстаСтрокиШапки = СтруктураШаблонаЧека.МассивТекстаСтрокиШапки;
МассивТекстаСтрокиПодвал = СтруктураШаблонаЧека.МассивТекстаСтрокиПодвал;
МассивШакаЧека = СтруктураШаблонаЧека.Шапка;
МассивПодвалЧека = СтруктураШаблонаЧека.Подвал;
ОднаФискальнаяСтрока = СтруктураШаблонаЧека.ОднаФискальнаяСтрока;
ФискальнаяСтрокабезПечати = СтруктураШаблонаЧека.ФискальнаяСтрокабезПечати;
// Печать шапки чека
Для Каждого СтрокаШапки Из МассивШакаЧека Цикл
Если НЕ ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
СтрокаШапки, ВыходныеПараметры) Тогда
Прервать;
КонецЕсли;
КонецЦикла;
ИтогПоЧеку = 0.00;
ПроцентСкидки = 0.00;
Для ИндексМассива = 0 По ТаблицаНоменклатуры.Количество() - 1 Цикл
// Печать шапки строки
Для Каждого СтрокаШапки Из МассивТекстаСтрокиШапки[ИндексМассива] Цикл
Если НЕ ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
СтрокаШапки, ВыходныеПараметры) Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ ОднаФискальнаяСтрока Тогда
Если НЕ ФискальнаяСтрокабезПечати Тогда
Наименование = ТаблицаНоменклатуры[ИндексМассива][0].Значение;
Иначе
Наименование = "";
КонецЕсли;
Количество = ТаблицаНоменклатуры[ИндексМассива][5].Значение;
Цена = ТаблицаНоменклатуры[ИндексМассива][4].Значение;
ПроцентСкидки = ТаблицаНоменклатуры[ИндексМассива][8].Значение;
Сумма = ТаблицаНоменклатуры[ИндексМассива][9].Значение;
НомерСекции = ТаблицаНоменклатуры[ИндексМассива][3].Значение;
СтавкаНДС = ТаблицаНоменклатуры[ИндексМассива][12].Значение;
Если НЕ ОбщийМодульОборудования.НапечататьФискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
Наименование, Количество, Цена, ПроцентСкидки, Сумма,
НомерСекции, СтавкаНДС, ВыходныеПараметры) Тогда
Прервать;
КонецЕсли;
Иначе
ИтогПоЧеку = ИтогПоЧеку + ТаблицаНоменклатуры[ИндексМассива][9].Значение; // Сумма строки
ПроцентСкидки = ПроцентСкидки + ТаблицаНоменклатуры[ИндексМассива][8].Значение; // Процент скидки по строке
НомерСекции = ТаблицаНоменклатуры[ИндексМассива][3].Значение;
КонецЕсли;
// Печать подвала строки
Для Каждого СтрокаШапки Из МассивТекстаСтрокиПодвал[ИндексМассива] Цикл
Если НЕ ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
СтрокаШапки, ВыходныеПараметры) Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если ОднаФискальнаяСтрока Тогда
Наименование = "Всего:";
Количество = 1.00;
Цена = ИтогПоЧеку;
ПроцентСкидки = ПроцентСкидки;
Сумма = ИтогПоЧеку;
НомерСекции = НомерСекции;
СтавкаНДС = 0.00;
// Печать фискальных строк
Если НЕ ОбщийМодульОборудования.НапечататьФискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
Наименование, Количество, Цена, ПроцентСкидки, Сумма,
НомерСекции, СтавкаНДС, ВыходныеПараметры) Тогда
КонецЕсли;
КонецЕсли;
// Печать подвала чека
Для Каждого СтрокаШапки Из МассивПодвалЧека Цикл
Если НЕ ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,
СтрокаШапки, ВыходныеПараметры) Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Для ИндексОплаты = 0 По ТаблицаОплат.Количество() - 1 Цикл
Если ТаблицаОплат[ИндексОплаты][1].Значение=0 тогда продолжить конецесли;
Если ТаблицаОплат[ИндексОплаты][0].Значение = 0 Тогда
СуммаНаличнойОплаты = ("Наличными = "+ТаблицаОплат[ИндексОплаты][1].Значение+" руб.");
ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,СуммаНаличнойОплаты, ВыходныеПараметры);
ИначеЕсли ТаблицаОплат[ИндексОплаты][0].Значение = 1 Тогда
СуммаБезналичнойОплаты1 = ("Безналичными = " + ТаблицаОплат[ИндексОплаты][1].Значение+" руб.");
ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,СуммаБезналичнойОплаты1, ВыходныеПараметры);
ИначеЕсли ТаблицаОплат[ИндексОплаты][0].Значение = 2 Тогда
СуммаБезналичнойОплаты2 = ("Подарочным сертификатом = " + ТаблицаОплат[ИндексОплаты][1].Значение+" руб.");
ОбщийМодульОборудования.НапечататьНефискальнуюСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения,СуммаБезналичнойОплаты2, ВыходныеПараметры);
КонецЕсли;
КонецЦикла;
///DIMA
// Закрываем чек
Если Результат Тогда
Результат = ОбщийМодульОборудования.ЗакрытьЧек(ОбъектДрайвера, Параметры, ПараметрыПодключения, ТаблицаОплат, ВыходныеПараметры);
КонецЕсли;
Если ВывестиСообщениеПользователю Тогда
ОбщийМодульОборудования.СообщитьПользователю(ПараметрыПодключения.СтрокаЛога);
КонецЕсли;
Возврат Результат;
КонецФункции
Все работает прекрасно. Подарочные карты выводит в отдельную секцию Z отчета.
b-k-v, у меня подобная проблема, используется оплата и подарочными сертификатами и банковскими кредитами. В самом ФР можно настроить еще 2 секции: кредит банка и подарочный сертификат, но вот в рознице я тоже не увидела как это можно исправить..
А как Вы разобрались с этой проблемой?
В конце есть нулевой параметр.
Перепишите процедуру которая считает параметр: СуммаБезнал
То есть исключите из него оплату по сертификату. Ну и добавьте параметр в котором будет содержаться сумма оплаты по сертификату.
Получится примерно следующее.
Только в этом случае не только необходимо будет изменть розницу но и обработку обслуживания торгового оборудования.
Объект.Драйвер.ЗакрытьЧек(Объект.ИДУстройства, СуммаНал, СуммаБезнал, СуммаПоСертификату)
А вот четвертую секцию я сколько не старался фискальный регистратор ругался.
Так и не получилось.
Я полностью переписывал работу с подарочными сертификатами в Розница 1.0. У меня есть даже "Подарочный сертификат на произвольную сумму" (сумма определяется стоимостью сертификата при его продаже покупателю) :-) Про то что надо их по отдельному виду оплаты через фискальный аппарат проводить это правда, иначе невозможно разобраться где оплата картой, где сертификатом. По учету продажа ПС - получение предоплаты, использование ПС - использование предоплаты. Соответственно учитываем в налоговом учете продажу ПС и использование.