|
Давайте обсудим код 🠗 (XLife 06.06.2013 22:33) | ☑ | ||
---|---|---|---|---|
0
Икогнито
06.06.13
✎
22:05
|
Набросал вот тут код в обработке:
&НаКлиенте Процедура Команда1(Команда) Перем ОжидаемаяСтруктура; ЗавалитьВыполнить(Объект.Строка1,Объект.Символ, ОжидаемаяСтруктура); Сообщ = Новый СообщениеПользователю; Для Каждого ЭлСтруктуры ИЗ ОжидаемаяСтруктура Цикл Сообщ.Текст = Сообщ.Текст + "Ключ: "+ЭлСтруктуры.Ключ + ", Значение: "+ЭлСтруктуры.Значение+Символы.ПС; КонецЦикла; Сообщ.УстановитьДанные(ЭтаФорма); Сообщ.Сообщить(); КонецПроцедуры &НаСервере Процедура ЗавалитьВыполнить(СтроковоеПоле, КодСимвола, ВозвращаемаяСтруктура) Значение1 = ""; Для Х = 1 по СтрЧислоСтрок(СтроковоеПоле) Цикл Значение1 = Значение1 + " " + СтрПолучитьСтроку(СтроковоеПоле,Х); КонецЦикла; Значение1 = СокрЛП(Значение1); Значение1 = Значение1;//+Символ(КодСимвола); Ключи = """"+"КлючСтроковоеПоле"+","+"КлючКодСимвола"+""""; ЗначенияКлючей = """"+Значение1+""""+","+""""+Символ(КодСимвола)+""""; СтруктураП = Неопределено; ТекстКода = "СтруктураП = Новый Структура("+Ключи+","+ЗначенияКлючей+");"; Выполнить(ТекстКода); ВозвращаемаяСтруктура = СтруктураП; КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ) Для к = 0 По 30 Цикл Объект.Строка1 = Объект.Строка1 + Символ(к)+"я"; КонецЦикла; КонецПроцедуры Никакой символ, за иключением ПС и кавычек не может завалить эту конструкцию, пока она выполняется на сервере! В момент передачи на клиента возникает ошибка "Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа." Вывод: - НаСервере конструкция Выполнить() работает с ЛЮБЫМИ Символами! - Если пользователю удастся ввести в поле ввода Символ от 0 до 20, то форма заглючит и это не уйдет на сервер! Продолжение темы: http://www.forum.mista.ru/topic.php?id=668095 |
|||
1
Икогнито
06.06.13
✎
22:10
|
Так что, кто-то бред полный написал, что символы от 0 до 20 её валят.
Проблема может возникнуть только при возвращении данных на клиента. Если они несовместимы с ХML, то будет ошибка. |
|||
2
XLife
06.06.13
✎
22:11
|
(0) чё сказать-то хотел?
|
|||
3
Икогнито
06.06.13
✎
22:14
|
(2) Создал тему "Завалить конструкцию выполнить".
Один чувак написал полный бред по поводу того, что Если в Выполнить() попадет Символ(0-20), то все рухнет. Написал код, проверил, развеял бред. Так же, пользователь в 1С не может через поле ввода ввести символ, не совместимый с XML. Система тупо это игнорирует. |
|||
4
Икогнито
06.06.13
✎
22:29
|
Если даже на клиенте ввести в текстовое поле программно несовместимые символы
&НаКлиенте Процедура Команда2(Команда) Для к = 0 По 30 Цикл Объект.Строка1 = Объект.Строка1 + Символ(к)+"я"; КонецЦикла; КонецПроцедуры То это не уйдет на сервер и вывалится с ошибкой: {Обработка.ВнешняяОбработка2.Форма.Форма.Форма(5)}: Ошибка при вызове метода контекста (ЗавалитьВыполнить) ЗавалитьВыполнить(Объект.Строка1,Объект.Символ, ОжидаемаяСтруктура); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства 'param': форма: Элемент имя: {http://v8.1c.ru/8.2/managed-application/modules}param по причине: Текст XML содержит недопустимый символ в позиции 0 : |
|||
5
Икогнито
06.06.13
✎
22:31
|
(2)
> чё сказать-то хотел? А по существу хотел сказать, что миста реально тупеет. Чувак с пеной у рта доказывал мне, что я идиот. Надо меньше мисту читать, 80% высказывающихся тут владеют ложными знаниями. |
|||
6
Asmody
06.06.13
✎
22:35
|
(0) обмен клиент-сервер в УФ идет в XDTO
|
|||
7
Очкарик
06.06.13
✎
23:03
|
(6) если ты внимательнее посмотришь на последнюю строку ошибки в (4), то ты увидишь, что не прав и лишний раз подтвердил (5)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |