Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: АТОЛ 54-ФЗ ФФД1.05 Не могу сделать возврат прихода

v7: АТОЛ 54-ФЗ ФФД1.05 Не могу сделать возврат прихода
Я
   Caesar
 
19.07.18 - 15:41
Добрый день.
По просьбе клиента дорабатываю штатную обработку из ТиС 7.7.
Не могу добиться заставить делать возврат прихода.
Пробую делать вот так:
Если ПризнВозврата = 0  Тогда   
    Объект.AttrValue = 1;  //приход

    Объект.AttrNumber = 1054;
    Объект.WriteAttribute();  
Иначе
    Объект.AttrValue = 2;  //возврат  прихода

    Объект.AttrNumber = 1054;
    Объект.WriteAttribute();
КонецЕсли;

Из документа передаю соответствующее значение ПризнВозврата, но ККМ (АТОЛ 30Ф) упорно печатает признак расчета "ПРИХОД". Что еще необходимо задать, чтобы получить чек на возврат прихода?
Описание ФФД (упрощенное) брал тут:
https://online.atol.ru/files/Uproschennaya_versiya_FFD_ot_ATOL.pdf
 
 
   Kigo_Kigo
 
1 - 19.07.18 - 15:51
// // // // // // // // // // // // // // // // // // // // // // // // // // // // // //

// ----- Чек возврата прихода без отправки электронного чека покупателю ----//

//// // // // // // // // // // // // // // // // // // // // // // // // // // // // // 


// Mode - Режим:

//     0 - Выбора
//     1 - Регистрации

//     2 - Отчётов без гашения
//     3 - Отчётов с гашением

driver.Mode = 1;
driver.SetMode();

driver.NewDocument();

// Записать должность и ФИО кассира

driver.AttrNumber = 1021;
driver.AttrValue = "Старший кассир Иванов И.И.";
driver.WriteAttribute();

// CheckType - Тип чека:

//     1 - Приход
//     2 - Возврат прихода

//     4 - Расход
//     5 - Возврат расхода

//     7 - Коррекция прихода
//     9 - Коррекция расхода

driver.CheckType = 2;
// CheckMode - Режим формирования чека:

//     0 - только в электронном виде без печати на чековой ленте
//     1 - печатать на чековой ленте

driver.CheckMode = 1;
driver.OpenCheck();

driver.AttrNumber = 1055;
// Применяемая система налогооблажения в чеке:

//     ОСН - 1
//     УСН доход - 2

//     УСН доход-расход - 4
//     ЕНВД - 8

//     ЕСН - 16
//     ПСН - 32

driver.AttrValue = 8;
driver.WriteAttribute();

// Регистрация товара или услуги

driver.Name = "Молоко 3.2%";
driver.Price = 50.33;
driver.Quantity = 2;
driver.Department = 0;
// TaxTypeNumber - Номер налога:

//     0 - Налог из секции
//     1 - НДС 0%

//     2 - НДС 10%
//     3 - НДС 18%

//     4 - НДС не облагается
//     5 - НДС с расчётной ставкой 10%

//     6 - НДС с расчётной ставкой 18%
driver.TaxTypeNumber = 4;
// рекомендуется рассчитывать в кассовом ПО цену со скидкой, а информацию по начисленным скидкам печатать нефискальной печатью и не передавать скидку в ККМ, поэтому код для начисления скидки закомментирован

// driver.DiscountValue = 10;
// // DiscountType - Тип скидки:

////     0 - суммовая

////     1 - процентная

// driver.DiscountType = 0;
driver.Registration();
driver.Caption = "В том числе скидка: 4.67\nЦена без скидки: 55.00";
driver.PrintString();

// Отброс копеек (округление чека без распределения по позициям). Скидка на чек доступна только для его округления до рубля. Таким образом недоступны: надбавки, назначение "на позицию", процентные значения.  SummCharge(), PercentsCharge(), PercentsDiscount () и ResetChargeDiscount () более недоступны

// Destination - Назначение скидки:
//     0 - на чек

//     1 - на позицию (недоступно)
driver.Destination = 0;
driver.Summ = 0.66;
driver.SummDiscount();

// Нефискальная печать с информацией по скидкам чека

driver.Caption = "--Скидки по чеку--";
driver.PrintString();
driver.Caption = "Сумма чека без скидок 110.00";
driver.PrintString();
driver.Caption = "Скидки по карте: 9.34";
driver.PrintString();
driver.Caption = "Округление: 0.66";
driver.PrintString();

// Оплата и закрытие чека

// TypeClose - Тип оплаты:
//     0 - Наличными

//     1 - Электронными средствами платежа
driver.TypeClose = 0;
driver.Summ = 100.00;
driver.Payment();
driver.CloseCheck();
   Kigo_Kigo
 
2 - 19.07.18 - 15:53
Короче используйте команду
объект.CheckType = 2;
   Масянька
 
3 - 19.07.18 - 15:56
(2) Однозначно. И лучше перед CheckOpen воткнуть.
   Davalebor
 
4 - 19.07.18 - 16:03
(2) А можно ли после печати чека получить в 1с номер чека, который пробит?

В старой типовой обработке, где формировался файлик XML?
а потом был код
Объект.СформироватьЧек(глФРИДУстройства, Кассир, Электронно, ТекстАдоДБСтрим, НомерЧека, НомерСмены, ФискальныйПризнак, АдресСайтаПроверки);

В НомерЧека возвращался реальный номер пробитого чека.

А в новой обработке получение номера чека никак не описано. Есть возможность его получить?
   Kigo_Kigo
 
5 - 19.07.18 - 16:07
(4) driver.RegisterNumber = 51;
driver.GetRegister();
НомеррДока = driver.DocNumber
   Davalebor
 
6 - 19.07.18 - 16:14
(5) Спасибо!
Попробую.
   Caesar
 
7 - 19.07.18 - 17:52
А если используется конструкция beginItem / EndItem?
В таком случае OpenCheck излишен..
   Caesar
 
8 - 19.07.18 - 17:55
ну, то есть CheckOpen
   Davalebor
 
9 - 20.07.18 - 09:03
(5) Да, все отработало как надо. Спасибо.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует