|   |   | 
| 
 | Есть ли способ нормально (де)сериализовать данные в 1с на клиенте? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Fragster гуру 26.01.21✎ 12:43 | 
        И чтобы веб клиенте тоже работало?     | |||
| 1
    
        Asmody 26.01.21✎ 12:46 | 
        через xml/json?     | |||
| 2
    
        acht 26.01.21✎ 12:47 | 
        (0) Десериализовать из чего? Из двоичных данных?     | |||
| 3
    
        Fragster гуру 26.01.21✎ 12:48 | 
        (1) не работает на клиенте     | |||
| 4
    
        Fragster гуру 26.01.21✎ 12:48 | 
        (2) из строки     | |||
| 5
    
        Fragster гуру 26.01.21✎ 12:50 | 
        кстати, из-за этого пришлось воспользоваться подходом, похожим на Как сериализовать ссылку в XML?, только тссс :)
 код, конечно, другой, но блин. Для РегистрНакопленияКлючЗаписи, например, не подходит, а надо | |||
| 6
    
        ДенисЧ 26.01.21✎ 12:50 | 
        ЗаписьXML (XMLWriter)
 Доступность: Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер. | |||
| 7
    
        Fragster гуру 26.01.21✎ 12:51 | 
        (6) да, веб клиент пролетает     | |||
| 8
    
        Fragster гуру 26.01.21✎ 12:59 | 
        Вот такой гомункул:
 #Если ВебКлиент Тогда ДесериализованныеДанные = ДесериализоватьДанныеНаСервере(Данные); #Иначе ДесериализованныеДанные = ДесериализоватьДанные(Данные); #КонецЕсли &НаСервереБезКонтекста Функция ДесериализоватьДанныеНаСервере(Данные) Возврат ДесериализоватьДанные(Данные); КонецФункции &НаКлиентеНаСервереБезКонтекста Функция ДесериализоватьДанные(Данные) Чтение = Новый ЧтениеXML; Чтение.УстановитьСтроку(Данные); Возврат ПрочитатьXML(Чтение); КонецФункции Мне не нравится ( | |||
| 9
    
        fisher 26.01.21✎ 13:01 | 
        Хм... И действительно - с веб-клиентом проблема.     | |||
| 10
    
        fisher 26.01.21✎ 13:03 | 
        Ну, что тут сказать... Нет ножек - нет варенья.     | |||
| 11
    
        acht 26.01.21✎ 13:05 | 
        (5) > РегистрНакопленияКлючЗаписи 
 Не выгорит. У этого объекта нет конструктора в веб клиенте, ты новый экзампляр вообще никак не создашь. Получай с сервера. | |||
| 12
    
        acht 26.01.21✎ 13:07 | 
        (11)+ Ну и это уже совсем не "примивный тип". Для примивных можно через полехтмлдокумента извратится, если очень уж надо.     | |||
| 13
    
        Garykom гуру 26.01.21✎ 13:09 | 
        Для примитивных типов проще свою сериализацию наваять     | |||
| 14
    
        Garykom гуру 26.01.21✎ 13:09 | 
        (13)+ или ВК для веб-клиента, которые расширения для браузеров     | |||
| 15
    
        fisher 26.01.21✎ 13:11 | 
        (14) Кгм...     | |||
| 16
    
        fisher 26.01.21✎ 13:13 | 
        (12) > полехтмлдокумента?
 Это что за зверь и как через него извратиться? | |||
| 17
    
        acht 26.01.21✎ 13:14 | 
        (14) Микросервис же. На Го. Не?     | |||
| 18
    
        fisher 26.01.21✎ 13:15 | 
        А, блин. HTML!
 Но все равно не пойму, как он поможет. | |||
| 19
    
        H A D G E H O G s 26.01.21✎ 13:15 | 
        (0) Напиши на партнерке предложение, а я буду тебе говорить, что ну это можно сделать на сервере. Ну как с множественным отбором для НаборовЗаписей.     | |||
| 20
    
        H A D G E H O G s 26.01.21✎ 13:16 | 
        (17) Как с вами связаться?     | |||
| 21
    
        acht 26.01.21✎ 13:17 | 
        (16) Положить на форму полехтмл, для него будет использоваться инстанс текущего браузера в iframe. Подергать его javascript движок, статей море. 
 Но в (8) куда меньшее зло | |||
| 22
    
        acht 26.01.21✎ 13:17 | 
        (20) Я ж письмо писал, ответа так и не получил. Попало в спам?     | |||
| 23
    
        H A D G E H O G s 26.01.21✎ 13:19 | 
        (22) Сейчас все проверил и Входящие и Спам, ничего нет.
 Скинь плиз еще раз письмо на liveups@yandex.ru | |||
| 24
    
        fisher 26.01.21✎ 13:20 | 
        (21) Каким образом браузерный js поможет с одинэсной сериализацией/десмериализацией? Только лишь как более мощный инструмент ручной реализации? Данунах.     | |||
| 25
    
        acht 26.01.21✎ 13:23 | 
        (24) Ты уж определись "примитивные типы", как написано в заголовке темы, или объекты 1С.     | |||
| 26
    
        Fragster гуру 26.01.21✎ 13:23 | 
        (19) ты обиделся, чтоли?     | |||
| 27
    
        Fragster гуру 26.01.21✎ 13:25 | 
        (25) ну вот ОповеститьОбИзменении, например, в веб клиенте есть, РегистрХХХКлючЗаписи ему подсунуть можно, а вот как его на этом самом клиенте получить из строки?     | |||
| 28
    
        H A D G E H O G s 26.01.21✎ 13:27 | 
        (26) Ты давно скайп читал? Нет конечно, просто иронизирую, что ты постоянно играешь за адвоката дьявола. Пусть работают, сидят в своих 1С, штаны протирают :-)     | |||
| 29
    
        Fragster гуру 26.01.21✎ 13:28 | 
        в воскресенье за компом был где он норм работает. а на мобилке сука вылетает :(     | |||
| 30
    
        Fragster гуру 26.01.21✎ 13:43 | ||||
| 31
    
        H A D G E H O G s 26.01.21✎ 13:49 | 
        (30) Ну воооот! Ты движешься в правильном направлении.     | |||
| 32
    
        acht 26.01.21✎ 13:50 | 
        (23) Скинул. На другие ящики доходит, на яндексе, правда, не проверял.     | |||
| 33
    
        acht 26.01.21✎ 13:51 | 
        (27) > как его на этом самом клиенте получить из строки
 Из строки - никак. Взять уже существующий, приехавший с сервера, например как иденфтиикатор строки динамического списка - запросто. | |||
| 34
    
        Fragster гуру 26.01.21✎ 13:54 | 
        (33) проблема в том, что он с другого сеанса прилетает в ВК, ВК передает по сети в сериализованном виде только.     | |||
| 35
    
        Fragster гуру 26.01.21✎ 13:54 | 
        прямо в клиента     | |||
| 36
    
        Fragster гуру 26.01.21✎ 13:55 | 
        делаю нормальный Оповестить и ОповеститьОбИзменении. Ну и заодно плюхи типа уведомление о звонке на астер прям в 1с без тормозов и прочее     | |||
| 37
    
        Fragster гуру 26.01.21✎ 13:55 | 
        сообщения в чаты с сайта, мгновенно прилетающие менеджеру     | |||
| 38
    
        acht 26.01.21✎ 14:03 | 
        (34) Функциональную форму Новый пробовал?     | |||
| 39
    
        H A D G E H O G s 26.01.21✎ 14:09 | 
        (32) Нет, не пришло. Короче, пофиг, работа не интересует?     | |||
| 40
    
        acht 26.01.21✎ 14:13 | 
        (39) Зависит от. Давай последнюю попытку - на nname935@aol.com напиши =)     | |||
| 41
    
        H A D G E H O G s 26.01.21✎ 14:38 | 
        (40) Написал     | |||
| 42
    
        ДедМорроз 26.01.21✎ 15:13 | 
        А разве значение в строку внутр уже в web-клиенте перестало работать?     | |||
| 43
    
        ДедМорроз 26.01.21✎ 15:15 | 
        Потом,web-клиент,это страница html и там только строки.     | |||
| 44
    
        H A D G E H O G s 26.01.21✎ 15:15 | 
        (42) Оно и в тонком уже не работает     | |||
| 45
    
        fisher 26.01.21✎ 15:16 | 
        (42) А начинало? Не говоря уже о том, что deprecated/     | |||
| 46
    
        LoneBull 26.01.21✎ 16:46 | 
        (0) Конструктор на клиенте можно вызвать через функциональную форму новый:
 Новый(<Тип регистра>, <Массив параметров для конструктора>) (раньше это было в СП, но потом некоторые товарищи это оттуда вырезали т.к. на это проверка конфигурации ругается, а вырезать из СП проще чем чинить) Попробовал (на демо конфигурации) ПараметрыКонструктора = Новый Массив; ПараметрыКонструктора.Добавить(Новый Структура("Период, Валюта", Период, Валюта)); А = Новый(Тип("РегистрСведенийКлючЗаписи.КурсыВалют"), ПараметрыКонструктора); работает | |||
| 47
    
        fisher 26.01.21✎ 17:05 | 
        (46) Слава богу, за моим СП "некоторые товарищи" не приходили.     | |||
| 48
    
        Cthulhu 26.01.21✎ 17:12 | 
        (46): ну они так ясно зачем сделали, чтобы на клиенте низя было слепить то что сериализатор не осилит. например, полноценную ТЗ на клиенте типа ОписаниеТипа = Новый ОписаниеТипов("ТаблицаЗначений"); ТЗ = Новый(ОписаниеТипа.Типы()[0]);     | |||
| 49
    
        Garykom гуру 26.01.21✎ 17:22 | 
        Меня больше всего удивляет какого х на веб-клиенте нету HTTPЗапрос на WebКлиенте под 8.3?     | |||
| 50
    
        sikuda 26.01.21✎ 17:32 | 
        (49) Кросс-доменные запросы не такая простая вещь - https://learn.javascript.ru/xhr-crossdomain     | |||
| 51
    
        Garykom гуру 26.01.21✎ 17:35 | 
        (50) хотя бы к тому же домену к другим ресурсам же
 или через свое расширение 1Сное для браузеров реализовать хоть кроссдоменные | |||
| 52
    
        sikuda 26.01.21✎ 17:41 | 
        (51) Расширением для браузера 1С сделала чтобы лучше воровать данные с локального компьютера (все для удобства пользователей)
 А к тому-же домену есть функции работы с базой 1С НачатьПомещениеФайловНаСервер() ;) | |||
| 53
    
        Fragster гуру 26.01.21✎ 18:21 | 
        (46) а то, что для этого структура нужна, для которой нормальной сериализации опять же не завезли?     | |||
| 54
    
        Fragster гуру 26.01.21✎ 18:22 | 
        пока что веб клиенту придется ходить на сервер.
 теперь осталось нормальную компиляцию ВК под всю хурму настроить (там cmake, да еще и с конаном) | |||
| 55
    
        ДедМорроз 28.01.21✎ 08:15 | 
        (51) там проблема в том,что у браузера общее хранилище ключей cookie,что накладывает серьезные ограничения на весь функционал,т.к.в случае разрешения выполнения таких запросов будут пересечения с уже открытыми сеансами.
 Расширение - это ещё более печальная история,т.к.оно применяется к браузеру,а не к отдельной странице в нем. | |||
| 56
    
        Вафель 28.01.21✎ 09:08 | 
        (55) у браузера есть локал сторадж, а также локальная бд     | |||
| 57
    
        Fragster гуру 28.01.21✎ 10:19 | 
        (56) оно тоже на весь браузер. можно в переменных скрипта страниц все хранить     | |||
| 58
    
        ДедМорроз 28.01.21✎ 21:27 | 
        У браузера есть кеш,который позволяет при правильном использовании не передавать повторно данные.
 Остальные фокусы с хранением - это только ненужное усложнение. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |