Имя: Пароль:
1C
1C 7.7
v7: ККМ штрих отразить услуги
0 knopik777
 
22.09.18
15:58
Друзья, есть Штрих-on-Line все настроено все работает, есть необходимость добавить отражение услуг. Сейчас в чеке ниже описания товара выводится поле с цифрой 1, а ниже слово товар.
Скажите как отразить услугу. Секциями или чем и как?
Поиском не нашел.
1 Звездец
 
22.09.18
16:33
признаком предмета расчета. Читай описание ФФД 1.05, а потом руководство программиста драйвера
2 kupec
 
24.09.18
10:33
(0) Разобрались?
3 knopik777
 
24.09.18
15:11
(2) нет. Ищю варианты и примеры
4 Kigo_Kigo
 
24.09.18
15:41
А чем продажа товара и продажа услуги отличается по сути пробития чека?
5 kupec
 
24.09.18
16:33
(4) тем что указываешь разные параметры при формировании продажи
6 kupec
 
24.09.18
16:33
//*****************************************************************************************
//PaymentItemSign ПризнакПредметаРасчета
//Признак прдемета расчета. Возможные значения:
//1. Товар
//2. Подакцизный товар
//3. Работа
//4. Услуга
//5. Ставка азартной игры
//6. Выигрыш азартной игры
//7. Лотерейный билет
//8. Выигрыш лотереи
//9. Предоставление РИД
//10. Платеж
//11. Составной предмет расчета
//12. Иной предмет расчета

//печатаем чек
//ПРОДАЖА

ПроцедураПодключенияК_ККМ();

ФР.Password=ПарольКассира;
ФР.CheckType=0;
ФР.OpenCheck();
//передача адреса для отправки на EMAIL                
Если СокрЛП(Документ.АдресОтправкиЧека)<>"" Тогда
    ФР.CustomerEmail=СокрЛП(Документ.АдресОтправкиЧека);
    ФР.FNSendCustomerEmail();                      
КонецЕсли;
Документ.ВыбратьСтроки();
Пока Документ.ПолучитьСтроку()=1 Цикл
    ФР.Password=ПарольКассира;
    ФР.Quantity=Документ.Количество;
    ФР.Price=Документ.Цена;
    ФР.Department=1;
    ФР.PaymentTypeSign=1;
    Если Документ.Номенклатура.Услуга=1 Тогда
        ФР.PaymentItemSign=4;
    Иначе
        ФР.PaymentItemSign=1;
    КонецЕсли;    
    ФР.StringForPrinting=Документ.Номенклатура.Наименование;
    ФР.FNOperation();
КонецЦикла;
ФР.Password=30;                              
ФР.Summ1=Документ.СуммаПолученныхНаличных;
ФР.StringForPrinting="";
ФР.CloseCheckEX();

ПроцедураОтключенияОт_ККМ();
7 Pit0n_08
 
24.09.18
17:05
(7) это код для Штриховых ККМ?
8 victuan1
 
24.09.18
17:29
(7) Да.
9 kupec
 
24.09.18
18:02
(7) только подкорректируй его под свои нужды
10 Pit0n_08
 
04.01.19
12:56
(6, 8) А кто подскажет - каким параметром для ККМ Штрих определяется система налогообложения (ОСН, УСН, ЕНВД и т.п.)?
11 Pit0n_08
 
04.01.19
13:08
(+10) Походу
ФР.TaxType = 4;  // 2 - УСН Доход,  4 - УСН Доход-Расход, 8 - ЕНВД
12 DeMi4
 
04.01.19
13:15
А почему не используете библиотеку SMDrvFR1CLib24.dll и воспользоваться методами которые определены здесь https://its.1c.ru/db/metod8dev/content/4829/hdoc ?
13 Pit0n_08
 
