Имя: Пароль:
 
1C
1С v8
Кассир в чеке прихода распечатывается GUID в 1С УПП 1.3
0 skupidom
 
10.10.18
23:08
В 1С УПП (1.3.110.1) доработали печать чека с использованием драйвера ККТ передачи данных 9.12.2 Атол из платежного поручения входящего.
В чеке прихода кассир отображается вместо наименования GUID.  
Хотя в чеках открытия, расхода (ППИ) и закрытия кассовой смены кассир печатается наименование корректно.
Процедура печати чека из ППВ:
Перем ФУ;
    
    Если НомерЧекаККМ <> 0 Тогда
        Предупреждение("Чек уже пробит на фискальном устройстве!", 60);
        Возврат;
    КонецЕсли;
    МассивФР  = ПолучитьСерверТО().ПолучитьСписокУстройств(
                        Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор,
                        Организация);
    МассивККТ = ПолучитьСерверТО().ПолучитьСписокУстройств(
                        Перечисления.ВидыТорговогоОборудования.ККТ,
                        Организация);                        
    МассивФУ = Новый Массив();
    ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивФУ, МассивФР);
    ОбщегоНазначенияКлиентСервер.ДополнитьМассив(МассивФУ, МассивККТ);    
    ФУ            = Неопределено;
    СписокФУ      = Новый СписокЗначений();
    Вид           = Неопределено;
    Представление = Неопределено;
    Для Каждого ФУ Из МассивФУ Цикл        ПолучитьСерверТО().ПолучитьПредставлениеУстройства(ФУ, Вид, Представление);
        СписокФУ.Добавить(ФУ, Представление);
    КонецЦикла;

    КоличествоФУ = СписокФУ.Количество();
    Если      КоличествоФУ = 0 Тогда
        Предупреждение("Фискальное устройство не подключено!");
        ФУ = Неопределено;
    ИначеЕсли КоличествоФУ = 1 Тогда
        ФУ = СписокФУ[0].Значение;
    Иначе
        ФУ = СписокФУ.ВыбратьЭлемент("Необходимо выбрать фискальное устройство");
        Если ФУ = Неопределено Тогда
            Предупреждение("Операция отменена пользователем");
        Иначе
            ФУ = ФУ.Значение;
        КонецЕсли;
    КонецЕсли;
    Если НЕ ЗначениеЗаполнено(ФУ) Тогда
        Возврат;
    КонецЕсли;
    Если (НЕ Проведен) ИЛИ Модифицированность Тогда
        Ответ = Вопрос("Провести документ?", РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да);
        Если Ответ <> КодВозвратаДиалога.Да Тогда
            Предупреждение("Операция не выполнена!");
            Возврат;
        КонецЕсли;
    КонецЕсли;    
    ЗаписатьВФорме(РежимЗаписиДокумента.Проведение);
    Если (НЕ Проведен) ИЛИ Модифицированность Тогда
        Предупреждение("Операция не выполнена!");
        Возврат;
    КонецЕсли;    
    ВидФУ = ПолучитьСерверТО().ПолучитьВид(ФУ);
    Если ВидФУ = ПредопределенноеЗначение("Перечисление.ВидыТорговогоОборудования.ККТ") Тогда
        
        ОписаниеПКС = КассовыеСменыВызовСервера.ОписаниеПоследнейКассовойСмены(ФУ);
        Если ОписаниеПКС = Неопределено ИЛИ ОписаниеПКС.Статус = Перечисления.СтатусыКассовойСмены.Закрыта Тогда
            ОбщегоНазначения.СообщитьОбОшибке("Кассовая смена не открыта");
            Возврат;
        КонецЕсли;        
        ОбъектДрайвера = Неопределено;
        ОбработкаОбслуживания = Неопределено;        ПолучитьСерверТО().ПолучитьОбъектДрайвера(ФУ, ОбработкаОбслуживания, ОбъектДрайвера);
        ОбработкаОбслуживания.ПолучитьПараметрыККТ(ОбъектДрайвера);
        ВерсияФормата = МенеджерОборудованияКлиентСервер.ВерсияФФД(ОбъектДрайвера.ВыходныеПараметры);
        
        ПараметрыЧека = МенеджерОборудованияКлиентСервер.ПараметрыОперацииФискализацииЧека();
        ПараметрыЧека.Вставить("ОписаниеПКС", ОписаниеПКС);
        МенеджерОборудованияВызовСервера.ПодготовитьДанныеДляФискализацииЧека(Ссылка, ПараметрыЧека, ВерсияФормата,
            ПолучитьСерверТО().ПолучитьМодель(ФУ), СокрЛП(Контрагент), НазначениеПлатежа);
        Результат = ОбработкаОбслуживания.ФискализироватьЧек(ОбъектДрайвера, ПараметрыЧека);
        Если Не ЗначениеЗаполнено(Результат) Тогда
            ЭтотОбъект.НомерЧекаККМ = ОбъектДрайвера.ВыходныеПараметры[1];
            ЭтотОбъект.ККМ = ОписаниеПКС.КассаККМ;
            ЭтотОбъект.ТекстЭлектронногоЧека = ПараметрыЧека.ТекстЭлектронногоЧека;

            Оплачено = Истина;
            ПриЗаписиПерепроводить = Ложь;            ЗаписатьВФорме(РежимЗаписиДокумента.Запись);
            ПриЗаписиПерепроводить = Истина;
        Иначе            ОбщегоНазначения.СообщитьОбОшибке(ОбъектДрайвера.ОписаниеОшибки);
            Возврат;
        КонецЕсли;
    КонецЕсли;
1 DmVl76
 
11.10.18
05:02
Скорее всего нужно смотреть в МенеджерОборудованияВызовСервера.ПодготовитьДанныеДляФискализацииЧека, там формируется xml для передачи обработке обслуживания, хотя мельком глянул
ОбщиеПараметры.Кассир = Ссылка.Ответственный.Наименование;
не зависимо от документа, лучше всего отладчиком погонять и словить конечный xml, что в нем, может где-то еще кассира заполняете.
2 DmVl76
 
11.10.18
05:03
И скорее всего присваиваете просто ссылку на физ. лицо
3 AneJIbcuH
 
11.10.18
05:41
(1) Пишут, что доработали и скорее всего воткнули типа этого:
xmlСтрока(Ссылка.Ответственный) , а тут как раз вернёт GUID
4 DrZombi
 
11.10.18
06:07
(0) Вот тут смотри:

МенеджерОборудованияВызовСервера.ПодготовитьДанныеДляФискализацииЧека(Ссылка, ПараметрыЧека, ВерсияФормата,
            ПолучитьСерверТО().ПолучитьМодель(ФУ), СокрЛП(Контрагент), НазначениеПлатежа);

...
И еще, используйте команду "Строка()" :)
5 DrZombi
 
11.10.18
06:08
(3) +100500 :)
6 DrZombi
 
11.10.18
06:09
+ Обычно еще просто пишут напрямую.

ФизЛицо.Наименование, чтобы наверняка :)
AdBlock убивает бесплатный контент. 1Сергей