мобильное приложение. разработка

1. user624024_mavayka 21.08.18 09:34 Сейчас в теме
Помогите, разобраться, пожалуйста.
Есть простенькое мобильное приложение. Обмен данными через вэб-сервис. По тем справочникам, которые идентичны, обмен проходит , все в порядке. Документ из мобильного приложения также нормально уходит в базу на сервер. Проблема с одним справочником. Структура справочников в мобильном и на сервере не совпадает. Ну и в мобильное приложение грузить надо не все записи. Из мобильного на сервер отправляю параметр Подразделение. На сервере :
должен выполниться запрос - выборка нужных записей из справочника:
Запрос.Текст ="
|Выбрать
| Сотрудники.Ссылка,
| Сотрудники.Код и т.д
|Из
| Справочник.Сотрудники Как Сотрудники
|ГДЕ Сотрудники.Подразделение в ИЕРАРХИИ(&Подр)";
Запрос.УстановитьПараметр("Подр",ПодразделениеДляОтбора);

СпрДляВыгрузки = Запрос.Выполнить().Выгрузить();
Показать



В ПодразделениеДляОтбора пишу переданный с мобильного параметр.
Обмен не работает . Отладчиком смотрю: параметр читается правильно. А на строчке СпрДляВыгрузки = Запрос.Выполнить().Выгрузить(); соединение разрывается.

Причем если запустить мобильное приложение не с устройства, а на компьютере, то все замечательно отрабатывает.

В чем может быть дело?
По теме из базы знаний
Найденные решения
15. SanyMaga 70 22.08.18 14:53 Сейчас в теме
(14)
Если в транзакции уже были ошибки то в ней уже не получиться обратиться к БД. Попробуйте отменить транзакцию ( "ОтменитьТранзакцию() " ) или ищите выше по коду (попытка - исключение - конецпопытки) - это и есть проблема.
user624024_mavayka; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SanyMaga 70 21.08.18 14:27 Сейчас в теме
(1)
Попробовать с начало проверить где проблема.
Результат = Запрос.Выполнить() если ошибка здесь - Скорей всего иерархия разная
Результат.Выгрузить() - если ошибка здесь Нужно проверить типы реквизитов справочника
6. user624024_mavayka 21.08.18 15:34 Сейчас в теме
(2) Не совсем понимаю, запрос выполняется на сервере. Мне нужно подготовить данные для отправки в мобильное приложение. Какая разница какая иерархия в аналогичном справочнике в моб. приложении? Выбираю в массив, сериализую, на клиенте десериализую и пишу в клиентский справочник поэлементно. На сервере, если запустить выполнение запроса не с мобильного устройства, то все проходит без ошибок.
Только начала работать с мобильным приложением, подскажите, пожалуйста, в каком направлении искать?
10. SanyMaga 70 21.08.18 20:01 Сейчас в теме
(6)

Вы выяснили где ошибка при выполнении запроса или при создании таблицы?

пробывали:
Попытка
Исключение
КонецПопытки
11. user624024_mavayka 22.08.18 10:32 Сейчас в теме
(10) Ошибка при выполнении запроса. Попытка Исключение КонецПопытки пробовала. На строке Запрос.Выполнить попадает в Исключение.
И в этот момент Переменная ПодразделениеДляОтбора значение меняется на Ошибка получения представления значения.
Изменила код вот так:

ИскомоеПодр = Справочники.Подразделения.НайтиПоКоду("0001");
Запрос.УстановитьПараметр("Подр",ИскомоеПодр);

Теперь в исключение попадает на строке ИскомоеПодр = Справочники.Подразделения.НайтиПоКоду("0001");
12. SanyMaga 70 22.08.18 11:07 Сейчас в теме
(11)
Очень хочется почитать описание ошибки.

Попытка 
Исключение 
       описание = ОписаниеОшибки();
КонецПопытки


13. user624024_mavayka 22.08.18 11:27 Сейчас в теме
(12)Ошибка при вызове метода контекста(НайтиПоКоду):В данной транзакции уже происходили ошибки!
14. user624024_mavayka 22.08.18 11:33 Сейчас в теме
(12) Если прежний вариант вернуть
Запрос.УстановитьПараметр("Подр",ПодразделениеДляОтбора);
То ошибка на строке Запрос.Выполнить
Ошибка при вызове метода контекста Выполнить: Ошибка выполнения запроса
15. SanyMaga 70 22.08.18 14:53 Сейчас в теме
(14)
Если в транзакции уже были ошибки то в ней уже не получиться обратиться к БД. Попробуйте отменить транзакцию ( "ОтменитьТранзакцию() " ) или ищите выше по коду (попытка - исключение - конецпопытки) - это и есть проблема.
user624024_mavayka; +1 Ответить
16. user624024_mavayka 23.08.18 11:59 Сейчас в теме
3. gradi 5 21.08.18 14:49 Сейчас в теме
ПодразделениеДляОтбора - это ссылка?
4. user624024_mavayka 21.08.18 15:22 Сейчас в теме
(3) Да, ссылка на элемент справочника
5. gradi 5 21.08.18 15:31 Сейчас в теме
(4) скорее всего ссылка в мобильном приложение не существует на сервере.
Попробуйте передавать какой-то другой параметр, по которому на сервере вы сможете получить необходимую ссылку на элемент справочника. Например, если коды в справочниках на сервере и мобильном приложении совпадают, то передавайте код и по нему на сервере получайте ссылку.
7. user624024_mavayka 21.08.18 15:39 Сейчас в теме
(5) Ради эксперимента заменила строку установки параметра на
Запрос.УстановитьПараметр("Подр", Справочники.подразделения.НайтиПоКоду("0001");

Теперь соединение разрывается на этой строке, не доходя до выполнения запроса.
Если на сервере прокрутить внешнюю обработку с таким кодом, все отрабатывает верно.
9. cmax 107 21.08.18 16:24 Сейчас в теме
(7) Может "в ИЕРАРХИИ" не нравится. Попробуйте просто на "=" проверить. И если сработает вдруг, то придется как-то переписать запрос.
8. user624024_mavayka 21.08.18 15:48 Сейчас в теме
Получается, что ошибка не в коде. А в чем то , связанном именно с мобильным приложением.
Да , при первом запуске мобильного приложения, все отработало. в клиентскую базу загрузились все сотрудники именно выбранного подразделения. Но после - синхронизация только этого справочника не работает.
Оставьте свое сообщение

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