![]() |
![]() |
|
Знатокам системы взаимодействия в 1С, вопрос по фискализации в Рознице | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
14.05.22
✎
12:51
|
Коллеги, у меня иногда фискализация в рознице зависает вот на этом коде:
&Вместо("ОбработкаОповещенияСообщенийФискализации") Процедура дор_ОбработкаОповещенияСообщенийФискализации(Сообщение, ДополнительныеПараметры) //Боремся с зацикливанием очереди сообщений Если СтрНачинаетсяС(Сообщение.Текст, НСтр("ru='Фискализация чека'")) Тогда Если глПодключаемоеОборудование.Свойство("дор_ИдентификаторОбработанногоСообщенияФискализации") И глПодключаемоеОборудование.дор_ИдентификаторОбработанногоСообщенияФискализации = Сообщение.Идентификатор Тогда Попытка дор_Сервер.УдалитьСообщениеСистемыВзаимодействияПоИдентификатору(Сообщение.Идентификатор); Исключение //Уже удалено КонецПопытки; Возврат; КонецЕсли; глПодключаемоеОборудование.Вставить("дор_ИдентификаторОбработанногоСообщенияФискализации", Сообщение.Идентификатор); КонецЕсли; ПродолжитьВызов(Сообщение, ДополнительныеПараметры); КонецПроцедуры Я написал защиту от обработки одного и того же сообщения, но оно валится и валится и не удаляется, что показательно. Как с этим бороться? Кто генерит это сообщение системы взаимодействия (в коде не нашел), почему оно циклится? Почему не удаляется? Розница 2.3, актуальная. |
|||
1
Гений 1С
гуру
23.05.22
✎
11:39
|
Возможно, надо было удалять в привелигированном режиме, посмотрю.
Описание: Удаляет указанное сообщение из обсуждения. Вызов метода возможен только в привилегированном режиме. Процедура УдалитьСообщениеСистемыВзаимодействияПоИдентификатору(Идентификатор) Экспорт //Удаляет сообщение только в привелигированном режиме УстановитьПривилегированныйРежим(Истина); СистемаВзаимодействия.УдалитьСообщение(Идентификатор); КонецПроцедуры Ну и поставил протоколироание: &Вместо("ОбработкаОповещенияСообщенийФискализации") Процедура дор_ОбработкаОповещенияСообщенийФискализации(Сообщение, ДополнительныеПараметры) //Боремся с зацикливанием очереди сообщений Если СтрНачинаетсяС(Сообщение.Текст, НСтр("ru='Фискализация чека'")) Тогда Если глПодключаемоеОборудование.Свойство("дор_ИдентификаторОбработанногоСообщенияФискализации") И глПодключаемоеОборудование.дор_ИдентификаторОбработанногоСообщенияФискализации = Сообщение.Идентификатор Тогда Попытка дор_Сервер.УдалитьСообщениеСистемыВзаимодействияПоИдентификатору(Сообщение.Идентификатор); Исключение //Уже удалено дор_Сервер.ЗаписьЖурналаРегистрацииНаСервере("Отладка.НеУдалосьУдалитьСообщение", ,,, "Идентификатор: " + Сообщение.Идентификатор + " Ошибка: " + ОписаниеОшибки()); КонецПопытки; Возврат; КонецЕсли; глПодключаемоеОборудование.Вставить("дор_ИдентификаторОбработанногоСообщенияФискализации", Сообщение.Идентификатор); КонецЕсли; ПродолжитьВызов(Сообщение, ДополнительныеПараметры); КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |