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

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
Внимание! Тема сдана в архив

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