Мобильное приложение

1. user854236 04.04.18 14:23 Сейчас в теме
Осуществляю обмен между центральной базой 1с 8 и мобильным приложением.
допустим у меня на одном устройстве обмен прошел и данные загрузились. Добавляю приложение на новое устройство, обмен идет, но ничего не передается. Как передать существующие данные на новое устройство? Подскажите пожалуйста
По теме из базы знаний
Найденные решения
14. user854236 05.04.18 08:29 Сейчас в теме
(13) Получилось! Спасибо)
Перем РегистрацияВНовыйУзел;
 
 Процедура ПередЗаписью(Отказ)
	 РегистрацияВНовыйУзел = ЭтоНовый();
 КонецПроцедуры  
 
 Процедура ПриЗаписи(Отказ)
	 Если РегистрацияВНовыйУзел Тогда		
		 ПланыОбмена.ЗарегистрироватьИзменения(Ссылка);  
	 КонецЕсли;	
 КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. S.V.Y 17 04.04.18 15:23 Сейчас в теме
Мало информации. Конфигурация какая? Если самописная, то скорее всего, с узлами обмена недоработка.
4. user854236 04.04.18 15:34 Сейчас в теме
(2)самописная. А что именно добавить,?
&НаСервере
функция ВыполнитьСинхронизациюНаСервере() Экспорт
	Попытка
		ВСОпределение = Новый WSОпределения("http://87.250.12.186/MobBase/ws/DataTransfer.1cws?wsdl");
		ВСервис = ВСОпределение.Сервисы.Получить("DataTransfer", "DataTransfer");
		ВТочкаВхода = ВСервис.ТочкиПодключения.Получить("DataTransferSoap");
		ВОперация = ВТочкаВхода.Интерфейс.Операции.Получить("Синхронизация");
		
		//Данные = Новый ХранилищеЗначения(ЗарегистрироватьВыгрузку(), Новый СжатиеДанных(9));
		
		Данные = Новый ХранилищеЗначения(ЗарегистрироватьВыгрузку(), Новый СжатиеДанных(9));
		ДанныеXDTO = ВСОпределение.ФабрикаXDTO.Создать(ВОперация.Параметры.Получить("Данные").Тип, Данные);
		ВСПрокси = Новый WSПрокси(ВСОпределение, "DataTransfer","DataTransfer","DataTransferSoap" );
		Ответ = ВСПрокси.Синхронизация(ДанныеXDTO);
		ПринятьИзменениеПоПлану(Ответ.Получить());
		Возврат Истина
	Исключение
		Сообщить (ОписаниеОшибки());
		Возврат Ложь;
	КонецПопытки;
	
конецФункции
Процедура ПринятьИзменениеПоПлану(СтрокаСообщения)
	ЧтениеХМЛ = Новый ЧтениеXML;
	ЧтениеХМЛ.УстановитьСтроку(СтрокаСообщения);
	
	ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
	ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ);
	ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель,ЧтениеСообщения.Отправитель.НомерПринятого);
	
	Пока ВозможностьЧтенияXML (ЧтениеХМЛ) Цикл
		Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML);
		Если Не Данные = Неопределено Тогда
			
			Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
			Данные.ОбменДанными.Загрузка = Истина;
			
			Данные.Записать();
		КонецЕсли;
	КонецЦикла;
	ЧтениеСообщения.ЗакончитьЧтение();
	
конецПроцедуры

Функция ЗарегистрироватьВыгрузку()
	ЗаписьХМЛ = Новый ЗаписьXML;
	
	ЗаписьХМЛ.УстановитьСтроку();
	ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
	
	Узел = ПланыОбмена.ОбменСМобильнымиУстройствами.НайтиПоКоду("ЦБ");
	ЗаписьСообщения.НачатьЗапись(ЗаписьХМЛ,Узел);

	ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(Узел, ЗаписьСообщения.НомерСообщения);
	Пока ВыборкаИзменений.Следующий() Цикл
		ОбъектОбмена = ВыборкаИзменений.Получить();
		ЗаписатьXML(ЗаписьХМЛ, ОбъектОбмена);
	КонецЦикла;
	
	ЗаписьСообщения.ЗакончитьЗапись();
	Возврат ЗаписьХМЛ.Закрыть();	
конецФункции
Показать

код вебсервиса
6. S.V.Y 17 04.04.18 15:39 Сейчас в теме
(4) Узел обмена на новом устройстве.
7. user854236 04.04.18 15:40 Сейчас в теме
(6)Обмены идут. Мне нужно сделать, при добавлении нового устройства (при первом запуске приложения), существующие данные с базы загрузились.
8. S.V.Y 17 04.04.18 15:42 Сейчас в теме
(7) Можно поподробнее, что значит "обмены идут?" При изменении на МУ проходит загрузка в центральную базу? Или что?
9. user854236 04.04.18 15:47 Сейчас в теме
(8)Так. Например я загружаю в самописную базу(назначение использования - персональный компьютер, мобильное приложение) данные из файлика, то есть заполняю регистр сведений. Далее запускаю синхронизацию(общая команда). Данные загружаются в мобильное устройство. Добавляю приложение на другое устройство запускаю синхронизацию , ничего не происходит. ТО есть у меня идет обмен только с измененными данными в базе или на мобильном устройстве.
10. user854236 04.04.18 15:51 Сейчас в теме
(8)более подробно ещё объяснить
11. S.V.Y 17 04.04.18 15:57 Сейчас в теме
(10) Да нет, все понятно :) Понимаете - когда Вы делаете обмен с первым устройством, изменения фиксируются на главном узле, и, следовательно, на другое уже не выгружаются - они уже помечены как выгруженные, если не пометить второе устройство как новый узел. Т.е. надо дописать конфигурацию таким образом, чтобы на устройстве можно было добавлять новый узел (ну или как-то так).
user854236; +1 Ответить
13. user854236 05.04.18 07:42 Сейчас в теме
(11)Спасибо) Может быть есть какие - то примеры или литература?
14. user854236 05.04.18 08:29 Сейчас в теме
(13) Получилось! Спасибо)
Перем РегистрацияВНовыйУзел;
 
 Процедура ПередЗаписью(Отказ)
	 РегистрацияВНовыйУзел = ЭтоНовый();
 КонецПроцедуры  
 
 Процедура ПриЗаписи(Отказ)
	 Если РегистрацияВНовыйУзел Тогда		
		 ПланыОбмена.ЗарегистрироватьИзменения(Ссылка);  
	 КонецЕсли;	
 КонецПроцедуры
Показать
15. S.V.Y 17 05.04.18 08:32 Сейчас в теме
(14) Вот и ладушки :) Я пару лет назад начинал проект под андроид, где-то каркас у меня валяется. Если интересно, могу скинуть куда-нибудь.
user854236; +1 Ответить
16. user854236 05.04.18 09:00 Сейчас в теме
(15) Конечно) Буду Вам очень благодарна!
3. Sapiens_bru 4 04.04.18 15:24 Сейчас в теме
Это какое-то типовое приложение от 1С или партнеров? Там скорее всего используется план обмена, для регистрации изменений в базе. Вам нужно создать новый узел в плане обмена для нового устройства. Просто скопировать программу с устройства на устройство недостаточно.
Для самописных конфигураций нужно знать как там организован обмен, к примеру приложение, которое пишу сейчас, спокойно будет копироваться с устройства на устройство, потому что никаких данных на устройстве не хранит и план обмена не использует
5. user854236 04.04.18 15:37 Сейчас в теме
(3)При изменении данных обмен идет на обоих устройствах, данные передаются. Мне нужно сделать,
при добавлении нового устройства (при первом запуске приложения), существующие данные с базы загрузились.
12. Sapiens_bru 4 04.04.18 17:17 Сейчас в теме
(5)Ваша задача лежит не в плоскости мобилки, а в более общей проблеме организации обменов данными. Гуглить в сторону планов обмена в целом и регистрации изменений на узлах в частности.
user854236; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот