Имя: Пароль:
1C
1С v8
ПКО при печати чека "операция не выполнена" УПП
,
0 Дмитрий95
 
28.04.17
16:42
Доброго дня гуру. Столкнулся с такой проблемой. при печати чека ккм выскакивает окно "операция не выполнена" и чек не печатается. Ошибка нигде не логируется. Подскажите, куда смотреть? До этого все было хорошо.
1 vicof
 
28.04.17
16:49
в отладчик
2 Serg_1960
 
28.04.17
17:06
Ошибка "Операция не выполнена" на панели с одной единственной кнопкой "Ок"? Если мне память не изменяет, то это предупреждение платформы. Где-то не прошла формальная проверка. А в ЖР тоже ничего нет? А если с полными правами печатать?
3 Дмитрий95
 
28.04.17
19:21
(2) совершено верно, с кнопкой "ОК" и все. в ЖР совсем ничего нет. пробовал и с полными правами. непонянтно (
4 Дмитрий95
 
02.05.17
08:37
ап
5 Гипервизор
 
02.05.17
08:44
Окна-Служебные окна-Служебные сообщения
Ничего нет?
6 Дмитрий95
 
02.05.17
08:45
(5) неа. вообще ничего.
7 catena
 
02.05.17
08:47
Ну, для начала замер производительности и искать там "Отказ = Истина"
8 Дмитрий95
 
02.05.17
17:04
(7) нет ничего подобного
9 SeriyP
 
02.05.17
17:27
(0) Отладка/Остановка по ошибке?
10 Serg_1960
 
02.05.17
20:28
(9) Проблема в том, что для отладчика это не ошибка строго говоря.
11 Дмитрий95
 
03.05.17
08:01
и как же понять почему чек не печатается?
12 catena
 
03.05.17
08:43
(11)Отладчиком понять, отладчиком. Пройтись по процедуре пошагово. И понять, что ее отменяет.
13 rbcvg
 
03.05.17
08:57
(0) было подобное пару раз. Перезагрузка кассы(иногда совместно с 1С) помогала. Сейчас ошибки нет. Что это было х.з. Забили.
14 SeriyP
 
03.05.17
10:30
(10) Значит трассируй ошибку с момента нажатия на кнопку "печать чека" или как она там на форме называется
15 Дмитрий95
 
03.05.17
14:33
в том и дело что нету ошибки. уже все перепробовал :(
16 h-sp
 
03.05.17
14:47
(15) Не ошибку, а переменную Отказ смотрите.
17 Дмитрий95
 
03.05.17
15:38
(16) Уже смотрел. вообще не "спотыкается" в документе ПКО кнопка Чек содержит процедуру

Процедура ОсновныеДействияФормыЧек(Кнопка)
    
    Перем ФУ;
    
    Если НомерЧекаККМ <> 0 Тогда
        Предупреждение("Чек уже пробит на фискальном регистраторе!", 60);
        Возврат;
    КонецЕсли;

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

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

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

    Исключение
        
        ОтменитьТранзакцию();
        Предупреждение("Операция не выполнена!");
        
    КонецПопытки;
    
КонецПроцедуры
18 Дмитрий95
 
03.05.17
15:39
берем Исключение ОтменитьТранзакцию(); Предупреждение("Операция не выполнена!");  

Тоже ничего.
19 h-sp
 
03.05.17
15:47
(18) вы не в теме, получается. "Операция не выполнена" - это внутреннее сообщение платформы, в текстах вы его не найдете.

Вам говорят ищите Отказ = Истина; вы верующий что ли? Слово Отказ боитесь произносить?
20 SeriyP
 
03.05.17
15:57
(18) найти надо из какой строки "прыгает" в Исключение
21 Дмитрий95
 
03.05.17
16:09
(19) при нажатии на кнопку Чек "Отказ = Истина" нигде не встречается. смотрел по замеру производительности.
22 dezss
 
03.05.17
16:16
(17) во время отладки прыгает в Исключение?
23 Дмитрий95
 
03.05.17
16:21
(22) в том и дело что нет
24 1Снеговик
 
гуру
03.05.17
16:25
Прыгает прыгает. А от чего ж еще?
25 1Снеговик
 
гуру
03.05.17
16:26
Ну так заходи в попытку и отлаживай по шагам.
А если до этого еще что-то случается, то с драйвером что-то, не может оборудование инициализировать.
26 dezss
 
03.05.17
16:32
(23) точно?
т.е. транзакция фиксируется, после этого прыгает на конец процедуры не заходя в исключение, а потом появляется сообщение?
27 catena
 
04.05.17
06:57
А мне нравится вот эта строчка:

ЗаписатьВФорме(РежимЗаписиДокумента.Запись);

Я буду за нее голосовать.
28 Дмитрий95
 
04.05.17
11:38
Вынес процедуру ПодготовитьДанныеДляФискализацииЧекаПКО в модуль объекта и все заработало. На релизе 1.3.89.2 они почему то в модуль документа запихнули.