Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

обмен базы и мобильного приложения 1с

обмен базы и мобильного приложения 1с
Я
   zladenuw
 
11.03.20 - 01:42
Формат обмена и формат сжатия.
Чем лучше реализовать.
в обмене может быть 5000 товара и картинок по 2-3 штуки.
клиентов около 5000. у каждого может быть свой тип цен.
выгружать историю продаж это около 20 000 документов.
как загрузку сделать за 5 минут?
   Галахад
 
1 - 11.03.20 - 04:14
Гм. а просто записать все эти данные за 5 минут получается?
   zladenuw
 
2 - 11.03.20 - 05:18
Через скд. В json.
   zladenuw
 
3 - 11.03.20 - 05:23
Я на серверу это отдам. Ещё клиент это должен принять и переварить
   zladenuw
 
4 - 11.03.20 - 05:27
А если залить в базу на сервере. И отдать базу)
   Aleksey
 
5 - 11.03.20 - 06:39
А телефон переварить этот объем данных, не подавиться и сможет их отобразить? И связь по таймауту не отвалится? И место хватит?
   dangerouscoder
 
6 - 11.03.20 - 07:32
5000 мобильных клиентов?
   arsik
 
7 - 11.03.20 - 08:23
(0) А зачем тебе каждый раз все тащить? Только измененные данные тащи. План обмена добавь, в который изменения писаться будут.
   ВеликийЧебуратор
 
8 - 11.03.20 - 10:43
никак, тупо не загрузится.
   ВеликийЧебуратор
 
9 - 11.03.20 - 10:44
задача какая поставлена, может имеет смысл воспользоваться профильными инструментами?
   pavig
 
10 - 11.03.20 - 11:07
(0)
Мои 5 копеек:
1. Выгружать только изменения. При этом не обязатльо использовать планы обмена, так как планы обмена для 5000 узлов - это жестоко для сервера. Как вариант - на сервере "запоминать" ранее выгруженную таблицу куда-нибудь в РС. Потом при выгрузке сверять её с актуальной таблицей и отправлять только измененные строки.
2. Картинки не держать в мобилке, а подгружать динамически по воздуху только тогда когда отркывается карточка товара (ну или в иных ситуациях только тогда когда картинка нужна)
3. Можно поиграться, предварительно упаковав в хранилище значения с высокой степенью сжатия, и только потом отправлять. Ну тут надо тестить.
   Garykom
 
11 - 11.03.20 - 11:12
(0) При таких жестких исходных я бы делал внешнюю базу для мобильного приложения 1С, которая будет работать на том же девайсе.
Короче обновляется эта база (sqlite?) а далее 1С в фоне начинает синхронизировать из нее данные с текущей базой.
   Василий Алибабаевич
 
12 - 11.03.20 - 11:13
(10)
п. 1 - лажа.
п. 2 - +100500
п. 3 - +100500 (так во всех типовых обменах).
   Garykom
 
13 - 11.03.20 - 11:14
(11)+ Причем хитрым образом да сравнивая свою базу МП, предыдущую базу sqlite и новую базу sqlite.
База sqlite это по сути один файл, так что его можно целиком скачивать
   Garykom
 
14 - 11.03.20 - 11:15
(13)+ И да лучше всего ВК для МП 1С для работы с sqlite наваять и встроить
   pechkin
 
15 - 11.03.20 - 11:16
(10) картинки уже некуда жать. ведь это же жипег
   Garykom
 
16 - 11.03.20 - 11:18
(14)+ Вариант попроще без ВК в МП это нечто вроде https://github.com/olsonpm/sqlite-to-rest
Т.е. МП 1С запускает "веб-сервер" на мобильном девайсе который работает с sqlite, а само МП с базой работает через http api.
   pavig
 
17 - 11.03.20 - 11:18
+ (10) 
п1. Мы это применяли на практике и получали очень хорошие результаты при количестве клиентов 300+
   pavig
 
18 - 11.03.20 - 11:19
(15) Прочитай п.2 что делать с картинками
   Галахад
 
19 - 11.03.20 - 11:34
Если информация только для чтения на мобильном устройстве, можно сразу передать в таблице значений. И ее там показать.
Как пример:
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("ИД", Новый ОписаниеТипов("Строка"));
    ТЗ.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    ТЗ.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ ПЕРВЫЕ 10000
    |    Номенклатура.Ссылка,
    |    Номенклатура.Код,
    |    Номенклатура.Наименование
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура";
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
            
        НовСтр = тз.Добавить();
        НовСтр.ИД = Выборка.Ссылка.УникальныйИдентификатор();
        ЗаполнитьЗначенияСвойств(НовСтр, Выборка);
        
    КонецЦикла; 
    
    ЗаписьXML = Новый ЗаписьXML;
    ЗаписьXML.УстановитьСтроку();
    СериализаторXDTO.ЗаписатьXML(ЗаписьXML, лОбъект);
    СтрокаXML = ЗаписьXML.Закрыть();
   Галахад
 
20 - 11.03.20 - 11:35
(19) + У меня такая строка вести примерно 1 мб.
   Василий Алибабаевич
 
21 - 11.03.20 - 11:47
(19) ГЫ. Заполняем ТЗ, а записываем лОбъект. Это что бы враг не догадался? Так можно и меньше 1 мб получить.
   zladenuw
 
22 - 12.03.20 - 19:30
Печалка в том. что они хотят видеть картинки при просмотре списка товара. подбор через картинки. Есть такая штука на мобилках которые не 1с.
Тогда каталог в настройки и фотки отдельно отправлять. А данные остальные отдельно.
   xXeNoNx
 
23 - 13.03.20 - 07:36
(10) мухахаха "Картинки не держать в мобилке, а подгружать динамически по воздуху" - муха-ха-ха
   xXeNoNx
 
24 - 13.03.20 - 07:47
Интересно, а как это реализовано в таких андроид-приложухах как "aliexpress" загружается ли там вся инфа сразу?
   xXeNoNx
 
25 - 13.03.20 - 07:52
яб сделал буфер кеширования с временем жизни пакета на сервере. Для вида цен хранил бы запакованый пакет с ценами, регламентом бы чистил когда надо. Остатки в разрезе складов по изменениям так же в буфер скидывал(разделил бы полные остатки и изменения по ним
   ВеликийЧебуратор
 
26 - 13.03.20 - 07:55
Картинку можно сжать до пиктограммы и выводить в отдельном поле вместе с остальными реквизитами товара. Но я как понимаю за это платить не хотят.
   xXeNoNx
 
27 - 13.03.20 - 07:57
2 варианта по картинкам: 1. догружать все в мобилку после первичный данных - будет все быстро летать, но клиентам нужно будет подарить sd-карту
2. Догружать в динамике, организовать отображение таким образом, что бы ты знал последовательность элементов, где ты мог бы догружать инфу
   xXeNoNx
 
28 - 13.03.20 - 07:59
Но самое простое сделать аля браузер и грузить все динамически


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.