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