Бесплатный курс по Мобильной платформе 1C. Модуль 2

Модуль 2. Обмен данными с мобильным приложением через веб-сервисы

Изучив второй модуль, Вы научитесь:

  • Создавать и публиковать веб-сервисы
  • Сериализовать и десериализовать данные при передаче между клиентом и сервером
  • Производить перенос справочников из одной базы в другую

Порядок обучения

329696678Скачивайте теоретические материалы в PDF и видео-формате. Рекомендуем начинать именно с изучения теории.

home-security-systems-installation-costs Выполняйте практическое задание для закрепления полученных знаний.

загруженное (5)Выполните самоконтроль, просмотрев видео-решение преподавателя.

Теоретические материалы

Итак, приступайте к изучению теоретического материала второго модуля курса.

Данный контент доступен только для зарегистрированных пользователей.
Пожалуйста, войдите на сайт (Войти), если Вы уже зарегистрированы или зарегистрируйтесь на сайте (Зарегистрироваться), чтобы получить доступ.
Регистрация занимает 1 минуту, но открывает доступ к материалам сайта.

Вопросы

Если у Вас возникли вопросы, Вы можете просто просмотреть комментарии ниже, наверняка Вы найдете ответ.

Обратите внимание, для навигации по комментариям внизу страницы есть ссылки

предыдущие-комментарии

Следующие-комментарии

Если же Вам необходима поддержка, мы с радостью ответим на Ваши вопросы в рамках Мастер-группы «Полного курса по разработке Мобильных приложений на платформе «1С:Предприятие 8».

<< Перейти к Модулю 1

Комментарии / обсуждение (873):

  1. boris-leleko

    Еще была ошибка в процедуре веб сервиса на строке:
    Если ЗначениеЗаполнено(СтруктураДанных) Тогда…
    Видимо с мутабельными значениями проблема.
    Заменил на: Если СтруктураДанныхНеопределено Тогда…

    • boris-leleko

      Если СтруктураДанныхНеопределено Тогда…

      • boris-leleko

        меньше больше (оператор неравенства) здесь не отображаются (((
        Если НЕ СтруктураДанных=Неопределено Тогда…

  2. boris-leleko

    У меня такие ошибки.
    1. Набираю в хроме ссылку на веб сервис, но ничего вразумительного не получаю. Абракадабра. А виндовый эксплорер показывает нормально XML.
    2. На Samsung Galaxy Note 2 при обновлении конфы пишет про ошибку разбора XML.
    Решил проблему убрав из веб сервиса и пакета XDTO кириллицу. Т.е. все наименования объектов конфы сделал латиницей и заработало!

  3. janibeg

    {ОбщаяКоманда.ВыполнитьОбмен.МодульКоманды(15)}: Ошибка при вызове метода контекста (ВыполнитьОбмен)
    Ответ = Десериализовать(Соединение.ВыполнитьОбмен(СтрокаДанных));
    по причине:
    Ошибка вызова операции сервиса: {mExchange}:mExchange:ВыполнитьОбмен()
    по причине:
    Ошибка SOAP сервера: Неизвестная ошибка. Ошибка отображения типов:
    Отображение типа ‘Соответствие’ в тип ‘{http://www.w3.org/2001/XMLSchema}string’
    по причине:
    Ошибка отображения типов:
    Отображение типа ‘Соответствие’ в тип ‘{http://www.w3.org/2001/XMLSchema}string’

    • janibeg

      Была ошибка в функции СоздатьОтветКлиенту
      Возврат Соответствие вместо Возврат Сериализовать(Соответствие)

  4. Maxim_Goncharov

    Вопрос про серилазиацию/десириализацию XTDO.

    Как сериализуется ссылочный тип?

    Например, в базе сервере и в базе клиента есть один справочник Номенклатура, реквизиты одинаковые. Достаточно ли в этом случае , что НАЗВАНИЕ справочника Номенклатура будет одинаковым в обоих базах и создавались этот справочник в конфигурациях вручную, а не через копи/паст, чтобы ссылка десериазовалась?

    • boris-leleko

      сериализуется в ссылку. Если в базе ссылки таклгл типа и с таким УИДом нет то будет написано “объект не найден…”

    • boris-leleko

      Не понял сразу вопрос. Можно переносить двумя способами. Сериализовать объект и после десериализации выполнить метод записать(). Если имя типа совпадает то либо подхватится элемент с таким УИДом или создастся новый. Дибо переносить структуру с реквизитами и УИДом. Тогда надо у менеджера нужного типа выполнить метод ПолучитьСсылку(УИД) и получать объект потом.

    • mPetrov

      Проблема была в том, что файловая база размещалась на смапированном диске D:. После переНастройки на C: – картинка ожила.

  5. p983

    Помогите пожалуйста возникает ошибка при отладке
    {ОбщаяФорма.Форма.Форма(34)}: Ошибка при вызове метода контекста (ПолучитьСреднее)
    Ответ = Соединение.ПолучитьСреднее(Неопределено,Сериализовать(СтруктураДанных));
    по причине:
    Ошибка вызова операции сервиса: {ФункцииДляРассчета}:ФункцииДляРассчета:ПолучитьСреднее()
    по причине:
    Ошибка SOAP сервера: Неизвестная ошибка. {WebСервис.ФункцииДляРассчета.Модуль(14)}: Значение не является значением объектного типа (КоличествоЭлементовВМассиве)
    по причине:
    {WebСервис.ФункцииДляРассчета.Модуль(14)}: Значение не является значением объектного типа (КоличествоЭлементовВМассиве)

  6. VSmirnoff@mail.ru

    Попробовал воспользоваться хранилищем значения, выяснилось, что конструкция вида:


    ХрЗнч = Новый ХранилищеЗначения(Соответствие,Новый СжатиеДанных(9));
    Возврат Сериализовать(ХрЗнч);

    приводит к тому, что все ссылки на принимающей стороне “слетают”.

    Работающим оказался вариант с двойной сериализацией, когда в хранилище значения добавляется уже сериализованный объект, и затем оно ещё раз сериализуется, например, так:


    ХрЗнч = Новый ХранилищеЗначения(Сериализовать(Соответствие),Новый СжатиеДанных(9));
    Возврат Сериализовать(ХрЗнч);

    На принимающей стороне при этом код выглядит так:

    Функция Синхронизация(стрДанные)

    ХрЗнч = Десериализовать(стрДанные);
    Соответствие = Десериализовать(ХрЗнч.Получить());

    Экономия на размере пакета получается примерно десятикратная.

    Вопрос: это единственно правильный способ работы с хранилищем значений с целью упаковки пакета передачи данных?

    • Поддержка курса по EDT

      Когда в мобильной платформе будет механизм FastInfoset (он пока только в стационарной доступен), то можно будет не использоват хранилище, а обмениваться бинарными данными, но в принципе – разница в коде будет не большая, а вот в сжатии – не знаю.

  7. Kindman1980

    У меня при выполнении команды обмена в клиенте вылезла такая ошибка. С чем может быть связана?

    {ОбщаяКоманда.ВыполнитьОбмен.МодульКоманды(14)}: Ошибка при вызове метода контекста (ВыполнитьОбмен)
    Ответ = Десериализовать(Соединение.ВыполнитьОбмен(СтрокаДанных));
    по причине:
    Ошибка вызова операции сервиса: {DataTransfer}:DataTransfer:ВыполнитьОбмен()
    по причине:
    Ошибка SOAP сервера: Обязательное возвращаемое значение не задано: DataTransfer}:DataTransferSoapBinding:ВыполнитьОбмен()

    • Поддержка курса по EDT

      поставьте галочку упараметра – возможно пустое значение

  8. Marishka2112

    Чтобы увидеть материал текущего курса, нужно регистрировать токен с 20.04.2014? Если с сегодняшнего дня, то ничего не увижу уже? А если с 20.04.2014, то доступ прекратиться 30.04.2014 или у меня всегда будет доступ к материалам, выложенным за этот период?

  9. Kindman1980

    Добрый вечер.
    Перехожу по опубликованной ссылке, а у меня вот так выглядит

    This XML file does not appear to have any style information associated with it. The document tree is shown below.

    soap:Client

    Операция не найдена: {ОбменДанными}:ОбменДанными:ВыполнитьОбмен()

    Ругается на операцию , а потом не подключается WS ссылка
    Ошибка разбора XML: [-1,1]
    Фатальная ошибка

  10. tenhi

    Вопрос по видеоуроку.
    После добавления второго параметра (“СериализованнаяСтруктураДанных”) в функцию Web-сервиса “ПолучитьСреднее”
    тренер резонно добавляет первый параметр (“Неопределено”) в строчке
    Ответ = Соединение.ПолучитьСреднее(Неопределено, Сериализовать(СтруктураДанных));
    (Процедура ПередатьСериализациюНаСервере() модуля ОбщейФормы)

    НО не добавляет второй параметр в строчке:
    Ответ = Соединение.ПолучитьСреднее(СтруктураДанных);
    (Процедура ПодключитьсяЧерезСтатическуюСсылкуНаСервере()).

    что приводит к ошибке: “Недостаточно фактических параметров”.

    Если же в этой строчке в качестве второго параметра указать “Неопределено”, то получим не менее загадочное сообщение об ошибке “Ошибка SOAP сервера …по причине: Проверка мутабельных значений на заполненность не поддерживается”

    Каким должен быть 2-й параметр?

    • boris-leleko

      Я тоже получил эту ошибку. Заменил на: Если СтруктураДанных Неопределено Тогда…

      • boris-leleko

        меньше больше (оператор неравенства) здесь не отображаются (((

        • boris-leleko

          Если НЕ СтруктураДанных=Неопределено Тогда…

  11. Marishka2112

    Если база Сервер запущена в режиме предприятия, то обмен из базы Клиент не выполняется, пишет “Ошибка разбора Soap сообщения: неверная версия сообщения.” Как только выключаю 1С предприятие база Сервер, всё отрабатывает нормально. Почему?

    • Escander

      У вас случайно не учебная версия? Если учебная, то в неё прошито ограничение не количество одновременных коннектов к базе, а запущенное приложение-Сервер – это ещё 1 коннект

    • boris-leleko

      У меня тоже самое. Заменил все наименования метаданных на латиницу и заработало.

  12. Mortiferus

    На компе все получилось, а вот когда попробовал на телефоне подключить базу – пишет “Не правильный формат конфигурации”. Что за чудо?

    • Mortiferus

      Видимо, проблема с настройками сети, потому что залив базу Клиент на “вчерашнюю” (на другом компе), заработало. Правда, не могу вывести команду. Добавил ее на основную форму, которая открывается на начальной странице, на компе проверяю – есть, обновляю (сто раз) конфу базы – а на телефоне не обновляется, команда не появляется (жму кнопку “Мобильное приложение – Запустить”).

      • Игорь Сапрыгин

        Кнопку то жмете, мобильная 1С то при этом обновляется(появляется сообщение Обновление и прогресс бар)?

  13. bru_10

    А отладка на мобильном клиенте работает?

    • Escander

      Если запустить на мобильном устройстве (или из под эмулятора) – нет

  14. M0narch

    Настроил обмен на мобильном устройстве. Но есть один ньюанс, когда захожу первый раз, нажимаю “Выполнить обмен”, обмен происходит, а потом если нажимать “Выполнить обмен”, то ничего не происходит. Что это может быть ?

    • M0narch

      Если потом выйти из конфигурации и зайти снова, то опять первыйраз обмен идёт, а дальше нет

      • M0narch

        Вопрос снимается. После обмена надо зайти или в справочник Номенклатура или в Поступление, потом если перейти обратно на панель функций то обмен запускается

  15. tenhi

    Доброго времени суток!
    В ходе вебинара тренер создает XDTO-пакет (“СтруктураДляПолученияСреднего”) и сразу же меняет URI-пространство имен (также на “СтруктураДляПолученияСреднего”). Правда, не объясняет “почему”.
    Вопрос в том, как поступать в будущем, создавая собственные XDTO-пакеты? Также переименовывать пространство имен?

  16. alexfps79

    Здравствуйте!
    Я попытался подключить базу к мобильному устройству. Платформу установил без проблем. На эмуляторе все подключается. На мобильном ошибка “Ошибка HTTP при обращении к серверу: http//192.168.9.53 connection to http:/192.168.9.53 refused “, а перед этим писал что “…connection http:/192.168.9.53:80 timed out” в чем может быть проблема?

    • L0z4

      опять-таки, в браузере телефона по этому пути доступ есть?
      как подключен телефон, есть ли фаерволы/брендмауэры

  17. SoftMaker.kz

    Здравствуйте! Пытаюсь запустить по кнопке «ОтправитьНаСервер».
    Выдает:
    {ОбщаяФорма.Форма.Форма(46)}: Недостаточно фактических параметров
    Ответ = Соединение.ПолучитьСреднее(СтруктураДанных);
    Что делаю не так? Делал, так как написано. Может, что пропустил?

    • Игорь Сапрыгин

      Свойства параметров “Возможно пустое значение” настроили? Ощущение что у вас у обоих параметров флаг снят, и операция ожидает 2 параметра – а у вас 1

      • SoftMaker.kz

        Спасибо за ответ. «Возможно пустое значение» настроил не было у параметра: «СериализованнаяСтруктураДанных». Теперь новая ошибка:
        {ОбщаяФорма.Форма.Форма(38)}: Ошибка при вызове метода контекста (СоздатьWSПрокси)
        Соединение = WSСсылки.ФункцииДляРассчета.СоздатьWSПрокси(“ФункцииДляРассчета”,”ФункцииДляРассчета”,”ФункцииДляРассчетаSoap”);
        по причине:
        Сервис не найден. {ФункцииДляРассчета}:ФункцииДляРассчета

        • SoftMaker.kz

          Все заработало. Пришлось удалить веб-сервис и ws-ссылку и создать все заново. Спасибо.

  18. Max75

    К сожалению, поздно начал изучать (только с 22-го). С первым модулем разобрался! Во втором начались непонятности! При попытке публикации на сервере выдает ошибку: “Невозможно записать C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf\httpd.conf” Не подскажете, в чем может быть дело?

    • Владимир Зенин

      Перезапустите 1с из-под админа.

  19. aakravc

    Что касается имен. При использовании кириллицы в именах Типов данных, элементов структуры данных и WS-ссылок, мой Google Chrome выдал ошибку (см. вложение). При переименовании всего на латиницу, все пошло по сценарию.
    А вообще все очень интересно. Материал подготовлен превосходно. Спасибо вам большое.

    • Escander

      про Chrom вроде это уже писали, попробуйте открыть из под FireFox

  20. volmax

    К сожалению, все приходится делать с опозданием… Вчера проделал все из первого урока – все ок, сегодня приступил к работе по второму уроку, столкнулся с проблемой: после публикации на веб-сервер создается файл default.vrd, в котором прописано:

    Но при попытке открыть http://127.0.0.1/Serv/ws/WebServiceFunctionForCounting.1cws появляется ошибка “Ошибка HTTP 500.21 – Internal Server Error
    Обработчик “1C Web-service Extension” содержит поврежденный модуль “IsapiModule” в списке модулей”. Что я делаю не так? Помогите, пожалуйста.

      • Escander

        не видел такого раньше… может попробовать переопубликовать повторно?

        • DaNN

          Если не переустановить веб-сервисы 1с, странно правда

        • volmax

          Я последние 3 часа сижу и переопубликовываю ))). Уже и имя сменил на латинницу, и ISS перезапускал.

          • Игорь Сапрыгин

            У вас видимо 64 битная система?
            В диспетчере IIS на корневом узле (имя компа) в правом окне выберите пункт Ограничения ISAPI.
            Скопируйте сюда путь библиотеки который там указан.

          • Игорь Сапрыгин

            Ну и вдогонку сразу. Если система х64. То здесьже в диспетчере IIS слевы выбираете “Пулы приложений” справа в действиях жмете “Определить значения по умолчанию для пула” и там свойство “Разрешена 32 разрядные приложения” установите True

            • volmax

              Да, система х64. В “Пулы приложений” установил значение в True. А вот Ограничение не вижу.

            • DaNN

              Я обычно прописывал путь к wsisapi.dll для узла добавленного 1с в сопоставлении сценария. Справа будет при выборе узла “добавить сопоставление сценария”

            • DaNN

              и вроде еще узел в приложение преобразовывал, только после этого начинало работать

            • volmax

              Игорь, я написал, что пулы сделал. )))
              Я не вижу “Ограничения ISAPI”

            • Игорь Сапрыгин

              Упс. Примелькалось значит. исапи появляется когда в левом дереве выбираете либо корень (общая настройка) либо конкретный сайт(приложение)

            • volmax

              В левом окне выбрал корень – “Ограничения” не появились (((
              Эх, не успею сдать 4 задание, не получу продолжение тренинга….

              • Игорь Сапрыгин

                А вы компоненту “Расширения ISAPI” при установке IISа не забыли указать?

          • DaNN

            Надо было начинать с того что вы на IIS:) Там надо путь к библиотеке указать

          • Escander

            может быстрее будет установить и опубликовать через апач?

            • DaNN

              А где спортивный интерес? Только IIS x64, только хардкор:)

            • Escander

              да что-то утомляют меня мелкомягкие последнее время… хватит с них того, что у нас в конторе весь софт лицензионно чист (ну и бабла-же ввалили…)

              • Игорь Сапрыгин

                Сегодня был на тренинге по Windows 8.1… Блин… мне понравились плиточки ))))))))
                Нормально все у мелких ))))

            • DaNN

              Я давно на мак убежал, только 1С на винде держит, вертится в виртуальной коробочке, жрет ресурсы))

            • Игорь Сапрыгин

              DaNN, ну и как оно на MACе? :) Я вот пока не сбежал, т.к. не понимаю экосистему, хотя на руках и есть iPad ))

            • Игорь Сапрыгин

              IIS совсем не страшный, мне нравится :)
              Всегда им пользовался, все отлично :)

            • DaNN

              Вообще супер, экосистема работает действительно хорошо, начал на компе, продолжил на планшете, закончил в постельке на телефоне. Хотя неудобства тоже есть, но вернуться у меня не получилось, два раза пробовал, через неделю возвращался на мак. Самая большая проблема это нацеленность экосистемы только на себя, не любит она сторонних производителей. Сложно объяснить, но у нас кто попробовал назад уже не вернулся:)

              • Игорь Сапрыгин

                А что по финансам – все за денюжку? Или “обходные” пути используете? :)
                Пока испытываю огромный дискомфорт из-за различия устройств – десктоп винда, планшет iOS

                Сколько занял переход с винды? Просто… не знакомый софт… на винде все знакомо, а на иосе искать надо альтернативы и т.д. и т.п. Напрягает маленько )

            • DaNN

              Перед тренингом как раз поставил 8.1 в виртуалку, как она бесит со своими плиточками и отсутствием нормального пуска, а уж эти недоприложения плиточные…

              • Игорь Сапрыгин

                А что не так? Мне понравились плитки :)
                И отсутствие пуска нисколько не напрягает когда показали “как это есть” :)

            • DaNN

              ноут, тел и планшет от эппл, а вот на десктопе проснулась жаба и начала больно пинаться, поэтому собрал хакинтош в 25р с ссд обошелся, операционка встала без проблем, все летает уже почти два года

            • DaNN

              а как оно есть это как? :) заниматься сортировкой плиточек, по сути замена рабочего стола с ярлыками.

              • Игорь Сапрыгин

                Да нормально есть. Основной “напряг” от 8ки был в отсутствии пуска. В принципе он нормально заменяется плиточным интерфейсом, главное что ничего не потеряли – все стандартные элементы обычного пуска там тоже есть. Так что у меня на втором ПК сейчас Вин8, и я рад плиткам. на основном вин7 – ужасно не хватает виджетов, а 8ка это дает

            • Escander

              будущее за строенными системами и линукс скорее всего там откусит неслабый кусок (может под личиной андроида, а может и по другому)

            • volmax

              Дело не в хардкоре ))) Просто из-за нехватки времени, изучать материалы тренинга приходится на работе. А у нас тут админы суровые, категорически против использования в офисе Apache ))

  21. Аноним

    К сожалению, все приходится делать с опозданием… Вчера проделал все из первого урока – все ок, сегодня приступил к работе по второму уроку, столкнулся с проблемой: после публикации на веб-сервер создается файл default.vrd, в котором прописано:

    Но при попытке открыть http://127.0.0.1/Serv/ws/WebServiceFunctionForCounting.1cws появляется ошибка “Ошибка HTTP 500.21 – Internal Server Error
    Обработчик “1C Web-service Extension” содержит поврежденный модуль “IsapiModule” в списке модулей”. Что я делаю не так? Помогите, пожалуйста.

    • Поддержка курса по EDT

      Переустановить 1С и/или Apachе

      • volmax

        Так 1С 8.3 поставил перед началом тренинга. Используется не Apache, а ISS.
        Исходное сообщение почему-то продублировалось дважды. Проблема обсуждается чуть выше.

  22. scream

    Не могу добавить XDTO объект

    есть только меню экспорт XML схемы

    а добавить не активная ;(

    • Escander

      Он не нужен, нужен объект ФабрикаXDTO “получаемый@ из WS-ссылки.

      • scream

        ну я как в методичке делаю ;)
        там добавить на первом рисунке

        • volmax

          Смотрите видео. Добавлять XDTO-объект нужно не в клиентской базе, которую создали на первом уроке, а в новой.

          • DaNN

            ws-ссылку надо добавлять в клиентской базе

          • Игорь Сапрыгин

            DaNN имел ввиду XDTO пакет :)
            В общем судя по дереву у вас это мобильная база.
            А XDTO пакет и веб сервис создаются на стороне сервера – обычной полноценной базы.
            На стороне клиента создают именно WS ссылку позже

  23. Jestery

    Подскажите, пожалуйста, не очень понятно про обмен данными, т.е. получается так, что те данные которые добавлены на “Клиенте”, я могу увидеть на сервере только после того как я перезапущу конфигурацию?

    • Денис Глазырин

      Нет, для того, чтоб увидеть на Сервере данные добавленные на Клиенте – нужно на Клиенте запустить синхронизацию и после успешного выполнения – просто открыть нужное окошко на Сервере. Если окошко уже было открыто – достаточно нажать F5.

    • Игорь Сапрыгин

      Обмен запускается по команде. После обмена без каких-либо перезапусков уже видно изменения как на сервере, так и на клиенте.
      Почему у Вас возникло предположение о необходимости перезапуска конфигурации?

      • Jestery

        Проделав второе занятие, увидеть добавленные данные могу только после перезапуска, причем такое происходит как со стороны “Клиента”, так и “Сервера”.

        • L0z4

          звучит просто невероятно. В мобильном приложении на общую форму под кнопку вызова синхронизации добавил динамический список документов. В код самой команды кнопки после вызова серверного метода добавил ОбновитьОтображениеДанных. Все данные получаются сразу. Если вдруг у вас таким образом сказывается косяк мобильной платформы с подвисанием окон, то можно не выходить, а просто нажимать “назад”, пока он не предложит подтвердить выход, отказаться и продолжать работать.

          • Игорь Сапрыгин

            да… мега тест мобильной платформы получился =) Ряд аппаратов можно сразу в черный список )))

  24. M0narch

    При подключении базы на мобильном устройстве вылазит ошибка: Ошибка разбора XML – [405,78] Ошибка ‘ОбменДанными’ is not a valid URI. Подскажите что делаю не так ?

    • Игорь Сапрыгин

      В ошибке прямым текстом написано ” is not a valid URI.”
      URI пространства имен в параметрах веб сервиса проверьте – что у вас там? Если не дай бог кириллице – меняйте на латиницу.

  25. alexfps79

    И панель навигации не видна в окне мобильного клииента мы сделали область рабочего стола в одну колонку. Получается мы делаем синхронизацию на локальном компьютере.

  26. alexfps79

    Я решил проверить как работает отладка, через F5 все в порядке. Когда делаю, “запустить мобильное приложение”. Жму на кнопку “получить статическую ссылку” в точке останова не фиксируется, код следующий:

    Процедура ПодключитсяЧерезСтатическуюСсылку(Команда)
        ПодключитсяЧерезСтатическуюСсылкуНаСервере();
    КонецПроцедуры

    &НаСервереБезКонтекста
    Процедура ПодключитсяЧерезСтатическуюСсылкуНаСервере()
        // Вставить содержимое обработчика.
        Соединение = WSСсылки.ChangeData.СоздатьWSПрокси("ChangeData","ChangeData","ChangeDataSoap");
        Операция = Соединение.ТочкаПодключения.Интерфейс.Операции.Получить("ChangeData");

    КонецПроцедуры
    • Игорь Сапрыгин

      Не понятно. Вы запускаете клиент на мобильном устройстве, жмете в нем Получить стат. ссылку. И ждете что именно в указанном Вами коде произойдет остановка?
      Отлаживать мы можем только серверную часть – код самого веб сервиса. Или я Вас не понял? :)

      • alexfps79

        в ролике, Дмитрий запускает клиент, по виду рабочего стола понятно что не на андроиде, на андроиде видна только одна кнопка “Подключиться через статическую ссылку”.
        Справочник и документ не видны. Мы отлаживаем все в серверной части через F5?

        • alexfps79

          если нажать кнопку в клиенте на мобильном устройстве в отладчик мы не попадаем?

          • Игорь Сапрыгин

            Эм… мы можем отлаживать только серверный код. На сервере у нас исполняется именно код веб сервиса.
            Отладить код, выполняющийся на мобильном клиенте – мы не можем.
            Если код не касается объектов, которые характерны только для мобильного клиента, то можно сперва отладить код используя тонкий клиент 1С, как только на нем все успешно отрабатывает, переносим конфигурацию на мобильное устройство.
            Отлаживать на мобильном устройстве можно используя какие-то примитивные средства типа Сообщить() промежуточное значение какой-то переменной, создав панельку для вывода отладочной информации и т.п.

        • Игорь Сапрыгин

          Если ссылаетесь на видео, упоминайте время – открыл бы глянул, смог бы однозначно ответить, а не гадать :)
          Если правильно помню, в видео в конфигурации и серверная и клиентская часть совмещена в одной конфигурации, если запускать на ПК, то все можно отладить.
          Важно понимать что если вы работаете на мобильном устройстве, то тот код который выполняется НА НЕМ – к нему отладчиком не подключиться.

    • L0z4

      приведенный код не вызывает веб-сервис, а лишь получает информацию о нем. Если вы запускаете этот код не на ПК, а на андройде, то точка останова не сработает. В видео, все остановы что срабатывали после запуска операций на андройде происходили в коде веб-сервиса (на серверной базе данных).
      Вообще, вопрос не очень понятен.

  27. Mixan4ick

    Ответ = Десериализовать(Соединение.ВыполнитьОбмен(СтрокаДанных))

    Почему при вызове вот этой строки, возвращается НЕОПРЕДЕЛЕНО?

    На стороне сервера , функция возвращает XML

    • Денис Глазырин

      Это на клиенте? Вы посмотрите внимательно – что у Вас сервер отправляет в ответ.

      • Mixan4ick

        Сервер отправляет XML

        В клиенте, в функции Десериализовать ,XML превращается в соответствие и это по отладчику видно.
        Но не понятно, почему Ответ Неопределено, не понятно

      • Mixan4ick

        Все разобрался
        Функция не то возвращала

  28. reborn

    Натолкнулся на ошибка с таким содержимым:”soap:Client
    Неверный аргумент.
    Неверный аргумент. ” – она произошла после того как я изменил наименование XDTO пакета, а так же URI имен, по инету перевыбирал типы, проверял имена – ничего не помогает. Наверно придется с нуля снова серверную часть делать.

    • Денис Глазырин

      Это для статичной ссылки появляется ошибка, или для динамической?

      • Юлия

        Аналогичная проблема для статичной ссылки, после того как переделала имена на латиницу

        • Денис Глазырин

          Такое впечатление – что где-то что-то пропустили…
          Попробуйте просмотреть опубликованный сервис на локальном ПК. И внимательно к переделанным местам (в т.ч. – ближе к концу файла, там – где описание soap).

        • Юлия

          Была, надо было внимательно всё проверить. Сейчас работает.

    • reborn

      Нашел, в одном из параметров не были изменены названия xdto

  29. asakzt

    В решении не учитывается передача каталогов справочника.
    Переписал несколько строк:

    1. В Процедуре ЗагрузитьСправочники

    Если Спр.ЭтоГруппа Тогда
    НовСпр = Справочники.Номенклатура.СоздатьГруппу();
    Иначе
    НовСпр = Справочники.Номенклатура.СоздатьЭлемент();
    КонецЕсли;

    2. В Функции СформироватьДанныеДляСервера

    ТЗ.Колонки.Добавить(“ЭтоГруппа”);
    и
    НовСтр.ЭтоГруппа = Спр.ЭтоГруппа;

    • Денис Глазырин

      В решениях бывает, что некоторые моменты “упущены”. Это часть тренинга.

    • Игорь Сапрыгин

      Верно. Этот момент не однократно всплывал в комментариях. Суть тренинга – работа с мобильной платформой. Здесь легко могуть быть неточности и ошибки в “стандартном” коде – но не в этом суть

  30. AlexPC

    Только сейчас начал заниматься по курсу. Дошел до второго занятия. Практическая работа необязательна, но получить доступ к теории третьего занятия я не могу. Скажите, что нужно сделать?

    • Денис Глазырин

      Чтоб получить доступ к материалам начиная с 3-го дня – необходимо активировать токен доступа. Для доступа к материалам после 4-го дня – необходимо так же выполнить обязательное задание.

  31. upt

    Создал необходимые объекты конфигурации на клиенте и сервере.
    На сервере создал веб сервис “ОбменДанными”. На клиенте создал ws-ссылку для подключения к сервису.
    На клиенте вызываю процедуру ВыполнитьОбменНаСервере() в которой сначала обхожу все элементы справочника затем все документы сериализую их и передю в качестве параметра веб сервиса. На сервере десериализую и произвожу необходимые мне действия. Затем сериализую и отправляю в качестве возвращаемого значения на клиент. Там десериализую и записываю объект. Но уже на этапе попытки десериализовать на сервере получил такое сообщение.

    • Талов Александр

      Проверьте справочник “Номенклатура” – он должен иметь одинаковое имя в обоих базах

      • Денис Глазырин

        Такая ошибка может возникнуть в случае, если в передаваемых объектах не совпадает внутренняя структура. После чтения выполняется попытка преобразовать полученное значение в объект текущей базы, и если, предположим, не хватает реквизита, или он лишний – будет вызвано исключение.

  32. Gendalf

    Вроде осилил. С подглядыванием в ответы ;)
    Но даже так огромные трудности вызвали русские буквы в названиях сервисов и т.п., очень много времени убил, пока всё заработало на смарте (в эмуляторе на удивление проблем это не вызывает).
    Это специально так сделано, чтобы своими мозгами шевелили, или такое огромное упущение авторов курса?

    • Игорь Сапрыгин

      Это технический тренинг. Здесь очень полезно набивать шишки. Думаю умышленно)

    • Escander

      когда начнётся реальная работа – узнаете, что шишек ещё набивать и набивать… тонкостей при разработке всплывает очень много

  33. Mikecool

    Еще проблема, выполнил публикацию веб-сервиса, решил изменить имя функции, поменял и получил в описании wsdl
    soap:ClientОперация не найдена: {DataExchenge}:DataExchenge:ClientDataExchenge()

    Удалял веб-сервис, отменял регистрацию – ошибка остается (((

    • Mikecool

      Разобрался, ошибка была в том, что у созданной функции не оказалось параметра, видимо его я добавил позже создания функции

  34. Галина

    Почему при публикации сервиса не создается файл wsdl=схемы?

    • Игорь Сапрыгин

      Что значит не создается? В каталоге публикации подобного файла и не будет. Размещается только файл default.vrd, в котором прописывается работа с базой 1С.

  35. alexfps79

    Удалил метод операции “Выполнить обмен”, удалил функцию. Выбрал по – умолчанию “лупа” функция по английскии. Ws-ccылка открылась.

    Едем дальше, надеюсь кому-то поможет.

    У меня Win7 64, apach 2.2

  36. alexfps79

    Переименовал Веб-сервис в английский:

    soap:Client

    Operation not found: {ChangeData}:ChangeData:ВыполнитьОбмен()

    • Денис Глазырин

      Кроме самого web-сервиса так же стоит переименовать и Операции и Параметры. (и не забыть про URI-пространство имён)

  37. kornet1976

    Здравствуйте. Ошибка при попытке обратиться к web-сервису из браузера

    • Игорь Сапрыгин

      Уже много много раз отвечали в комментариях – это проблема в Хроме. Связана она с тем, что вы указали у веб сервиса URI кириллицей. Замените на латиницу – все будет ок

  38. alexfps79

    Чистка кэш в папках Local и Roaming не помогла, та же ошибка:

    “Extra content at the end of document”

  39. Евгений

    При проверке XDTO пакета получил
    Ошибка проверки модели XDTO: xdto-valueType-5.1.3 тип: ОграниченнаяСтрока пакет: СтруктураДля ПолученияСреднего
    Тип ‘{СтруктураДля ПолученияСреднего}ОграниченнаяСтрока’ не может иметь фасет ‘totalDigits’
    сам не смог найти ответ ,спасибо

    • Денис Глазырин

      какие данные у Вас передаются в реквизите с типом данных Ограниченная строка? Он откуда вообще возник?

Комментарии закрыты