04.01.19
13:22
(12) В типовой ТиС (р. 998) прилагается библиотека smDrvFR1CLib20.dll и с ней ККМ на ФФД 1.05 работать не желают :(
14 DeMi4
 
04.01.19
13:26
Работают. Версия 722 драйвера и SMDrvFR1CLib24.dll. но вот обращается он к ней progid="AddIn.SMDrvFR1C20". ни 731 ни 744 у меня тоже не заработали.
15 DeMi4
 
04.01.19
13:27
Может поправят позже. Пока полет нормальный.
16 Pit0n_08
 
04.01.19
13:30
(14) А где брали SMDrvFR1CLib24.dll?
И работают с обработкой обслуживания frSHTRIH54_comm.ert?
17 DeMi4
 
04.01.19
13:32
С обработкой не знаю. C:\Program Files (x86)\SHTRIH-M\DrvFR 4.14\Bin\1C\shtrih-m_20 брал вот тут
18 DeMi4
 
04.01.19
13:34
Если ЗагрузитьВнешнююКомпоненту(глКаталогКомпонент + "smDrvFR1CLib24.dll") = 1 Тогда
Объект = СоздатьОбъект("AddIn.SMDrvFR1C20");

У меня вот так заработало.
19 Pit0n_08
 
04.01.19
13:41
(17) Если говорить о штатном подключении ФР в 1С 7.7 ТиС, то при выборе модели ККМ указываются, как минимум, три параметра: используемая библиотека, программный идентификатор и обработка обслуживания. Если обработка обслуживания внешняя, то для Штрихов применялись fr_elves.ert (нативный доступ к ККМ) и frSHTRIH54_comm.ert (через XML-обертку). А у Вас какая?
20 DeMi4
 
04.01.19
13:44
У меня самописная обработка. работаю через XML
21 Pit0n_08
 
04.01.19
13:49
(20) Спасибо за информацию. Если это не связано с гос. тайной - поделитесь обработкой на почту. :)
22 DeMi4
 
04.01.19
14:01
Там ни чего собственно секретного нет. ИДУстройства получается через метод Open(ИДУстройства), А дальше формирование XML по обисанию с сайта методической поддержки.
23 Hsals
 
04.01.19
14:21
(22) Если не сложно, то можно тоже обработку на почту из профиля?
24 Масянька
 
04.01.19
14:46
(6) Она меня задолбала...
Без PrintString - выдает ошибку "Неверное состояние ФН".
С PrintString печатает 2 раза: в самом начале чека (после запрограммированного в чеке) и потом, как положено.
Чего её надо?!
25 NikeArz
 
04.01.19
15:42
(24) Ты чего опять ругаешься, чего опять не так? Если применяешь метод  PrintString() то после него обязательно StringForPrinting = ""; Не будет дубляжа
26 Масянька
 
04.01.19
15:47
(25) Ща покажу...
27 Масянька
 
04.01.19
15:52
(25) Вот - https://pastenow.ru/57dc6625bf182dc44fb9a918feaab653
Вверху 4 - это предмет.
Код:
        // загоняем чек
        Объект.Price = ПечЦена;
        Объект.Quantity = ПечКоличество;
        Объект.Summ1Enabled = 1;
        Объект.Summ1 = ПечСумма;
        Объект.PaymentTypeSign = 4;
        Объект.Tax1 = ПечСтавкаНДС;
        Объект.TaxValueEnabled = 0;
        Объект.TaxValue1 = ПечНДС;
        Объект.PaymentItemSign = Вид;
        Объект.StringForPrinting  = СокрЛП(Вид);
        Объект.PrintString();
        Объект.StringForPrinting  = ПечНаименование;
        //Объект.PrintString();
        
        Результат = ОбработкаОшибокПриПечати(Объект);

        Если (Результат = 0) Тогда
            Объект.FNOperation();
28 Масянька
 
04.01.19
15:53
+(27) Если первую Объект.PrintString(); убрать, то выдает неверное состояние ФН.
29 Масянька
 
04.01.19
15:56
+ (28) Если Объект.StringForPrinting  = СокрЛП(Вид); убрать, то наименование товара печатает вверху. А потом и как надо - двоит то есть.
Что за хрень лезет вверху?
30 NikeArz
 
04.01.19
15:58
(28)  Объект.Price = ПечЦена;
        Объект.Quantity = ПечКоличество;
        Объект.Summ1Enabled = 1;
        Объект.Summ1 = ПечСумма;
        Объект.PaymentTypeSign = 4;
        Объект.Tax1 = ПечСтавкаНДС;
        Объект.TaxValueEnabled = 0;
        Объект.TaxValue1 = ПечНДС;
        Объект.PaymentItemSign = Вид;
        Объект.StringForPrinting  = СокрЛП(Вид);
        Объект.PrintString();
        Объект.StringForPrinting  = "";
        Объект.StringForPrinting  = ПечНаименование;
        Объект.PrintString();
        Объект.StringForPrinting  = "";

        
        Результат = ОбработкаОшибокПриПечати(Объект);

Попробуй вот так. Очищай строку печати перед печатью следующей. К сожалению у Штрихов есть такой косяк дублировать прошлую строчку.
31 NikeArz
 
04.01.19
16:00
(29) Обрати внимание что в обработке, которую я тебе прислал строка печати всегда очищается после метода печати.
32 Масянька
 
04.01.19
16:02
(30)         Объект.Price = ПечЦена;
        Объект.Quantity = ПечКоличество;
        Объект.Summ1Enabled = 1;
        Объект.Summ1 = ПечСумма;
        Объект.PaymentTypeSign = 4;
        Объект.Tax1 = ПечСтавкаНДС;
        Объект.TaxValueEnabled = 0;
        Объект.TaxValue1 = ПечНДС;
        Объект.PaymentItemSign = Вид;
        Объект.StringForPrinting  = СокрЛП(Вид);
        Объект.PrintString();
        Объект.StringForPrinting="";
        Объект.StringForPrinting  = ПечНаименование;
        Объект.PrintString();
        Объект.StringForPrinting="";
И 4, и наименование вверху.
На месте (где надо) только цена, сумма.
33 NikeArz
 
04.01.19
16:02
(29) Понял в чем у тебя дело. Раздели печать всего чека на 2 блока. Блок отправки в ОФД и Блок печати. Сложного нет ничего сделай по аналогии обработки и тогда все будет хорошо. У меня тоже раньше задваивалось.
34 Масянька
 
04.01.19
16:08
(33) Зашибись...
35 NikeArz
 
04.01.19
16:11
(34) НЕ паникуй это кажется что сложно. Попробую тебе показать.
36 Масянька
 
04.01.19
16:14
(35) Я не паникую. Я фигею.
37 NikeArz
 
04.01.19
16:15
(34) Объект.Price = ПечЦена;
        Объект.Quantity = ПечКоличество;
        Объект.Summ1Enabled = 1;
        Объект.Summ1 = ПечСумма;
        Объект.PaymentTypeSign = 4;
        Объект.Tax1 = ПечСтавкаНДС;
        Объект.TaxValueEnabled = 0;
        Объект.TaxValue1 = ПечНДС;
        Объект.PaymentItemSign = Вид;
        Объект.StringForPrinting  = "//"+ПечНаименование;
        Объект.PrintString();
        Объект.StringForPrinting="";
      
Результат = ОбработкаОшибокПриПечати(Объект);

        Если (Результат = 0) Тогда
            Объект.FNOperation();

       В этом блоке просто печатай информацию




Обрати внимание "//" Это указывает что информация пойдет в ОФД а на печать выводится не будет. Поэтому блок печати можешь сделать как тебе нравится
38 NikeArz
 
04.01.19
16:17
(36) Объект.Price = ПечЦена;
        Объект.Quantity = ПечКоличество;
        Объект.Summ1Enabled = 1;
        Объект.Summ1 = ПечСумма;
        Объект.PaymentTypeSign = 4;
        Объект.Tax1 = ПечСтавкаНДС;
        Объект.TaxValueEnabled = 0;
        Объект.TaxValue1 = ПечНДС;
        Объект.PaymentItemSign = Вид;
        Объект.StringForPrinting  = "//"+ПечНаименование;

      
Результат = ОбработкаОшибокПриПечати(Объект);

        Если (Результат = 0) Тогда
            Объект.FNOperation();

       В этом блоке просто печатай информацию




Обрати внимание "//" Это указывает что информация пойдет в ОФД а на печать выводится не будет. Поэтому блок печати можешь сделать как тебе нравится
Так правильнее
39 NikeArz
 
04.01.19
16:19
(36) Если самой проблемно. Пришли обработку на e-mail завтра сделаю. Все равно до 10 дурака валяю.
40 Масянька
 
04.01.19
16:23
(39) Проблема в том, что выдает код ошибки 2 - "Отсутствует фискальная память 1."
41 NikeArz
 
04.01.19
16:25
(40) Так фискальной памяти не должно быть. ККТ разбит на две части. Блок ФН и блок печати. На данный момент у них не должно быть ни ЭКЛЗ, ни фискальной памяти.
42 NikeArz
 
04.01.19
16:36
(40) Извини я тебе прислал обработку для 8.2. У меня есть и для 7.7. Пришлю
43 NikeArz
 
04.01.19
17:03
(40) Выслал.
44 Масянька
 
04.01.19
18:36
(43) Спасибо. Завтра порою.
Но всё-таки, по моему, должно работать в одном цикле.
45 Масянька
 
09.01.19
16:24
(43) Спасибо. И за критику моей тоже.
Сделала одним циклом (опять встала на табуретку :)))))))) ).
46 Сияющий в темноте
 
09.01.19
23:08
Кстати да,штрих замечательная машина можно отключить печать чека,а потом напечатать его текстовыми строками со всеми скидками и прочими дополнительными атрибутами.
и это,Атол такой же,если очень захотеть.
47 Масянька
 
10.01.19
08:28
(46) Все равно, что одно, что другое, что третье - г..но. Поскольку сделано на коленке и впопыхах.
48 Kigo_Kigo
 
10.01.19
12:37
(32) Стотышшшшььь раз говорил, сначала надо печатать наименование, потом цену и количество и все остальное, нет все через жо у тебя опять..
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший