текст xml содержит недопустимый символ в позиции 0
Добрый день. Клиенту обновили несколько баз до версии Розницы 2.3.9.42. На 4-ти компах всё взлетело, всё работает хорошо. Но на одной из баз, при сканировании штрихкода товара в формате EAN 13 в документ "Поступление товаров", выскакивает ошибка "текст xml содержит недопустимый символ в позиции 0: 6438429602880". Посмотрел в отладке, останавливается в данном месте (см. скрин). Причем значение параметра "НовыеДанныеШтрихкода.Штрихкод это просто строка с обычным 13-ти значным кодом. При сканировании марки, например, всё хорошо, внутрь можно провалиться. Насколько я понял, в эту процедуру должны попадать только считанные марки. Сканер переподключал, всё окей. Товары продавать возможность есть, марка считывается корректно, как и штрихкод. Кто нибудь сталкивался с подобным?Заранее спасибо за ответ!
Прикрепленные файлы:

По теме из базы знаний
- 1С8:борьба - личный опыт работы с платформой 1с8
- Ошибка преобразования данных XDTO: Текст XML содержит недопустимый символ
- Удаление из узла обмена объектов с недопустимыми символами текста XML
- Поиск недопустимых символов в наименовании элементов справочников
- Ошибка: Текст XML содержит недопустимый символ в позиции
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Функция УдалитьНедопустимыеСимволыXML(Стр)
Позиция = НайтиНедопустимыеСимволыXML(Стр, , );
Пока Позиция <> 0 Цикл
Стр = Лев(Стр, Позиция-1) + Сред(Стр, Позиция+1);
Позиция = НайтиНедопустимыеСимволыXML(Стр, , );
КонецЦикла;
Возврат Стр;
КонецФункции //УдалитьНедопустимыеСимволыXML()
Показать
(9)
Чтобы не спорить попусту, отсканируйте штрих-код в Блокнот на "хорошем" и на "плохом" компах и сравните.
ругается на первый и последний символ, т.е. на кавычки. Но это же нормально вроде, штрихкод же формате "Строка" идет
Кавычками строка обозначается в коде. Но это вовсе не значит, что везде и всегда строки обрамляются кавычками: например, откройте любой текстовый файл - много там кавычек?
Чтобы не спорить попусту, отсканируйте штрих-код в Блокнот на "хорошем" и на "плохом" компах и сравните.
(14) не прошло и полгода, но все-же отвечу. У самого была сейчас такая проблема. Удалять поврежденную квитанцию с помощью утилиты curl (инструкций море). Как найти поврежденный документ в УТМ? Я открывал все входящие по очереди. Пока один из них не открылся. Это и была поврежденная квитанция. Удалил - 1С заработал.
Функция УдалитьНедопустимыеСимволыXML(Стр)
Позиция = НайтиНедопустимыеСимволыXML(Стр, , );
Пока Позиция <> 0 Цикл
Стр = Лев(Стр, Позиция-1) + Сред(Стр, Позиция+1);
Позиция = НайтиНедопустимыеСимволыXML(Стр, , );
КонецЦикла;
Возврат Стр;
КонецФункции //УдалитьНедопустимыеСимволыXML()
&НаКлиенте
Процедура Расш1_ВнешнееСобытиеПеред(Источник, Событие, Данные)
ОчиститьСообщения();
_ТекстОшибки = "";
_Данные = УдалитьНедопустимыеСимволыXML(СокрЛП(Данные));
//Сообщить("_Данные ="+_Данные+"=");
Если Найти(_Данные,"http:/") или Найти(_Данные,"https:/") или Найти(_Данные,"/www") Тогда
// Сообщить("***** Очистить Данные *****");
Данные = "";
//Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолосаОшибки, _СкоростьГолоса, -1, "Проверьте Количество");
КонецЕсли;
КонецПроцедуры
Показать
Весь Код для который использую.
&НаКлиенте
Процедура Расш1_ПриОткрытииПеред(Отказ)
// Вставить содержимое обработчика.
_ПользовательБД = ВРЕГ(СокрЛП(Объект.ПользовательБД));
Если _ПользовательБД="АДМИНИСТРАТОР" Тогда
ЭтаФорма.Масштаб = 100;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВремяНаФорме()
//ВремяНаФормеТекст = Формат(ТекущаяДата(),"ДЛФ=T");
_ВремяНаФормеТекст = СокрЛП(Формат(ТекущаяДата(), "ДФ='dddd dd MM yyyy HH:mm'"));
Элементы.ВремяНаФормеТекст.Заголовок = _ВремяНаФормеТекст;
//Если СтатусСмены = ПолучитьСтатусСменыПеречисленияЗакрыта() Тогда
// //Сообщить("Подать Сигнал на Закрытие");
// ЭтаФорма.Закрыть();
// //ПоказатьПредупреждение(, "Подать Сигнал на Закрытие", , "ТекстЗаголовка");
// //ПодключитьОбработчикОжидания("ПоказатьОкноПредупреждение", 4, ИСТИНА);
// //ПодключитьОбработчикОжидания("ЗакрытьОкноРабочегоМестаКассира", 1, ИСТИНА);
//КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ПриОткрытииПосле(Отказ)
Элементы.ЗакрытьОкно.Видимость = Ложь;
ОчиститьСообщения();
_ПользовательБД = ВРЕГ(СокрЛП(Объект.ПользовательБД));
//Если _ПользовательБД="АДМИНИСТРАТОР" Тогда
// ЭтаФорма.Масштаб = 115;
//КонецЕсли;
Элементы.ПодменюРежим.Видимость = Ложь;
Элементы.ГруппаМоя.Видимость = Истина;
_ПользовательБД = ВРЕГ(СокрЛП(Объект.ПользовательБД));
_ip_max = "192.168.100.88";
_СкоростьГолоса = 6;
_НомерГолоса = 3;
_ГромкостьГолоса = Расш1_ОбщийМодуль1.Восстановить_Настройки("ГромкостьГолоса", _ПользовательБД);
_ГромкостьГолосаОшибки = 85;
Элементы.ОтложитьЧек.Видимость = Ложь;
Элементы.ПоказатьОстатки.Видимость = Ложь;
_ДеньНедели = Формат(ТекущаяДата(),"ДФ=dddd");
Если _ДеньНедели = "воскресенье" Тогда
ГромкостьГолоса = 100;
// Элементы.ОтложенныеЧеки.Видимость = Истина;
КонецЕсли;
_Вывод88 = Ложь;
//_ВидимостьСообщения = Истина;
_РежимТоваровед = Истина;
Элементы.ГруппаОформлениеКассыСамообслуживания.Видимость = Ложь;
//Элементы.ГруппаВидовОплат.Видимость = Ложь;
Если _ПользовательБД = "КАССА-2" Тогда
Элементы.ТоварыОст.Видимость = Ложь;
Элементы.ГруппаОформлениеКассыСамообслуживания.Видимость = Истина;
_РежимТоваровед = Ложь;
ВидимостьГруппаОперации(_РежимТоваровед);
_Вывод88 = Ложь;
_ВидимостьСообщения = Ложь;
Элементы.КомандаОплатыНаличнымиБыстро1.Видимость=Ложь;
Элементы.ОплатаНаличнымиВТихомРежиме.Видимость=Ложь;
//Элементы.ПоказатьОстатки.Видимость = Ложь;
Элементы.ГруппаВидовОплат.Видимость = Ложь;
Элементы.ГруппаСдача.Видимость = Ложь;
Элементы.ГруппаМоя.Видимость = Истина;
Элементы.ОплатаКартойВТихомРежиме.Высота = 15;
Элементы.ЗакрытьСмену.Высота = 6;
ВремяНаФорме();
ПодключитьОбработчикОжидания("ВремяНаФорме",15);
Элементы.ТекущийТоварКоличество.ТолькоПросмотр = Истина;
КонецЕсли;
Элементы.ВвестиДанныеПокупателя.Видимость=Ложь;
Элементы.ОткрытьПлиточныйИнтерфейсКаталога.Видимость=Ложь;
Элементы.ТекущийТоварЦенаИзКарточки.Видимость = Ложь;
Элементы.ДекорацияЗнакВалюты.Видимость = Ложь;
//СуммаОплаченоНал не трогать
// ШрифтОбычныйПолужирный18РМК
Элементы.ГруппаСуммаСкидки.Видимость = Ложь;
Элементы.ГруппаСуммаБонусов.Видимость = Ложь;
Элементы.ГруппаСуммаСертификата.Видимость = Ложь;
Элементы.ГруппаРучнаяСкидкаНаТовар.Видимость = Ложь;
Элементы.КомандаРежим.Видимость = Ложь;
//
Расш1_ОткрытьПанельИзбранныхТоваровВместо();
Если _ПользовательБД="АДМИНИСТРАТОР" Тогда
Элементы.ТоварыПредставлениеНоменклатураХарактеристика.Ширина = 100;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ОткрытьПанельИзбранныхТоваровВместо(Команда="")
Панель = Элементы.ПанельИзбранныхТоваров;
ПанельСкрыта = Панель.Скрыта();
ДопустимоСворачиватьПанельИзбранныхТоваров = (Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаОбщая);
Если ДопустимоСворачиватьПанельИзбранныхТоваров Тогда
Если ПанельСкрыта Тогда
Панель.Показать();
Иначе
//Если _ПользовательБД="КАССА-2" Тогда
//Панель.Скрыть();
//КонецЕсли;
КонецЕсли;
Иначе
Панель.Показать();
КонецЕсли;
Если Элементы.Страницы.ТекущаяСтраница = Элементы.СтраницаПустая Тогда
ОбщегоНазначенияРМККлиентСервер.УстановитьТекущуюСтраницу(Элементы.СтраницаОбщая);
КонецЕсли;
Элементы.ДекорацияТекстПустойСтраницы.Заголовок = "-";
КонецПроцедуры
&НаКлиенте
Процедура Расш1_УдалитьТоварПосле(Команда)
// Вставить содержимое обработчика.
_ТекстОшибки = "";
ОчиститьСообщения();
Если _ПользовательБД="АДМИНИСТРАТОР" Тогда
Расш1_ОткрытьПанельИзбранныхТоваровВместо();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_УдалитьЧекПосле(Команда)
_ТекстОшибки = "";
// Вставить содержимое обработчика.
Если _ПользовательБД="АДМИНИСТРАТОР" Тогда
Расш1_ОткрытьПанельИзбранныхТоваровВместо();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ПробитьЧекПосле(Команда)
_ТекстОшибки = "";
// Вставить содержимое обработчика.
_Сообщить("Расш1_ПробитьЧекПосле", _ВидимостьСообщения);
КонецПроцедуры
&НаКлиенте
Процедура Расш1_КомандаОплатыНаличнымиПосле(Команда)
_ТекстОшибки = "";
_Сообщить("Расш1_КомандаОплатыНаличнымиПосле", _ВидимостьСообщения);
//ПодключитьОбработчикОжидания("ВыполнитьПробитьЧек", 0.2, ИСТИНА);
//
//ГруппаСлоевОсновныхКоманд = Элементы.ГруппаСлоевОсновнаяКоманднаяПанельУправленияЧеком;
//ТекущийСлой = ИнтерфейсРМКСлужебныйКлиентСервер.ПолучитьТекущийСлойГруппы(ГруппаСлоевОсновныхКоманд);
//Если ТекущийСлой = Элементы.ГруппаКомандПробитияЧека И Элементы.ПробитьЧек.Доступность Тогда
//
// //КомандаПробитьЧек = ЭтотОбъект.Команды.Найти("ПробитьЧек");
// //ПробитьЧек(КомандаПробитьЧек);
// ТекущийЭлемент = Элементы.ПробитьЧек;
//
//КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПробитьЧек()
//ИмяНужнойКоманды = "ПробитьЧек"; // Тут просто имя команды как в конфигураторе.
//НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды);
//////Сообщить("НужнаяКоманда="+СокрЛП(НужнаяКоманда)+" ТипЗнч="+ТипЗнч(НужнаяКоманда));
//ПробитьЧек(НужнаяКоманда);
Shell= Новый COMОбъект("Wscript.Shell");
Shell.SendKeys("{F12}");
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ОплатаНаличнымиБыстроПосле(Команда)
_Сообщить("Расш1_ОплатаНаличнымиБыстроПосле", _ВидимостьСообщения);
//Если ЭтотОбъект.Открыта() И Объект.Товары.Количество() > 0 Тогда
//
// //_Режим = "ОплатаНаличнымиБыстро";
// _Режим = "";
//
// Shell= Новый COMОбъект("Wscript.Shell");
// Shell.SendKeys("{F6}");
//
// ПодключитьОбработчикОжидания("ВыполнитьПробитьЧек", 0.2, ИСТИНА);
//
// //Сообщить(ТекущаяДата());
//
// //ИмяНужнойКоманды = "ПробитьЧек"; // Тут просто имя команды как в конфигураторе.
// //НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды);
// ////Сообщить("НужнаяКоманда="+СокрЛП(НужнаяКоманда)+" ТипЗнч="+ТипЗнч(НужнаяКоманда));
// //ПробитьЧек(НужнаяКоманда);
//Иначе
// ЭтаФорма.ТекущийЭлемент = Элементы.ТоварыПредставлениеНоменклатураХарактеристика;
//КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_СуммаОплаченоНалПриИзмененииПосле(Элемент)
_Сообщить("Расш1_СуммаОплаченоНалПриИзмененииПосле", _ВидимостьСообщения);
Если Сдача<>0 Тогда
//СуммаСдачаВидимость(Истина);
//Элементы._СдачаПред.Видимость = Истина;
//Расш1_ОбщийМодуль1.ПередачаЗапоса(ip_max,"Сдача: "+Формат(Сдача,"ЧРГ=; ЧГ="), 8, Вывод88);
Расш1_ОбщийМодуль1.ПередачаЗапосаNew(_ip_max,"Сдача: "+Формат(Сдача,"ЧРГ=; ЧГ="), 8, _Вывод88, _ПользовательБД);
Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолоса, _СкоростьГолоса, -1, "Сдача "+СокрЛП(Сдача));
//Сообщить("2 Сдача: "+Формат(Сдача,"ЧРГ=; ЧГ="));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура _Сообщить(ТекстС, _ВидимостьСообщения)
//_ВидимостьСообщения = Истина;
Если _ВидимостьСообщения Тогда
Сообщить(ТекстС);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
&После("ВывестиИнформациюНаДисплейПокупателя")
Процедура Расш1_ВывестиИнформациюНаДисплейПокупателя(Операция)
_Операция = СокрЛП(Операция);
_Сообщить("Расш1_ВывестиИнформациюНаДисплейПокупателя Операция ="+_Операция+"=", _ВидимостьСообщения);
//_ВидимостьСообщения = Истина;
Если СокрЛП(_Операция)="НачалоРаботы" Тогда
Элементы.ОтложитьЧек.Видимость = Ложь;
_ТекстОшибки = "";
ОчиститьСообщения();
Элементы.ДекорацияТекстПустойСтраницы.Заголовок = "";
//_Сообщить("НачалоРаботы", _ВидимостьСообщения);
ОбъектShell = Новый COMОбъект("Wscript.Shell");
ОбъектShell.SendKeys("^+1"); //English CTRL SHIFT
Расш1_ОбщийМодуль1.ПередачаЗапосаNew(_ip_max, "Ок! ", 3, , _ПользовательБД);
Если _ПользовательБД="АДМИНИСТРАТОР" Тогда
Расш1_ОткрытьПанельИзбранныхТоваровВместо();
КонецЕсли;
ИначеЕсли _Операция = "ОжиданиеОплаты" Тогда
Расш1_ОбщийМодуль1.ПередачаЗапосаNew(_ip_max,"Жду Оплату",3,, _ПользовательБД);
//Расш1_ОбщийМодуль1.ПередачаЗапоса(ip_max,"Жду Оплату",3);
ИначеЕсли _Операция = "Оплата" Тогда
ИначеЕсли _Операция = "Сервис" Тогда
Попытка
//Расш1_ОбщийМодуль1.ПередачаЗапосаNew(_ip_max, "Отключена ", 3, , _ПользовательБД);
Оповестить("РабочееМестоОтключено",,ЭтотОбъект);
Исключение
КонецПопытки;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция Расш1_ПолучитьОстаток(Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ТоварыНаСкладахОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстатки";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Возврат Выборка.КоличествоОстаток;
КонецФункции
&НаКлиенте
&После("ПересчитатьИтогиТабличнойЧастиТовары")
Процедура Расш1_ПересчитатьИтогиТабличнойЧастиТовары(ОбнулитьСуммыОплат)
//Сообщить("Расш1_ПересчитатьИтогиТабличнойЧастиТовары");
_Сообщить("Расш1_ПересчитатьИтогиТабличнойЧастиТовары", _ВидимостьСообщения);
Если _СуммаИтогоПред <> СуммаИтого Тогда
Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолоса, _СкоростьГолоса, -1, СуммаИтого);
КонецЕсли;
_СуммаИтогоПред = СуммаИтого;
//_Вывод88 = Истина;
Если Сдача<>0 и СокрЛП(Сдача)<>"" Тогда
Иначе
Расш1_ОбщийМодуль1.ПередачаЗапосаNew(_ip_max,"Итог: "+Формат(СуммаИтого,"ЧРГ=; ЧГ="), 8, _Вывод88, _ПользовательБД);
КонецЕсли;
ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
Попытка
КолОст = Расш1_ПолучитьОстаток(ТекущаяСтрока.Номенклатура);
ТекущаяСтрока.Ост = КолОст;
//Если _ПоказатьНакрутку Тогда
// ПрихЦена = Расш1_ОбщийМодуль1.ПолучитьЦенуЗакупаНоменклатуры(ТекущаяСтрока.Номенклатура);
// Накрутка = ПолучитьНаценку(ТекущаяСтрока.Цена, ПрихЦена);
// ТекущаяСтрока.Накрутка = Накрутка;
//КонецЕсли;
//Сообщить(ТекущаяСтрока.Ост);
Исключение
//Сообщить("="+СокрЛП(ТекущаяСтрока)+"== "+ОписаниеОшибки());
КонецПопытки;
//Если _ПользовательБД = "КАССА-2" Тогда
// ЭтаФорма.ТекущийЭлемент = Элементы.ТоварыПредставлениеНоменклатураХарактеристика;
//КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ВнешнееСобытиеПосле(Источник, Событие, Данные)
Если _ПользовательБД = "КАССА-2" Тогда
//Сообщить("Источник:"+Источник+" Событие:"+Событие+" Данные:"+Данные);
ШккШкк = ВРЕГ(СокрЛП(Данные));
//ШккШкк=СтрЗаменить(ШккШкк,Символы.ВК,"");
//Сообщить("01");
Если ШккШкк="Ф-0010-Я" или ШккШкк="A-0010-Z" Тогда
//Сообщить("ШккШкк="+ШккШкк);
Если _РежимТоваровед = Истина Тогда
_РежимТоваровед = Ложь;
//ЗакрытьЭксплорер();
Иначе
_РежимТоваровед = Истина;
//ЗапуститьЭксплорер();
КонецЕсли;
ВидимостьГруппаОперации(_РежимТоваровед);
//СкрытьДляКассы2(Истина);
КонецЕсли;
// ПодключитьОбработчикОжидания("СкрытьДляКассы2", 0.5, Истина);
КонецЕсли
КонецПроцедуры
Процедура ВидимостьГруппаОперации(РежимТоваровед)
Элементы.ГруппаУправления.Видимость = РежимТоваровед;
//Элементы.ГруппаМоя.Видимость = РежимТоваровед;
//Если РежимТоваровед Тогда
//
//Иначе
//
//КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ГорячаяКлавишаESCПосле(Команда)
_Сообщить("Расш1_ГорячаяКлавишаESCПосле Элементы.ГруппаОплатаНал.Видимость = "+ Элементы.ГруппаОплатаНал.Видимость , _ВидимостьСообщения);
Если Элементы.ГруппаОплатаНал.Видимость Тогда
_Сообщить("Выполнить Возврат к Выбору Товаров" , _ВидимостьСообщения);
ИмяНужнойКоманды = "ВернутьсяВРежимПодбораТовара"; // Тут просто имя команды как в конфигураторе.
НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды);
ВернутьсяВРежимПодбораТовара(НужнаяКоманда);
КонецЕсли;
КонецПроцедуры
Функция ОчисткаТекстаОшибки(Тш)
Тш = СокрЛП(Тш);
Тш = СтрЗаменить(Тш, Символ(34), "");
Тш = СтрЗаменить(Тш, Символы.ПС, "");
Тш = СтрЗаменить(Тш, Символы.ВК, "");
Тш = СокрЛП(СтрЗаменить(Тш, "System error: 212 Details:", ""));
Тш = СокрЛП(СтрЗаменить(Тш, "System error: 051 Details:", ""));
Тш = СокрЛП(СтрЗаменить(Тш, "Ошибка системы: 212 подробно:", ""));
Тш = СокрЛП(СтрЗаменить(Тш, "Ошибка системы: 051 подробно:", ""));
Тш = СтрЗаменить(Тш, "Insufficient funds", "Недостаточно средств");
Тш = СтрЗаменить(Тш, "the Failure of the I / o card", "сбой карты ввода-вывода");
Возврат Тш;
КонецФункции
&НаКлиенте
&После("ОткрытьСтраницуИнфоОшибка")
Процедура Расш1_ОткрытьСтраницуИнфоОшибка(ТекстЗаголовка, ТекстОшибки, ПараметрыОшибки)
// Вставить содержимое метода.
//Сообщить("ТекстЗаголовка = " + СокрЛП(ТекстЗаголовка));
//_ТекстОшибки = СтрЗаменить(ТекстОшибки, Символ(34), "");
//_ТекстОшибки = СтрЗаменить(_ТекстОшибки, Символы.ПС, "");
//_ТекстОшибки = СтрЗаменить(_ТекстОшибки, Символы.ВК, "");
//_ТекстОшибки = СокрЛП(СтрЗаменить(_ТекстОшибки, "Ошибка системы: 212 подробно:", ""));
//РазделительСтрок=Символы.ПС;
//Строка=СтрЗаменить(Строка,РазделительСтрок," ");
//Строка=СтрЗаменить(Строка,Символы.ВК," ");
//Сообщить("ПараметрыОшибки = " + СокрЛП(ПараметрыОшибки));
_ТекстОшибки = ОчисткаТекстаОшибки(ТекстОшибки);
ТекстОшибкиПриОплате = _ТекстОшибки;
Если _ТекстОшибки<>"" Тогда
_Сообщить("_ТекстОшибки = " + СокрЛП(_ТекстОшибки), _ВидимостьСообщения);
_Сообщить("ТекстОшибки = " + СокрЛП(ТекстОшибки), _ВидимостьСообщения);
//"ТекстОшибки = Ошибка системы: 051 подробно: Недостаточно сpедств.Оплата по карте не была произведена."
Если СокрЛП(ТекстОшибки) = "Отказ ввода карты.Оплата по карте не была произведена." ИЛИ
СокрЛП(ТекстОшибки) = "Недостаточно сpедств.Оплата по карте не была произведена."
Тогда
Элементы.ОплатаКартой.Доступность=Истина;
Иначе
Элементы.ОплатаКартой.Доступность=Истина;
//Сообщить(ТекстОшибки);
КонецЕсли;
Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолосаОшибки, 3, -1, _ТекстОшибки);
Если СокрЛП(_ТекстОшибки) = "В строке не указана цена." Тогда
//Сообщить("Ожидаем");
Иначе
ПодключитьОбработчикОжидания("Закрыть_СтраницуИнфоОшибка", 2, ИСТИНА);
//Юра
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Закрыть_СтраницуИнфоОшибка()
ИмяНужнойКоманды = "ЗакрытьСтраницуИнфоОшибка"; // Тут просто имя команды как в конфигураторе.
НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды);
ЗакрытьСтраницуИнфоОшибка(НужнаяКоманда);
//_ТекстОшибки = "";
//_Операция = "Оплата";
//ОбновитьИнформациюНаДисплееПокупателя(_Операция);
//ВывестиИнформациюНаДисплейПокупателя(_Операция);
ИмяНужнойКоманды = "ВернутьсяВРежимПодбораТовара"; // Тут просто имя команды как в конфигураторе.
НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды);
ВернутьсяВРежимПодбораТовара(НужнаяКоманда);
КонецПроцедуры
&НаКлиенте
&После("ОбработатьШтрихкодКлиент")
Процедура Расш1_ОбработатьШтрихкодКлиент(Штрихкод)
_Сообщить("Расш1_ОбработатьШтрихкодКлиент = "+СокрЛП(Штрихкод), _ВидимостьСообщения);
ГруппаРучноеСопоставлениеТовараВидимость = Элементы.ГруппаРучноеСопоставлениеТовара.Видимость;
_Сообщить("ГруппаРучноеСопоставлениеТовараВидимость = "+СокрЛП(ГруппаРучноеСопоставлениеТовараВидимость), _ВидимостьСообщения);
//////ПодтверждениеПродажиБезПроверкиМаркиВидимость = Элементы.ПодтверждениеПродажиБезПроверкиМарки.Видимость;
////// _Сообщить("ПодтверждениеПродажиБезПроверкиМаркиВидимость = "+СокрЛП(ПодтверждениеПродажиБезПроверкиМаркиВидимость), _ВидимостьСообщения);
//_ПродолжитьДобавлениеТовараПослеПроверкиМарки = Элементы.ПродолжитьДобавлениеТовараПослеПроверкиМарки;
//_Сообщить("_ПродолжитьДобавлениеТовараПослеПроверкиМарки = "+СокрЛП(_ПродолжитьДобавлениеТовараПослеПроверкиМарки), _ВидимостьСообщения);
_Сообщить("ТекущаяОперация = "+СокрЛП(ТекущаяОперация), _ВидимостьСообщения);
//ТекущаяОперация
Если ГруппаРучноеСопоставлениеТовараВидимость Тогда
//Сообщить("ПодключитьОбработчикОжидания");
//ВыполнитьКомандочкуПродолжитьДобавлениеТовараПослеПроверкиМарки
//ОчиститьСообщения();
//_ТекстОшибки = Элементы.ДекорацияТекстСопоставлениеТовара.Заголовок;
_ТекстОшибки = Элементы.ДекорацияЗаголовокСопоставлениеТовара.Заголовок;
Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолосаОшибки, 3, -1, _ТекстОшибки);
ПодключитьОбработчикОжидания("ВыполнитьКомандочкуОтменаСопоставленияТовараи", 4, ИСТИНА);
КонецЕсли;
//////Если ПодтверждениеПродажиБезПроверкиМаркиВидимость Тогда
////// _ТекстОшибки = Элементы.ДекорацияЗаголовокСопоставлениеТовара.Заголовок;
////// Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолосаОшибки, 3, -1, _ТекстОшибки);
////// ПодключитьОбработчикОжидания("ВыполнитьКомандочкуПродолжитьДобавлениеТовараПослеПроверкиМарки", 4, ИСТИНА);
//////КонецЕсли;
//СтрСтПр = Элементы.СтраницаРучноеСопоставлениеТовара;
//_СтраницыСтаканПраво = СтрСтПр;
//_ТекущаяСтраницаРучноеСопоставлениеТовара = "ОбработатьШтрихкодКлиен "+СокрЛП(Элементы.СтраницаРучноеСопоставлениеТовара.Доступность)+" "+ СокрЛП(Элементы.СтраницаРучноеСопоставлениеТовара.Видимость);
//_Сообщить(_ТекущаяСтраницаРучноеСопоставлениеТовара, _ВидимостьСообщения);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКомандочкуПродолжитьДобавлениеТовараПослеПроверкиМарки()
_Сообщить("ВыполнитьКомандочкуПродолжитьДобавлениеТовараПослеПроверкиМарки", _ВидимостьСообщения);
ИмяНужнойКоманды = "ПродолжитьДобавлениеТовараПослеПроверкиМарки";
НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды);
ПродолжитьДобавлениеТовараПослеПроверкиМарки(НужнаяКоманда);
ОчиститьСообщения();
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКомандочкуОтменаСопоставленияТовараи()
ИмяНужнойКоманды = "ОтменаСопоставленияТовара";
НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды);
ОтменаСопоставленияТовара(НужнаяКоманда);
Расш1_ОткрытьПанельИзбранныхТоваровВместо();
ОчиститьСообщения();
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ОбработкаОповещенияПосле(ИмяСобытия, Параметр, Источник)
//Сообщить("08 ОбработкаОповещенияПосле СтатусСмены="+СокрЛП(СтатусСмены)+" ИмяСобытия = "+СокрЛП(ИмяСобытия));
_Сообщить("Расш1_ОбработкаОповещенияПосле " + " ИмяСобытия = "+СокрЛП(ИмяСобытия), _ВидимостьСообщения);
Если ИмяСобытия = "ИзменениеСостоянияКассовойСмены" Тогда
Если НЕ ТаблицаКассККМОрганизаций[0].Открыта Тогда
//ЭтаФорма.Закрыть();
// Сообщить("Подать Сигнал на Закрытие");
//ПоказатьПредупреждение(, "Подать Сигнал на Закрытие", , "ТекстЗаголовка");
//ПодключитьОбработчикОжидания("ПоказатьОкноПредупреждение", 4, ИСТИНА);
ПодключитьОбработчикОжидания("ЗакрытьОкноРабочегоМестаКассира", 3);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗакрытьОкноРабочегоМестаКассира()
//Сообщить("ТаблицаКассККМОрганизаций[0].Открыта="+ТаблицаКассККМОрганизаций[0].Открыта);
//Сообщить(Элементы.КассоваяСменаСтатус.ТекстРедактирования);
//Сообщить("ЗакрытьОкноРабочегоМестаКассира");
//ОбновитьОтображениеДанных(Элементы.КассоваяСменаСтатус);
//ОбновитьОтображениеДанных();
//Сообщить(Элементы.КассоваяСменаСтатус.ТекстРедактирования);
Попытка
//ОтключитьОбработчикОжидания("ЗакрытьОкноРабочегоМестаКассира");
ЭтаФорма.Закрыть();
Исключение
//Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ОтменаСопоставленияТовараПосле(Команда)
Расш1_ОткрытьПанельИзбранныхТоваровВместо();
ОчиститьСообщения();
КонецПроцедуры
Функция УдалитьНедопустимыеСимволыXML(Стр)
Позиция = НайтиНедопустимыеСимволыXML(Стр, , );
Пока Позиция <> 0 Цикл
Стр = Лев(Стр, Позиция-1) + Сред(Стр, Позиция+1);
Позиция = НайтиНедопустимыеСимволыXML(Стр, , );
КонецЦикла;
Возврат Стр;
КонецФункции //УдалитьНедопустимыеСимволыXML()
&НаКлиенте
Процедура Расш1_ВнешнееСобытиеПеред(Источник, Событие, Данные)
ОчиститьСообщения();
_ТекстОшибки = "";
_Данные = УдалитьНедопустимыеСимволыXML(СокрЛП(Данные));
//Сообщить("_Данные ="+_Данные+"=");
Если Найти(_Данные,"http:/") или Найти(_Данные,"https:/") или Найти(_Данные,"/www") Тогда
// Сообщить("***** Очистить Данные *****");
Данные = "";
Расш1_ОбщийМодуль2.ГолосТекстНовый(_НомерГолоса, _ГромкостьГолосаОшибки, _СкоростьГолоса, -1, "Проверьте Количество");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ТекущийТоварУвеличитьКоличествоПосле(Команда)
// Вставить содержимое обработчика.
Если _ПользовательБД = "КАССА-2" Тогда
ЭтаФорма.ТекущийЭлемент = Элементы.ТоварыПредставлениеНоменклатураХарактеристика;
КонецЕсли;
ОчиститьСообщения();
_ТекстОшибки = "";
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ТекущийТоварУменьшитьКоличествоПосле(Команда)
// Вставить содержимое обработчика.
Если _ПользовательБД = "КАССА-2" Тогда
ЭтаФорма.ТекущийЭлемент = Элементы.ТоварыПредставлениеНоменклатураХарактеристика;
КонецЕсли;
ОчиститьСообщения();
_ТекстОшибки = "";
КонецПроцедуры
&НаКлиенте
Процедура Расш1__ГромкостьГолосаПриИзмененииПосле(Элемент)
Расш1_ОбщийМодуль1.Сохранить_Настройки("ГромкостьГолоса", _ГромкостьГолоса, _ПользовательБД);
КонецПроцедуры
&НаКлиенте
Процедура Расш1__КомандаПроверкаВидимостьГруппыПосле(Команда)
// Вставить содержимое обработчика.
_ВидимостьСообщения = Истина;
ПодтверждениеПродажиБезПроверкиМаркиВидимость = Элементы.ПодтверждениеПродажиБезПроверкиМарки.Видимость;
_Сообщить("ПодтверждениеПродажиБезПроверкиМаркиВидимость = "+СокрЛП(ПодтверждениеПродажиБезПроверкиМаркиВидимость), _ВидимостьСообщения);
_ВидимостьСообщения = Ложь;
КонецПроцедуры
&НаКлиенте
&После("ОбработатьОшибкуПроверкиМарки")
Процедура Расш1_ОбработатьОшибкуПроверкиМарки(Контекст, СтраницаДиалога)
// Вставить содержимое метода.
_Сообщить("Расш1_ОбработатьОшибкуПроверкиМарки ", _ВидимостьСообщения);
ПодключитьОбработчикОжидания("ВыполнитьКомандочкуПродолжитьДобавлениеТовараПослеПроверкиМарки", 0.2, ИСТИНА);
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ПродолжитьДобавлениеТовараПослеПроверкиМаркиПосле(Команда)
// Вставить содержимое обработчика.
_Сообщить("КОМАНДА Расш1_ПродолжитьДобавлениеТовараПослеПроверкиМаркиПосле ", _ВидимостьСообщения);
КонецПроцедуры
&НаКлиенте
Процедура Расш1_КаталогПосле(Команда)
ОбъектShell = Новый COMОбъект("Wscript.Shell");
//ОбъектShell.SendKeys("^+1"); //English CTRL SHIFT
ОбъектShell.SendKeys("^+2"); //Русский
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ЗакрытьПоискТоваровПосле(Команда)
_Сообщить("Расш1_ЗакрытьПоискТоваровПосле", _ВидимостьСообщения);
// Вставить содержимое обработчика.
//ЭтаФорма.ТекущийЭлемент = Элементы.ТоварыПредставлениеНоменклатураХарактеристика;
Расш1_ОткрытьПанельИзбранныхТоваровВместо();
//ОбъектShell = Новый COMОбъект("Wscript.Shell");
//ОбъектShell.SendKeys("^+1"); //English CTRL SHIFT
////ОбъектShell.SendKeys("^+2"); //Русский
ПодключитьОбработчикОжидания("ВключитьEnglish", 0.2, ИСТИНА);
КонецПроцедуры
&НаКлиенте
Процедура ВключитьEnglish()
_Сообщить("ВключитьEnglish", _ВидимостьСообщения);
ОбъектShell = Новый COMОбъект("Wscript.Shell");
ОбъектShell.SendKeys("^+1"); //English CTRL SHIFT
//ОбъектShell.SendKeys("^+2"); //Русский
КонецПроцедуры
&НаКлиенте
Процедура Расш1_СписокТоваровВыборПосле(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
// Вставить содержимое обработчика.
ПодключитьОбработчикОжидания("ВключитьEnglish", 0.2, ИСТИНА);
КонецПроцедуры
&НаКлиенте
Процедура Расш1_КомандаОплатыНаличнымиБыстроПосле(Команда)
// Вставить содержимое обработчика.
// Вставить содержимое обработчика.
ОчиститьСообщения();
_ТекстОшибки = "";
_Сообщить("Расш1_ОплатаНаличнымиБыстроПосле", _ВидимостьСообщения);
Если ЭтотОбъект.Открыта() И Объект.Товары.Количество() > 0 Тогда
//_Режим = "ОплатаНаличнымиБыстро";
//_Режим = "";
//Элементы.ОплатаНаличнымиБыстро2.Видимость=Ложь;
Shell= Новый COMОбъект("Wscript.Shell");
Shell.SendKeys("{F6}");
ПодключитьОбработчикОжидания("ВыполнитьПробитьЧек", 0.2, ИСТИНА);
//Сообщить(ТекущаяДата());
//ИмяНужнойКоманды = "ПробитьЧек"; // Тут просто имя команды как в конфигураторе.
//НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды);
////Сообщить("НужнаяКоманда="+СокрЛП(НужнаяКоманда)+" ТипЗнч="+ТипЗнч(НужнаяКоманда));
//ПробитьЧек(НужнаяКоманда);
Иначе
ЭтаФорма.ТекущийЭлемент = Элементы.ТоварыПредставлениеНоменклатураХарактеристика;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Вставить содержимое обработчика.
СбросНастроекОкна("Обработка.РабочееМестоКассира");
//РежимКассыСамообслуживания=Истина;
КонецПроцедуры
&НаСервере
Процедура СбросНастроекОкна(_ИмяОбъекта)
КлючОбъекта = _ИмяОбъекта+".Форма.ФормаДокумента/Такси/НастройкиОкна";
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта,"", ИмяПользователя());
КлючСохраненияПоложенияОкна = Строка(Новый УникальныйИдентификатор);
КлючОбъекта = _ИмяОбъекта+".Форма.ФормаДокумента/НастройкиОкна";
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта,"", ИмяПользователя());
КлючСохраненияПоложенияОкна = Строка(Новый УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ЗакрытьСменуВместо(Команда)
Если Объект.Товары.Количество()=0 Тогда
// Вставить содержимое обработчика.
Элементы.ЗакрытьОкно.Видимость = Истина;
Элементы.ЗакрытьСмену.Видимость = Ложь;
Элементы.ПодменюЕще.Видимость = Ложь;
Элементы._ГромкостьГолоса.Видимость = Ложь;
_ПроДолжитьПроцедуруВызова = Истина;
Если _ПроДолжитьПроцедуруВызова Тогда
ОбщегоНазначенияРМККлиентСервер.УстановитьТекущуюСтраницу(Элементы.СтраницаПустая);
ПродолжитьВызов();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ЗакрытьОкноПосле(Команда)
// Вставить содержимое обработчика.
ЭтаФорма.Закрыть();
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ОплатаКартойВТихомРежимеПеред(Команда)
// Вставить содержимое обработчика.
ОчиститьСообщения();
_ТекстОшибки = "";
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ОплатаНаличнымиВТихомРежимеПеред(Команда)
// Вставить содержимое обработчика.
ОчиститьСообщения();
_ТекстОшибки = "";
КонецПроцедуры
//&НаКлиенте
//&Вместо("СформироватьЗаголовок")
//Процедура Расш1_СформироватьЗаголовок(ТекстЗаголовка)
// _ВидимостьСообщения = Истина;
// _Сообщить("ТекстЗаголовка= " + ТекстЗаголовка, _ВидимостьСообщения);
//
// Если СокрЛП(ТекстЗаголовка)="" Тогда
// Если _ПользовательБД = "КАССА-2" Тогда
// Иначе
// Расш1_ОбщийМодуль1.ПередачаЗапосаNew(_ip_max,"Ок! ",3,,_ПользовательБД);
// КонецЕсли;
// //Расш1_ОбщийМодуль1.ПередачаЗапоса(ip_max,"",3);
// КонецЕсли;
//
// ПродолжитьВызов(ТекстЗаголовка);
//
// Если Найти(ТекстЗаголовка, "Продажа") Тогда
// //Если _СуммаОплаченоНалПред<>0 Тогда
// // ВидимостьОтображения = Истина;
// //
// // Если _Режим = "ОплатаКартой" Тогда
// // ВидимостьОтображения = Ложь;
// // КонецЕсли;
// //
// // Расш1_ОткрытьПанельИзбранныхТоваровВместо();
// //
// //КонецЕсли;
//
// КонецЕсли;
//
//КонецПроцедуры
Показать
Аналогичная ошибка при загрузке сообщений из УТМ. Если открыть интерфейс УТМ "Входящие" и пробежаться по сообщениям то одно или несколько не откроется (видимо внутренняя ошибка УТМ). Поиск решения проблемы для УТМ ничего не дал. Помогла переустановка УТМ с перезапросом Актов и ТТН.
Розница, редакция 2.3 (2.3.10.35)
Розница, редакция 2.3 (2.3.10.35)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот