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

Модуль 3. Использование планов обмена для мобильных баз данных

В ходе третьего модуля Вы изучите:

  • Создание и настройку планов обмена
  • Создание узлов плана обмена
  • Регистрацию изменений по условию

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

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

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

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

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

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

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

Вопросы

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

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

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

  1. blackclimber

    blackclimber 22.04.2014
    Что мне делать? Пытаюсь подключиться через статическую ссылку.
    Попытка
    Соединение = WSСсылки.DataTransfer.СоздатьWSПрокси(“DataTransfer”,”DataTransfer”,”DataTransferSoap”);
    ВСОперация = Соединение.ТочкаПодключения.интерфейс.Операции.Получить(“Синхронизация”);
    ХранилищеЗначения= Новый ХранилищеЗначения(“НекиеДанные”,Новый СжатиеДанных(9));
    ДанныеXDTO = Соединение.ФабрикаXDTO.Создать(ВСОперация.Параметры.Получить(“Данные”).Тип,ХранилищеЗначения);
    Ответ = Соединение.Синхронизация(ДанныеXDTO);
    Возврат Истина;
    Исключение
    Сообщить(ОписаниеОшибки());
    Возврат Ложь;
    КонецПопытки;
    Но при передаче данных в функцию Синхронизация у меня возникает ошибка “Ошибка разбора SOAP сообщения, не верная версия сообщения”

  2. nnomelchuk

    Сервер и клиент обмениваются все замечательно, но только на ПК.
    При переходе на андроид, та же конфа начинает при обмене выдавать ошибку
    Ошибка разбора XML: -[1,1]
    Фатальная ошибка:
    Extra contetnt at the end of the document

    Все сервисы и ссылки в латинице, браузер на адроиде видно xml схему

    Подскажите плиз, что не так?

    • Виталий Москвичёв

      Попробуйте обнулить номера сообщений в узлах обмена…

    • DaNN

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

    • mrscylla

      У меня такое было, когда я на сервере забыле включить в состав плана обмена регистр.

    • Maxim

      Была такая проблема, решил перезагрузкой мобильного и рестартом апача.

    • sserejkin

      А вот теперь самое интересное. Коллеги, кто делал блок 2 с правками или может полностью по Видео. Описанная ошибка (а я закончил с этим заданием только что) не уходила у меня при пересоздании баз, переустановке Апача и т.д. пока, 5 минут назад, меня не осенило пройти обмены по каждому ТИПУ объектов системы. И вот оно… документы. смотрю, чтож такого в документах и понимаю, что Реквизит и ОБЩИЙ реквизит (не смотря на одноименность) совершенно разные вещи. После мелкой косметической правки все заработало и без каких-то ошибок. ВОТ. Ушел в блок 4

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

        Это не “мелкая косметическая правка” – это совершенно разные объекты системы. И все это попадает под ситуацию – разная структура объектов обмена.

      • Escander

        Тренер вроде упоминал про общие реквизиты.

  3. Александр Ратников

    Коллеги, такая проблемка: Из 3 задания взял конфигурации, перенес клиентскую часть на телефон. После входа в меню справочника или документа потом не могу закрыть открытую форму и выйти в главное меню. При нажатии на кнопку “назад” появляется пустой экран и приложение висит. Сделал кнопку “Закрыть” , проверил на клиентской части на компе-форму закрывает. На телефоне кнопко нажимается, но форма не закрывается. Код кнопки такой:

    &НаКлиенте
    Процедура ЗакрытьФорму(Команда)
    ЭтаФорма.Закрыть();
    КонецПроцедуры

    В чем может быть проблема?

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

      Видимо.. в мобильной платформе… (

    • Виталий Москвичёв

      Тоже с этим помучился )) работою на телефоне, надо нажать на левую кнопку которая меню вызывает вернетесь в главное меню. На сколько я понял форма списка кнопкой возврата не закрывается с нее надо просто переключиться в главное меню.

    • ZaytsevStepan

      жми левую кнопку “настройки” у меня на самсунге с4 так же

      • Александр Ратников

        Спасибо всем! Нужно действительно нажимать ЛЕВУЮ кнопку на телефоне, чтобы выйти обратно в меню. (телефон только купил под эти курсы, еще не освоил.)

    • Ria9

      Несколько раз нажать назад. В теории об этом рассказывали

  4. nnomelchuk

    Ужасно! Никаких ошибок ни серверная ни клиентская не выдает, но обмена данными не происходит. Что это за глюк?

    • nnomelchuk

      Глюка нет. Планы обмена надо было обновить :)

  5. shootnik

    Скопировал базу 3-го дня. Ничего не менял. Только опубликовал web-сервис. При попытке синхронизироваться на сервере выдается ошибка:
    “{ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(24)}: Ошибка при вызове метода контекста (Синхронизация): Ошибка вызова операции сервиса: {DataTransfer}:ОбменДанными:Синхронизация(): Ошибка SOAP сервера: Неизвестная ошибка. {WebСервис.ОбменДанными.Модуль(12)}: Ошибка при вызове метода контекста (НачатьЧтение)
    по причине:
    {WebСервис.ОбменДанными.Модуль(12)}: Ошибка при вызове метода контекста (НачатьЧтение)
    по причине:

    по причине:
    Неизвестный получатель”

    Не могу понять в чем причина?

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

      Читайте ветку. Для начала – обнулите номера сообщений

      • shootnik

        Хорошо допустим, обнулил номера сообщений – обмен со стороны мобильного проходит. Но все же почему на сервере спотыкается на строке “ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ);” в модуле веб-сервиса?

        • Виталий Москвичёв

          Не известный получатель – проверьте коды узлов

  6. piskaryova@rambler.ru

    У меня вопрос по заданию, что-то я его плохо поняла : обмен нужно организовать между 2-мя базами (сервер-моб.клиент), или 3-мя (сервер-тон.клиент-моб.клиент) ?

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

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

      • piskaryova@rambler.ru

        Т.е., исходя из Вашего ответа – нужно сделать обмен между базой Сервер и Моб.клиентом.
        Благодарю за ответ !

    • DaNN

      Организуете с 2-мя, будет работать и с большим количеством, только узлов дополнительно добавить надо будет и все

    • Escander

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

  7. akronim

    Вот такая вот ошибка при попытке выполнить обмен

    {ОбщаяКоманда.ВыполнитьОбмен.МодульКоманды(11)}: Ошибка при вызове метода контекста (ВыполнитьОбмен)
    Ответ = Соединение.ВыполнитьОбмен(СтрокаДанных);
    по причине:
    Ошибка вызова операции сервиса: {DataTrasfer}:ОбменДанными:ВыполнитьОбмен()
    по причине:
    Ошибка HTTP: Document Error: Access Denied
    Access Error: Access Denied
    Invalid or corrupted session detected. Please close your browser and login again

    (405).

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

      Перезагрузите компьютер

      • akronim

        Если б все было так просто.
        На вашем решении – то же.
        Пользователь – локальный админ.

  8. CT

    Эмулятор андроида. При выполнении оператора:Соединение.Exchange(Данные);
    вдруг стала появляться ошибка:Ошибка работы с интернет: connection to http://127.0.0.1 refused
    Тот же код на компе выполняется.
    Куда рыть?

    • L0z4

      ip должен быть указан сетевой компьютера где запущен веб-сервис 1С.

      • CT

        Именно так. Конфа на андроиде даже обновляется.

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

          описание wsdl обновите, с учетом внешнего IP

  9. Alex_grem

    От клиента отправляется сообщение (не было изменений на клиенте)

    ПолныйОбменМП
    ЦБ
    МП1
    1
    0

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

    При этом ЧтениеСообщений.Отправитель = Неопределено.

    Это у меня ошибка где-то или так и должно быть?
    Вопрос возник из-за того что потом надо выгружать с сервера для определенного узла, а он не определен.

    • Alex_grem

      Сообщение, которое сформировано на клиенте

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

      Значит не создали узлы, или у них коды отличаются

      • Alex_grem

        Коды совпадают и узлы созданы. Какие еще версии могут быть?

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

          Убедитесь, что имена планов обмена совпадают, и что на мобильном устройстве в коне нет в конце пробелов, а то такое бывает.

          • Alex_grem

            Спасибо. Проблема решена: тупо пересоздал план обмена и все заработало…ох уж эти грабли на ровном месте

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

      Хм… А коды узлов корректны в обеих базах?

  10. Anksunamun

    При выполнении синхронизации на планшете выпадет ошибка.
    {ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(39)}
    Ошибка при вызове метода контекста (Начать Чтение): Ошибка разбора XML:-[1.1]
    Фатальная ошибка:
    Document is empty

    Процедуру скопировала с базы
    Процедура ПринятьИзменениеПоПлану(СтрокаСообщения);

    Отладка не происходит, не понятно что не нравится. Базу несколько раз публиковала, апач перезапускала.

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

      на мобильном устройстве базу пересоздайте заново, и перед первым обменом – в этой базе (после того как зададите имена для узлов обмена) создайте что-нибудь – чтоб было чем обмениваться.
      Вам приходит сообщение, что документ обмена пуст. Я сталкивался, что тэги при синхронизации из пустой базы закрывались не корректно.

  11. panov@optimus-nn.ru

    Добрый день.
    Из за чего м.б. ошибка – приложена?

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

      Проверьте в отладчик что у вас в переменной ВСервис. Обычно такая ошибка выдается при попытке обратиться к свойству/методу объекта, а объект почему-то Неопределено

      • panov@optimus-nn.ru

        Именно так, но почему оно м.б. не определено?

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

          откройте в браузере wsdl

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

      у меня – решилось заменой “ТочкиПодключения” на “образец” из синтакс-помощника. Интуитивно – похоже на опечатку, внешне – не заметно. Но вот так вот – помогло.

  12. Makushimo

    Может не в ту ветку..
    Когда работал с обменами вдруг возник вопрос.
    Где исполняются серверные процедуры/функции.
    Например в модуле команды “ВыполнитьОбмен” готовим сообщение для передачи через WS ссылку в конфигурацию Сервер, для этого в модуле команды вызываем функцию с инструкцией &НаСервере
    Эта функция выполняется физически на телефоне или на ПК?
    На телефоне так же есть разделение на контексты Сервер/Клиент?
    Если на телефоне, значит в принципе может быть доступен запрос или это урезанный контекст Сервера?
    Если например, для отображения данных на форме документа мне нужно выполнить небольшой запрос к базе, для этого мне нужно сделать вызов через WS ссылку в базу на ПК и для этого нужна постоянная связь с ПК. Так?

    • dj_serega

      На телефоне так же есть разделение на контексты Сервер/Клиент?
      – Верно

      Если на телефоне, значит в принципе может быть доступен запрос или это урезанный контекст Сервера?
      – Урезано много чего. В тч запросы.

      Если например, для отображения данных на форме документа мне нужно выполнить небольшой запрос к базе, для этого мне нужно сделать вызов через WS ссылку в базу на ПК и для этого нужна постоянная связь с ПК.
      – Нажали “обновить”. Подключились к серверу, получили данные, вернули в xml, прочитали, обновили на форме телефона.

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

      Эта функция выполняется физически на телефоне или на ПК?
      На телефоне
      Если например, для отображения данных на форме документа мне нужно выполнить небольшой запрос к базе, для этого мне нужно сделать вызов через WS ссылку в базу на ПК и для этого нужна постоянная связь с ПК. Так?
      И много Вы так будете центральную базу “дергать”? А если мобильных клиентов будет много?
      Почему не обеспечить в мобильном приложении наличие нужных данных и обходится средствами самого мобильного приложения? В этом и суть – постоянная связь НЕ нужна, только для сеансов обмена.

      • DaNN

        Почему не обеспечить в мобильном приложении наличие нужных данных и обходится средствами самого мобильного приложения?

        Прямо так жестко? Бывает людям на моб устройстве нужна актуальная информация. Можно кучу вариантов придумать, когда нельзя обеспечить на мобильном устройстве всех нужных данных. Так что да, придется дергать сервер.

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

          Почему жестко? О_о Отнюдь. По возможности. Думаю нет смысла обсуждать здесь золотую середину и прочее. Вопрос у человека был явно не о том. Там принципиальное понимание идет.

          • Makushimo

            Принципиальное понимание пришло. Спасибо.
            Однако либо мне придется менять концепцию приложения либо делать так:
            1.Документ1 делает движения
            2.Документ2 должен видеть остаток ресурса (например, денег в кошельке по разрезам), для этого
            2.1 программно запускаем синхронизацию, в которой отдаем серверу данные документа 1 и получаем обратно результат исполнения запроса на сервере
            2.2. отображаем остаток на форме документа2

            В моем случае не будет пользователей больше 2.
            Однако для адекватной работы приложения критичным будет налоичие интернета.

            • DaNN

              Вот тут кстати возникает проблема:
              Док2 получил остатки, но пока пользователь дозаполняет его, другой пользователь, уже ввел Док3, которые эти остатки уменьшил. В результате Док2 уведет остатки в минус.

    • DaNN

      Сначало стандартное, перевидете веб-сервис на латиницу

      • felix170

        В примере перевели только URI пространства имен – DataTransfer и все.

        Надо и остальное переводить на латиницу и имя файла пуликации и Операции (Синхронизация и Данные) ?

        • DaNN

          Лучше все перевести, каждый девайс по-своему отрабатывает. Так что полумеры могут не прокатить.

          • felix170

            Все перевел на латиницу. Через браузер на “http://127.0.0.1/day3/ws/Obmen.1cws?wsdl” выдает
            Not Found
            The requested URL /day3/ws/Obmen.1cws was not found on this server.
            Строка в модуле ВСОпределение = Новый WSОпределения(“http://192.168.36.100/day3/ws/Obmen.1cws?wsdl”);
            ОШИБКА

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

              Вот нужно добиться что бы в браузере все таки всдл выдавался корректно.
              Каталог публикации проверяли – что там, что в файле публикации? Переопубликовывать пробовали? Веб сервер перезапускали?
              Прикрепите скрин вроде такого:
              http://курсы-по-1с.рф/wp-content/uploads/2014/04/64434/629c7cad3cf77c9b949f24ab7b2ef1c0.jpg
              сразу все становится понятно, а иначе приходится задавать тонну вопросов.

            • ZaytsevStepan

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

    • Jim7

      в предыдущей ветке обсуждаем именно эту ошибку, но со стороны сервера!
      пока не решено.

    • kuryaev_rail

      Проверьте названия узлов обмена!Или вообще они у Вас прописаны?Например в моб приложении один ЦБ, другой МП

  13. Anksunamun

    1)На планшете когда пытаюсь выполнить синхронизацию, выпадает ошибка. Но прочитать её не удается, окно моментально закрывается. Какие есть варианты?

    2)Что удалось прочитать”При создании описания сервиса произошла ошибка…” Ошибка работы с интернет. Connection to //http 127.0.0.1 refused.

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

      На планшете указывайте адрес пк, т.е. например 192.168.0.1 а не 127.0.0.1

      • Anksunamun

        На планшете указан ip 192.168…
        База, залита и обновляется. Проблема только с синхронизацией.

        • L0z4

          ошибка с синхронизацией повторяется и на планшете и на пк (судя по ошибки с 127.0.0.1)?
          Если так то проще смотреть в отладке на ПК. Причин может быть много: не опубликован веб-сервис, проблемы с апачем, проблемы с авторизацией (если она создана), ошибка в синтаксисе.

          • Anksunamun

            Нет, на ПК синхронизация прошла успешно.

            • Anksunamun

              Да на латинице, но в видео явно другая ошибка. Текст моей совсем другой.

            • L0z4

              без кода не поймешь.. наверняка ведь ошибка в нем.
              Как вариант. вы в базе пользователей не создавали?

            • Anksunamun

              Дмитрий, спасибо. Проблема действительно в этом.
              А по первому вопросу, почему моментально закрываются сообщения на мобильной платформе? Синхронизация успешна! Появляется и сразу же исчезает.

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

      А вы перегениерировали ws-ссылку? Там же стоит сейчас 127,0,0,1, а надо туда свой внешний IP написать. Правой кнопкой на ws=ссылке – импорт wsdl и укажите адрес с нужным ip

      • Anksunamun

        Дмитрий, спасибо. Проблема действительно в этом.
        А по первому вопросу, почему моментально закрываются сообщения на мобильной платформе? Синхронизация успешна! Появляется и сразу же исчезает.

  14. dragEugen

    помогите плиз, при нажатии на кнопку синхронизации в 1с на Пк вылазит такая ошибка
    {ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(14)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. http://192.168.1.101/day3/ws/ОбменДанными.1cws?wsdl: При создании описания сервиса произошла ошибка. http://192.168.1.101/day3/ws/ОбменДанными.1cws?wsdl

    • dragEugen

      при открытии через браузер :

      soap:Client

      Операция не найдена: {DataObmen}:ОбменДанными:Синхронизация()

      • dragEugen

        Спасибо разобрался
        оказывается прежде чем делать функцию синхронизации надо данные добавить иначе не публикуется сервис

        • dragEugen

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

          • dragEugen

            &НаСервере
            Функция ВыполнитьСинхронизациюНаСервере()
            Попытка
            ВСОпределение = Новый WSОпределения(“http://192.168.1.101/day3/ws/ОбменДанными.1cws?wsdl”);
            ВСервис = ВСОпределение.Сервисы.Получить(“DataObmen”,”ОбменДанными”);
            ВТочкаВхода = ВСервис.ТочкиПодключения.Получить(“ОбменДаннымиSoap”);
            ВОперация = ВТочкаВхода.Интерфейс.Операции.Получить(“Синхронизация”);
            Данные = Новый ХранилищеЗначения(“Некие данные”, Новый СжатиеДанных(9));
            ДанныеXDTO = ВСОпределение.ФабрикаXDTO.Создать(ВОперация.Параметры.Получить(“Данные”).Тип, Данные);
            ВСПрокси = Новый WSПрокси(ВСОпределение, “ОбменДанными”,”ОбменДанными”,”ОбменДаннымиSoap”) ;
            Ответ = ВСПрокси.Синхронизация(ДанныеXDTO);
            Возврат Истина
            Исключение
            Сообщить(ОписаниеОшибки());
            Возврат Ложь;
            КонецПопытки;
            КонецФункции

            • DaNN

              Странно, может проблема учебной версии, но попробуйте перейти на латиницу

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

              СПрокси = Новый WSПрокси(ВСОпределение, “ОбменДанными”,”ОбменДанными”,”ОбменДаннымиSoap”) ;
              А кто тут URI будет менять?

          • Jim7

            толку-то в переименовании? у меня переименовано! не доходит дело до прокси! сразу же вылетает, на стадии определения!

            • Escander

              толк в том, что кириллицы нет в словарике URI пространства имён

    • Jim7

      Я со вчерашнего дня на этом завис. До сих пор “висю”. :(

      • dragEugen

        Все что мог сделал, всё перепроверил по несколько раз, уже голова пухнет

        • Jim7

          она самая. та, что рекомендована.
          1С:Предприятие 8.3, учебная версия (8.3.4.389)

          у меня тоже ум на раскоряку. тем паче, что 1С на свой комп осознанно я поставил дня четыре назад, как раз для этих курсов. и вот никак не вникну – то ли это у меня руки кривые, то ли глюк 1С?

          судя по всему, эту ветку тренера покинули, потому как тишина уже часа два как минимум. все “нормальные” 4-й день осваивают. а “двоечники” учителям нафиг не нужны! :)

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

            Пока ничего хорошего на ум не пришло. Раз даже WSОпределение не создается…
            А статическую WS ссылку пробовали? Тоже брак?

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

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

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

              А при чем здесь количество соединений? Не уловлю…

            • L0z4

              1С считает количество подключенных мобильных платформ, но, вроде как, она не должна считать количество клиентов веб-сервисов

            • blackclimber

              Что мне делать? Пытаюсь подключиться через статическую ссылку.
              Попытка
              Соединение = WSСсылки.DataTransfer.СоздатьWSПрокси(“DataTransfer”,”DataTransfer”,”DataTransferSoap”);
              ВСОперация = Соединение.ТочкаПодключения.интерфейс.Операции.Получить(“Синхронизация”);

              ХранилищеЗначения= Новый ХранилищеЗначения(“НекиеДанные”,Новый СжатиеДанных(9));

              ДанныеXDTO = Соединение.ФабрикаXDTO.Создать(ВСОперация.Параметры.Получить(“Данные”).Тип,ХранилищеЗначения);

              Ответ = Соединение.Синхронизация(ДанныеXDTO);
              Возврат Истина;
              Исключение
              Сообщить(ОписаниеОшибки());
              Возврат Ложь;
              КонецПопытки;

              Но при передаче данных в функцию Синхронизация у меня возникает ошибка “Ошибка разбора SOAP сообщения, не верная версия сообщения”

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

            Ветку никто не покинул, просто иногда теряешься среди 20 страниц где везде надо всем ответить. Так что простите, если что.
            У учебной ограничение на подключение, так что перезагрузите комп, и потом не заходя в режим предприятие – попробуйте обновить конфу.

          • dragEugen

            Ошибка у нас с вами из-за учебной версии
            у неё имеется ограничение на количество подключений к серверу где то около 3х

          • Jim7

            dragEugen
            честно говоря, не понимаю, причём здесь кол-во подключений? у меня оно одно: мой комп – он же и сервер. и ещё я в него ем! (шутка!)

            Дмитрий Шерстобитов (мастер-тренер)
            только что очередной раз перегрузил комп (после обновлений). на компе даже офиса нет. ОС (Win7 x64), кодеки, Far, Google, 1с8. запускаю всегда через конфигуратор и только одну задачу. IP и 10… и 127… были написаны через точки. результат тот же самый, т.е. – ошибка.

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

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

            • dragEugen

              перепроверил, с работы взял ключ от 1с и запустил рабочую 1с8.3 всё запахало

            • Escander

              у учебной версии 1С есть ограничения, возможно вы в них и упёрлись

            • Jim7

              Мужики я чертовски рад за вас!
              А что делать тем, у кого нет на работе лишнего ключа?

            • blackclimber

              Вот мне тоже интересно, а если нет лишнего ключа? Я честно. Сегодня часов 6 мучался, переписывал конфу, пробовал на разных компах. Все эта ошибка вылетает. Оказывается дело в нашем пригонючейшом апаче!!!!. Есть вариант другого куска кода?

            • Jim7

              Ха – 6 часов! Я уже сутки “висю”! Народ уже пятое задание решает, а тут с третьим засада. Причём, похоже, фатальная. Потому как учебная версия неработоспособна, а к рабочей ключей нет. И, как я понимаю, тутошним мастерам этот геморрой нафиг не нужен.

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

                Ну зачем же Вы так. “Тутошние мастера”, порой тоже не всесильны.
                Эти вопросы разумно решать с самой фирмой 1С. Да, это очень не быстро и т.п.
                Но это явно не косяк разработчиков курса.
                Тренинг ОЧЕНЬ СЛОЖЕН с технической точки зрения. Огромное количество участников, огромное разнообразие устройств, операционных систем, сочетания софта и прочее…
                В Вашей ситуации пока, я так понимаю, никому не удалось подсказать решение… В общем не всесильны люди… Вот )

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

                Вы хотите, что бы я прямо ответил, что 1С глючит? И что я, и все кого я спрашивал – не смогли дать мне четкий ответ? Если да, то не вопрос – так оно и есть.
                Только вот теперь подумайте – будет ли кто то теперь думать о том, как вам помочь, если такое написал один из тренеров? Я думаю, что врядли.
                Поэтому не мучайтесь. Не работает так – ну так выгружайте файл в хмл и читайте на сервере. Проблема изменить 5 строк кода?
                Я же не просто так показывал как с гугл диском работать :)

                Это тренинг, в нем будет куча проблем, он так построен. Но если вы его сможете пройти – считайте, что вы сможете сделать очень многое. Мы не даем шаблоны, которые можно скопировать, и все будет работать, иначе в чем смысл обучения? Это будет просто – повторение :)

                Не нервничайте, ищите другие подходы. Люди отчитываются за 4 модуль, у некоторых проблемы – карта черная, либо провайдер в крит вылетает. Бывает, но мы видим их код в этом случае и понимаем что все будет работать на другом устройстве.

                Так что не сдавайтесь, идите до конца. В мобильной платформе еще и не такое встретите, поверьте.
                Но если вы сейчас сдались, то лучше вообще не занимайтесь мобильной платформой, она очень глючная. Во всяком случае пока.

                Я надеюсь, что ответил более чем развернуто :)

            • Jim7

              Вот это скорость ответа!
              Только непонятно, что вас обидело. В русском языке “тутошний” – это который тут. Если вас это обидело – прошу прощения, и в мыслях не было кого-нибудь обидеть!
              Меня вот обидело другое, что я нарвался на очередное “кидалово”. Вот это обидно!
              Как я понимаю, для меня курсы на этом закончились.

            • Soul

              Присоединяюсь к проблеме. И если она действительно связана с ограничением учебной версии, то, думаю, с учетом отставания, данная проблема вылезет у многих. Нужно как-то её решать! Я тоже не могу дальше продвинуться из-за этого.
              То Игорь Сапрыгин: может быть попробовать задействовать IIS вместо апач? Может он не держит лишней сессии? Я попробовал, но у меня сходу не получилось его настроить. И, к сожалению, не могу больше на это время тратить. Буду пока изучать 4ый урок и надеяться, что проблема как-то разрешится.

  15. Makushimo

    Дмитрий, поделитесь секретом – что за программу вы используете, чтобы видеть на экране компьютера экран своего мобильника?

      • Makushimo

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

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

          Обе софтины попробовали? Я с MyPhoneExplorer работаю, мобайлер не ставил.

          • Makushimo

            MyPhoneExplorer поставил тоже. но в упор не увидел там демонстрацию экрана мобильного или захват экрана илп чего то подобное.
            В целом прога мощняк, оставлю себе
            но вот с показом экрана телефона пролет.

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

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

    • felix170

      HTC – у него надо нажать пару кнопок чтобы сделать снимок экрана
      питание + “домой”

  16. dunar

    Почему в записи вебинара третьего модуля при удалении регистрации берется номер принятого не из пришедшего сообщения а из текущего значения номера принятого?
    “ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.Отправитель.НомерПринятого);”

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

      Видимо ошибка. Нужно удалять для ЧтениеСообщения.НомерПринятого.
      ЧтениеСообщения.Отправитель – это ссылка на узел ЦБ в ТЕКУЩЕЙ базе, и у неё номер принятого – это старый номер, еще не обновленный. Номер обновится только после ЧтениеСообщения.ЗакончитьЧтение();

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

      Отлично, мы потом на эту ошибку обратим внимание в 5 модуле :)
      Но хорошо, раз вы уже ее тут заметили.

      • Евгений Хавов

        поменять (местоположение УдалитьРегистрациюИзменений) нужно в обоих модулях?

  17. Евгений Хавов

    на 52 минуте 55 секунде говорят: “мы вставляем ЗагрегистрироватьВыгрузку”, в оригинале базы смотрю, там название другое и узлы переделаны, не “ЦБ”… блин… видео не соответствует базе… вот и смотрю, что выгрузка-загрузка косячит…

    • Евгений Хавов

      в ПринятииИзмененииПоПлану нет-у УдалитьРегистрациюИзменений() в модуле команды, а в видео на 56 минуте 15 секунде добавляют :(

      • Евгений Хавов

        похоже база не соответствует видео – если можно, перевыложите на нормальную, не могу сверить, почему у меня не идет синронизация…

        • Евгений Хавов

          всё работает, видео правильное – просто на андроиде на кнопку “Выполнить синхронизацию” не надо быстро нажимать, подождать некоторое время :)

          а базу перевыложите, там нет кода по удалению изменений…

          • Евгений Хавов

            да, и в модуле команды все-таки поменял код узлы, на

            Узлы = ПланыОбмена.ОбменСМобильнымиУстройствами.Выбрать();
            Пока Узлы.Следующий() Цикл
            Если Узлы.Ссылка ПланыОбмена.ОбменСМобильнымиУстройствами.ЭтотУзел() Тогда
            Узел = Узлы.Ссылка;
            КонецЕсли;
            КонецЦикла;

            в видео тоже, наверное, лучше это исправить…

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

              Не совсем понятно что именно Вы исправили. В приведенном фрагменте вообще будет ошибка – в условии нет операции сравнения.

            • Евгений Хавов

              здесь не отображается знак неравенства, знак меньше и больше – текст пропадает.

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

            Зачем? Вы же дошли до этого сами, обратили внимание. Значит и остальные дойдут.
            Наш курс не нацелен на обучение вбиванию кода. Мы стараемся максимально осветить не только решение (их море), а и проблемы, которые могут возникнуть.
            Так что не переживайте :)

  18. zhu4

    Еще одна проблема, может это приколы учебной базы, когда запускаю сервер только в режиме Толстого клиента( без конфигуратора) , мобильное приложение выдает ошибку “the target server failed to respond” При этом создается четыре соединения ws-соединения.
    Так же ошибка(наверное баг приложения) после того как обмен отработал, кнопка “обмен” на форме больше ничего не делает, пока не сменишь окошко

  19. sserejkin

    Очень странное явление. После выполнения всего процесса записи изменений между Возврат ЗаписьХМЛ.Закрыть() и следующим операндом Центральная база выдает сообщение “Узел неизвестен”, а мобильный клиент сообщение Ошибка параметров 1,-1

    • sserejkin

      Забыл еще добавить: в этот же момент Апач виснет наглухо. поймать на каком месте не удается.

      • sserejkin

        переименовал код центральной базы. Сейчас на мобильном и сама центральная база в момент НачатьЗапись:
        Узел = ПланыОбмена.ПланОбменаСМобильнымУстройством.НайтиПоКоду(“БД”);

        ЗаписьСообщения.НачатьЗапись(ЗаписьХМЛ, Узел);

        Ругаются на НЕИЗВЕСТНОГО ПОЛУЧАТЕЛЯ. Хотя узел определен.

        • Евгений Хавов

          у меня еще хуже было, во втором ДЗ перебирая в цикле колонки – Для Каждого Кол Из ТЗ.Колонки Цикл – 1С вываливалась в ошибку, хотя в отладчике ТЗ.Колонки тип был коллекция колонок и в ней присутствовали колонки… помог полный перезапуск конфигуратора :)

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

          Скорее всего у вас выбран текущий узел, првоерьте условие:
          УзелПланыОбмена.[ИмяВашегоПлана].ТекущийУзел()
          условие должно быть истинным

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

            …угловые скобки скрылись, вобщем узел должен быть не равным узлу полученным с помощью УзелПланыОбмена.[ИмяВашегоПлана].ТекущийУзел()

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

              Угловые скобки на форуме обрабатываются как обрамление html-тегов.

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

          Дмитрий рекомендовал в подобных случаях обнулять номера сообщений.
          Я действовал грубее – сносил на мобильном устройстве базу и переподключался снова.

    • Escander

      а не может быть сохраненного сообщения для того узла которого нет в списке узлов (с другим кодом)?

  20. zhu4

    Господа, у меня часто выскакивает ошибка на мобильном приложении “extra content at the end of the document” , причем не понятно как она срабатывает, т.е. раз выскакивает, а другой не очень. уже час бьюсь нашел что помогает полный перезапуск всего. Отладчик тоже не рабоатал.

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

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

  21. Евгений Хавов

    Не понятно только одно: когда создали элемент справочника, документ и сведения в регистре – на мобильном устройстве они не появились – это получается что физически одна база (1CD), но в ней как бы две отдельные базы – одна для персонального компьютера, другая для мобильных устройств?

    • Евгений Хавов

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

      • Escander

        Установка свойства “Назначение использования” влияет на доступность объектов конфигурации (например регистров накопления), при этом ранее созданные объекты (даже тех типов, которые запрещены в мобильном клиенте) автоматически не будут удалены.

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

      На самом деле баз будет столько, сколько будет мобильных клиентов + одна на ПК.
      Каждый смартфон/планшет “несёт” на себе свои данные.
      Иначе без постоянного интернет-соединения до “основной” базы работать было бы не возможно.

      • Евгений Хавов

        Спасибо, к 5-ому модулю уже прояснилось :)

  22. suvorovis

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

    Ошибка разбора XML: -[1,1] Фатальная ошибка: Extra content at the end of the document

    В том случае, когда клиент и сервер запускаются на ПК, данная ошибка не происходит.

    Подскажите, в чем может быть дело?

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

      Тут Вам скорее отладчик поможет понять.
      Адрес сервиса обмена указан корректно?
      Все предыдущие задания вы решили – все было успешно?
      Кириллица в URI не забыли на латиницу поменять?

      • Zasranec0

        Эта ошибка связана с несовпадением номеров сообщений в 2-ух базах. Я бы очень хотел посмотреть на правильную автосинхронизацию их. Да, самому написать не проблема. Интересует чужой опыт ^^

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

          Рассинхрон между принятыми и отправленными? Или общий рассинхрон – в клиенте №0, а на сервере №10?
          Привык лечить перерегистрацией.
          А что имеете ввиду под автосинхронизацией?

      • suvorovis

        Адрес указан корректно – при обмене без использования плана обмена такой ошибки не возникало.

        Предыдущие задания все успешно решил.

        Кириллицу в URI заменил на латиницу.

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

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

          • suvorovis

            Решил проблему, решил отписаться:

            ранее проблему описал Zasranec0 22.04.2014

            “Эта ошибка связана с несовпадением номеров сообщений в 2-ух базах.”

            Создал новые узлы обмена, на них заработало.

    • Виталий

      такая же ситуация. Адрес веб-сервиса указан верно. в отладчике Сообщения одинаковые. в ури – латиница

    • smeta

      Попробуйте так сказать обнулить базы. То есть создать новые пустые базы и загрузить в них конфигурации из этих баз. Мне помогло.

    • VKomaroff

      Была такая же ошибка. Вызвана была отсутствием узла обмена для мобильного устройства. Я делал отладку и в серверной и в клиентской базе прописал пару узлов ЦБ+К1 (Центральная и Клиент). А мобильное устройство это же по сути третья база. Прописал на мобильном пару узлов A1+ЦБ и добавил в серверную ИБ третий узел: А1. И все пошло.

    • DaNN

      Смотрите настройку планов обмена, корректность кодов, состав

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

      Обнулите номера сообщений и попробуйте снова.
      Ну и скиньте именно строку, где ошибка. А то не ясно, при подключении или при чтении, на сервере или клиенте

      • InShallaH

        Ошибка возникает в “ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(22)”

      • InShallaH

        В строке кода Ответ = ВСПрокси.Синхронизация(ДанныеXDTO);

        • InShallaH

          Починил. Возвращал Возврат(ЗаписьХМЛ); Вместо Возврат(ЗаписьХМЛ.Закрыть());

  23. DmitryZaikin

    При открытии клиента из этой статьи на смартфоне выдается ошибка “Ошибка работы с Интернет: Ресурс не найден (400). Никто не в курсе что это значит?

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

      Не понятно что где и как Вы открыли.
      Вы взяли базу решения, опубликовали… Да? И чего куда далее? :)

      • DmitryZaikin

        Взял базу, опубликовал (конфигурация\мобильное приложение\публиковать). Подцепил на смартфоне, когда запускаю выскакивает такая ошибка, но при этом открывается конфа, но изменения туда не приходят при обновлении.

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

          А вы во взятой базе поправили адреса сервисов? У Дмитрия свои адреса, у нас могут быть другие

          • DmitryZaikin

            Вопрос решился, было имя публикации мобильного приложения Klient, сократил его до Kl и переопубликовал, перестала такая ошибка появляться

  24. Jim7

    Функция ВыполнитьСинхронизациюНаСервере()
    Попытка
    ВСОпределение = Новый WSОпределения(“http://10.10.10.37/day3/ws/ОбменДанными.1cws?wsdl”);

    При запуске синхронизации вылетает ошибка:

    {ОбщаяКоманда.ВыполнитьСинхронизацию.МодульКоманды(14)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. http://10.10.10.37/day3/ws/ОбменДанными.1cws?wsdl: При создании описания сервиса произошла ошибка. http://10.10.10.37/day3/ws/ОбменДанными.1cws?wsdl

    Где подкрутить?

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

      По указанному адресу в браузере ВСДЛ успешно открывается?

      • Jim7

        да, через браузер открываю. и по 10.10.10.37 и по 127.0.0.1

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

          Вы так же не упомянули – на чем работаете, на чем обмен запускаете?
          Попробуйте URI пространства имен веб сервиса указать на латиннице – или тут все ок?

          • Jim7

            если “на чём” про устройство – пока VM.
            если “на чём” про браузер – Explorer.
            ошибка вылетает, когда я запускаю отладку на сервере. так что до VM я ещё не дошёл.

          • Jim7

            ВСервис = ВСОпределение.Сервисы.Получить(“DataTransfer”,”ОбменДанными”);

            Но это следующая команда кода. а исключение появляется на шаге создания нового ВСОпределение

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

              а вы ip в отладке указали? Именно 127.0.0.1 (обратите внимание на точки, иногда ставят запятые, сам так грешу, с их шрифтом – их не разобрать)

  25. Андрей Кондрашкин

    Когда при удалении номенклатуры ссылка в документе не превратилась в “битую”, поначалу подумал, что дело в том, что форма документа была открыта на момент операции обмена. Создал документ, указал в нём номенклатуру “Шкаф”, удалил шкаф на клиенте, выполнил обмен – на сервере в справочнике элемента нет. Открываю документ – хоть бы хны, шкаф на месте. Воистину чуден 1С :)

    Кстати, в Такси с включенной “Панелью открытых” удобнее.

  26. Bliz

    Отчет по заданию:
    1) добавил план обмена, указал в составе объекты для регистрации
    2) добавил РС: Штрихкоды
    3) перенес в мобильное приложение новые объекты, плюс недостающие реквизиты
    4) добавил вебсервис, прописал двухсторонний обмен: выборка изменений, удаление изменений. При загрузке проставляю в качестве префикса номера и кода для документов,справочников, код из узла обмена.
    Проверил на планшете обмен отработал нормально.

  27. tol

    При добавлении нового приложения 1С на мобильном устройстве сообщение – Не правильный формат конфигурации. Как побороть?

    • Dmitry K

      проверьте путь к конфигурации. У меня была подобная ошибка когда я в качестве пути к конфигурации в моб приложении указывал путь к опубликованному на вебсервере приложению а не к опубликованной конфигурации(Конфигурация->МобПриложение -> Опубликовать).

      • tol

        Спасибо, именно так со мной и случилось вместо публикации мобильного приложения пользовал публикацию на веб-сервере

        • Dmitry K

          Таки не я один запутался в трех соснах :)

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

          Интересно где и как хранится конфигурация на мобильном устройстве? Нужно и можно ли её как-то бэкапить и переносить на другие устройства?

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

      За предыдущие дни добавлялось нормально, или это “первый раз”?
      Версия apk файла приложения точно правильная?
      В браузере смотрели результат публикации? Там нормально всё видно?

  28. Dmitry K

    Создал объекты в базе Сервер. “Перетащил” их в базу Клиент. “Перетащил” различающиеся объекты.
    Создал план обмена “ПолныйОбмен”, включил авторегистрацию объектов.
    Добавление префиксов реализовал в подписках на события “ПриУстановкеНовогоКода” и “ПриУстановкеНовогоНомера”, аналогично типовым механизмам 1с.
    Префикс формирует код: “Префикс = ПланыОбмена.ПолныйОбмен.ЭтотУзел().Код”

    Обмен сделал по образцу в теоретическом материале. Пришлось повозится отладчиком и тщательно перепроверять имена сервиров, пространств имен, операций сервисов и т.п.
    Использование механизмов обмена с помощью вебсервисов очень похоже на задачки про рекурсию в курсах по программированию.
    “Я запрашиваю изменения в центральной базе, отдавая туда свои изменения, а в ответ получая то что просил”.

    Сначала проверял запуская клиентскую базу на ПК в режиме тонкого клиента. Обмен работал.
    Потом опубликовал базу, подключил её к виртуалке с android, создал узлы и тестовые данные. Обмен не заработал. При запуске команды на обмен отладчик начинает работать в базе “Сервер” но пройти по шагам не успеваю, сеанс отладки быстро прерывается. Через 5-10 запусков команды и заходов/выходов из мобильного приложения обмен заработал сам собой.

    Наверное нужно решить с десяток подобных задач чтобы уровень понимания сменился с “я примерно представляю как оно работает” до “я точно знаю что тут и зачем”.
    Ну и жутко напрягает “стабильная нестабильность” работы 1с и , в частности, мобильного приложения. Невозможно понять где ошибся я, а где чудит платформа.

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

      В этом вся прелесть разработки, никогда не знаешь где подвох. А в 5 модуле вообще покажу одну интереснейшую проблемку :) На решение которой я в первый раз убил пару дней. Так как даже не представлял себе, что такое может быть :)

      • Dmitry K

        Опять “спойлеры” :)

        Научить программистов НА 1с программировать вполне реально, а научить программистов В “1С” не выпускать сырые платформы гораздо сложнее.

        У меня тут в продвинутом курсе последовательность на днях не работала, не двигала границы. Причем её копия, сделанная по Ctrl+С/Ctrl+V работала идеально без изменений.

  29. Ogonek_ir@

    Добрый день!
    Когда публикую конфигурацию с галочкой “разрешить отладку” вылетает ошибка: в браузере “страница недоступна”, а на клиенте “{ОбщийМодуль.СинхронизацияСЦБ.Модуль(4)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. http://192.168.71.62:8080/mobserver/ws/synchro.1cws?wsdl: При создании описания сервиса произошла ошибка. http://192.168.71.62:8080/mobserver/ws/synchro.1cws?wsdl: Ошибка работы с Интернет: Server returned nothing (no headers, no data)”
    А если галочку “разрешить отладку” снимаю, тогда все работает. Подскажите, пожалуйста, как можно решить эту проблему? Спасибо!

  30. lopus

    Да действительно помогло спасибо за помощь.

  31. starodubceva.at@npfsr.ru

    Здравствуйте, вопрос конечно не по теме сегодняшнего дня, но как установить мобильную платформу на iOS? По той информации что я нашла, надо делать сборку в отдельной программе на Масе, проще варианта нет?

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

      Проще только для взломанных устройств.
      Без взлома – долго и не бесплатно.
      Я на iPad тренинг прохожу. Все совсем непросто было :)

      • DaNN

        Игорь, а не поделитесь информацией, вот очень не хочется покупать developer program

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

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

    • Escander

      шаг №1 – обработкой (для 8.3.3) или специальной конфигурацией (для 8.3.4) называемой сорщик мобильных приложений собирается промежуточный результат
      шаг №2 – который далее программой x-Code (на компьютере под управлением iOS) пересобираем в выполнимый файл.
      шаг №3 – покупаем за 100$ лицензию разработчика сроком на год и размещаем полученное на шаге 2 в AppStore

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

        Для установки мобильной платформы разработчика сразу начинаем с п.3.
        Размещать в AppStore ничего не требуется. Инструменты разработчика iOS позволяют разместить отладочное приложение напрямую на свои тестовые устройства.
        AppStore – это уже дистрибуция ПО, а нам достаточно разработки.

  32. lopus

    Помогите разобраться. Решил развернуть апач на рабочем компе на нем 7 ка установлена, а на домашнем ХР. На домашнем все запустилось без проблем. На 7 ке не пойму что не так, пытаюсь опубликовать мобильное приложение, каталог который указал для публикации пустой, когда в адресной строке браузера указываю путь до каталога ошибка HTTP 403 – запрещено, что не так сделал. Я правильно понимаю там xml схема конфиги должна быть?

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

      Да, пишут о такой проблеме. У многих не воспроизводится, но кому-то “везет”.
      Решения не попадалось.
      В качестве временного решения можете самостоятельно сохранить туда xml. В конфигураторе Конфигурация – Мобильное приложение – Записать в файл – И укажите каталог Апача.
      Проверьте заработает или нет.

      • Dmitry K

        Чтобы не запускать каждый раз 1с с правами админа я дал полный доступ своему пользователю на каталог “C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf”.
        Если windows не 64битная то путь будет без ” (x86)”.

        Запуска 1с под админом делать не приходится.

        • swimdog

          Я установил не в системную папку, а в обычную и никаких дополнительных прав настраивать не надо

          • DaNN

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

      • Евгений Хавов

        тоже сегодня с 403-ей ошибкой столкнулся, на видео когда нажимают кнопку Мобильное приложение – Публиковать после перезапуска аппача 1С спрашивает обновить мобильное устройство – тренер нажимает “Нет” – у меня после этого такая ошибка и пошла. Когда нажал “Да” – ошибка исчезла.

      • naditomilina

        Ошибка эта раздражает и не дает продолжить нормально курс :(

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

      у Вас конфигуратор под Администратором запущен при публикации?

    • DaNN

      Вроде это проблема с правами на папку публикации

    • Stef72

      Проверьте права на каталог у пользователя, под которым работает Апач.

    • Escander

      А с правами точно всё норм? Может установить не в программфайлс а в другой каталог(не столько защищаемый операционной системой)? Может попробовать отключить антивирус?

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

    Немного хотелось бы поправить авторов:
    “Обратите внимание, сначала идет фильтр, а потом данные. Таким образом, если мы изменим запись в регистре (именно изменим, например, поменяем статью), то в отборах будет старая статья, а в записи – новая”
    На самом деле будет 2 набора передано, в первом “старый” фильтр и пустой набор, во втором “новый” фильтр и текущий набор.

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

      Да, действительно, что-то я тут промахнулся. Спасибо.

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

      Не всегда, 2 набора передаются только в случае, если вы меняете значение измерения, у которого стоит галочка “Основной отбор”

  34. 13jaguar

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

    • L0z4

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

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

      При приеме данных на мобильном устройстве обратно на сервер регистрироваться не должно, проверьте строку Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель. Установка отправителя перпятствует обратной регистрации.

      • 13jaguar

        Да, только после этого идет Данные.Записать(), а оно регистрирует записанный объект для выгрузки обратно. Нужно либо не записывать, либо очищать регистрацию объекта.

        • 13jaguar

          Собственно, что на самом деле происходит:
          1. На М1 регистрируется изменение объекта
          2. Объект выгружается на ЦБ
          3. Объект записывается на ЦБ
          4. Объект регистрируется ЦБ для отправки на М2, но не на М1
          5. Объект загружается на М2
          6. Объект записывается на М2
          7. Объект регистрируется М2 для отправки на ЦБ
          8. Объект выгружается на ЦБ
          9. Объект записывается на ЦБ
          10. Объект регистрируется ЦБ для отправки на М1, но не на М2
          11. Объект загружается на М1
          12. Объект записывается на М1
          далее п.1, и по кругу.

          • 13jaguar

            Отсюда вывод: нужно (по-видимому на ЦБ) проверять необходимость записи загруженного объекта, и в зависимости от результата регистрировать его изменение.

            • DaNN

              Объект после загрузки не должен регистрироваться для отправки в ЦБ с М2, если отправитель правильно заполнен. Похоже на глюк платформы. На форумах по 1с народ встречал такое, сообщение со ссылкой на ветку не прошло, наверное на модерации, если пройдет – посмотрите.

            • kdv170

              А у объекта перед записью установлено свойство ОбменДанными.Загрузка=Истина;

              Может это спасет от регистрации изменений?

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

              Дополнительно ничего проверять и обрабатвать не нужно, платформа сама все должна делать.
              Может этот элемент ранее уже у вас зарегистрирован с большим номером сообщения, такое поведение на новых элементах повторяется?

            • 13jaguar

              Кажется нашел глюк. В клиентской базе не было УдалитьРегистрациюИзменений(). В серверной сделал, а в клиентской забыл.

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

            Поставьте точку останова перед записью объектов, посмотрите что хранится в свойстве .ОбменДанными – какие там отправители получатели и т.п. Не понятно почему у вас в М2 при приеме из ЦБ происходит регистрация для отправителя

  35. smeta

    По началу не мог разобраться с обменом. Проблему решил, посчитав, что ошибка вылезала из-за несоответствия сообщений.
    В практическом задании сделал обмен так же как и в примере который рассматривался в видео вэбинара. Единственное внес изменения в свою конфигурацию для того чтобы конфигурация сервера и клиента стали идентичными. Добавил единицу измерения и комментарий.
    В обе конфигурации добавил регистр Штрих-коды. Префикс для номера документа или для кода беру из кода узла плана обмена.
    Префикс = ПланыОбмена.ОбменСМобильнымиУстройствами.ЭтотУзел().Код
    Использую методы УстановитьНовыйНомер(Префикс) и УстановитьНовыйКод(Префикс)

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

      “Единственное внес изменения в свою конфигурацию для того чтобы конфигурация сервера и клиента стали идентичными.”

      Да, на это есть прямое указание в тексте задания.

  36. Zasranec0

    Почему в выложенной базе нет удаления регистрации при обмене?

    • Андрей Кондрашкин

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

      Попробуйте для плана обмена создать форму списка и включите отображение колонок для номера входящего сообщения и номера исходящего. Если номер отправленного на узле-источнике не равен номеру принятого на узле-приемнике, то где-то случился косяк.

      Возможно, Дмитрий прольет немного больше света, для чего нужно было удаление в видео.

      • Zasranec0

        Удаление нужно в любом случае. Если не удалять, у нас будут копиться инфа на отправку и на принятие, тогда планы обмена становятся не нужными вовсе.

        Насчет разных номеров. Тут немного другая ситуация, при отправке и приема номера должны соответствовать или “быть больше”, если что то случиться, то посыпятся ошибки при чтении хмл.

        Опять же, никаких обработок таких ситуаций в базе нет.

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

      А вы думали вам будет готовый 100% рабочий шаблон? Не :) Тут есть ошибки, некоторые сделаны спецом, что бы потом на них указать, некоторые сами появляются, я при решении не готовлюсь за ранее :) А вот сел и пошел писать.
      Некоторые ошибки будем исправлять позже, когда будем на них попадать явно, некоторые будут не столь явными.
      Там есть еще одна ошибка, но ее мы решим в 5 модуле. Чисто ошибка по невнимательности, но раз ее допустил я, то 100% допустит еще кто-то.
      Как то так :)

  37. Олеся

    Повторяю с динамической ссылкой действия как в вебинаре:
    ВСОпределение = Новый WSОпределения(“http://192.168.*.*/paycontrolws/ws/WebServiceExchangeDataPayControl.1cws?wsdl”);
    При проверке на ПК на видео все гуд, у меня ошибка. Скрин.
    Ссылка http://192.168.*.*/paycontrolws/ws/WebServiceExchangeDataPayControl.1cws?wsdl в браузере открывается, xml вот такой странный (Операция Синхронизация с методом Синхронизация() в веб-сервисе WebServiceExchangeDataPayControl в конфигурации есть). Скрин.

    • Андрей Кондрашкин

      У вас либо имя обработчика в модуле веб-сервиса для метода Синхронизация не совпадает с указанным в свойстве ИмяМетода, либо количество параметров разное.

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

      Так вот же, Вам в XML подсказывают, что нет такой операции – Синхронизация(), зайдите в модуль web-сервиса и проверьте.

      • Олеся

        вот поэтому я и считала xml странным, потому что операция Синхронизация есть, причем если, например, ее переименовать в СинхронизацияДанных, говорилось, что ее нет.
        Нашла источник проблемы – не был проставлен параметр у функции, я сначала создала по кнопке метод операции (автоматом соответственно в параметрах ничего не поставилось), а потом только параметр Данные завела и вручную не добавила в функцию.
        сейчас все работает.

  38. L0z4

    по материалу – все прекрасно, легко и просто. Расстраивают только глюки платформы (описанная в видео необходимость многократно нажимать “назад” чтобы он продолжил работать). Похоже это связано с использованием метода “Сообщить”.

    • L0z4

      нет..не сообщить.. это просто вызов команды из меню. Вынес кнопку на форму (как в первом примере) и все прекрасно.

  39. blackclimber

    При скачивании вебинара выходит 403 ошибка. Токен у меня есть.. Что делать?

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

      попробуйте скачать при помощи программы для скачиваний файлов. Например Download Master

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

      Кроме этого – попробуйте обновить страницу через Ctrl + F5 (или вручную очистить кэш), и как вариант – другим браузером.

      • Dmitry K

        Не рассматривали раздавать материалы торрентами? И качать проще и на вас нагрузка меньше?

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

          А если их надо изменить? Нашли ошибку и т.д. от торента толку мало будет.
          Тем более часть скачает и вырубит раздачу. Так что так как то уверенней. Тем более с 3 модуля материал закрыт для свободного скачивания.

          • Dmitry K

            Вывешиваете обновление, перекачивается torrent файл и качать по новой. В торрент-клиенте будет видно что закачка встала.
            Торрент файл можно выдавать только зарегистрированным на курс или отправлять ссылку в почту.
            Ну и насчет “закрытость” материала – это все-таки миф.
            Материалы минимум 2-х ваших платных курсов можно найти в сети.

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

              И так каждый раз. И через неделю все будут на раздаче? В общем торенты- не вариант. Считайте это нашей причудой :) Имеем право :)

  40. blackclimber

    Как всегда я с проблемой. У меня не запускается отладчик. Конфигурация – клиент. На видео тренер запускает его в легкую. Проблема вот в чем. Я нажимаю f5. Изменения сохраняются, но вот предприятие не запускается. Использую учебную версию, скаченную с 1с сайта, как было в первой методичке. Может дело в том, что назначение “Мобильное приложение”?

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

      попробуйте нажать кнопку на панеле задач.

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

          Вместо запуска приложения в режиме отладки по F5 – попробуйте сделать то же самое соответствующей кнопкой меню в конфигураторе.
          (про панель задач – опечатался)

          • blackclimber

            Выходило тоже самое. Перенастроел запуск 1с. Установил на запуск “Тонкий клиент”. До этого стояло “Мобильное приложение”. Видимо поэтому у меня так получалось. Где то видел такую фразу, что мобильное приложение не поддерживает отладку. Так ли это?

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

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

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

              Это ограничение связанно с тем, что вы не можете подключится к самому телефону и делать отладку на нем.

            • L0z4

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

      • blackclimber

        Я запускаю предприятие в ручную. Устанавливаю галочку в параметрах “Разрешить отладку в текущем сеансе”. Все работает. Останавливается на точках останова. Но с конфигуратора почему то не запускается…

    • Андрей Кондрашкин

      У меня бывает такая штука иногда при отладке веб-сервисов. Захожу в Отладка – Подключение…, а там в подключенных предметах отладки висят веб-сервисы. Ситуация характеризуется иконкой кнопки “Начать отладку” – она выглядит так, как будто отладка идёт.
      Возможно, соединение подвисает; не пытался разбираться. Просто отключаю предметы отладки – иконка меняется на обычный жёлтый кружок, и отладку можно запускать заново.

  41. Zasranec0

    ДанныеXDTO = ВСОпределение.ФабрикаXDTO.Создать(ВОперация.Параметры.Получить(“Данные”).Тип, Данные);

    Такая строчечка непонятная.
    Почему вы не предлагаете просто отправлять и получать хранилище значений?

    • 13jaguar

      Полагаю, чтобы принимающая сторона точно знала, что она получает именно “Хранилище значения” в сериализованном виде…

      • Zasranec0

        Она и так знает, что получит ХранилищеЗначений

        • 13jaguar

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

        • L0z4

          имхо это скорее вопрос оптимизации. Мы можем сэкономить пару строчек кода и просто передать хранилище. При этом, если веб-сервис изменился или мы отправили не то, что было нужно. Узнаем мы об этом уже после установки сетевого соединения и попытки передачи данных. Если же мы “спросим” что веб-сервису нужно, и приведем тип данных, то в случае ошибки, исключение произойдет на клиенте до отправки данных.

    • Андрей Кондрашкин

      Я думаю, что это для того, чтобы не зависеть от изменения имени типа. Т.е. мы получаем тип параметра, а как он называется, нам до лампочки.

      • Zasranec0

        Эм, если мы будем искать по имени, то как раз мы будем зависеть. Если будем просто отправлять Хранилище значений, то все будет куда проще.

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

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

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

      Так как в случае изменения типа, не надо искать места вызова и переопределять их.
      Сейчас там строка, изменили на число – будет число, так как тип берется из типа параметра сервиса. А если жестко указать -хранилище, то поменяв тип на строку – надо еще и за этим следить.
      Плюс если сервис чужой – сидеть и искать что это за тип… Зачем?

  42. Алексей

    цитата:
    “Следующие блоки на этой странице доступны только для разрегистрированных …”

    может все-таки “зарегистрированных”?

  43. jushkaaa

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

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

        мм.. так наверное не получится…
        подождите ответа саппорта

        • melnikovg1c

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

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

            попробуйте скачать при помощи программы для скачиваний файлов. Например Download Master.

            • melnikovg1c

              На планшете стоит загрузчик, но и на нем не хочет скачивать, до этого все было замечательно. Скачать на обычном ПК сейчас нет возможности т.к. сам в дороге и интнрнет мобильный. Support почему-то молчит.

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

                Ответит, там просто некоторые им вопросы шлют по модулям, вот они и разгребают это все.

  44. kdv170

    Все сделал по заданию. Не с пол пинка конечно но все работает хорошо.
    Однако есть один нюанс. При изменении одного и того же элемента справочника изменения применяются от мобильника. Пока не могу сообразить как бороться с этой коллизией.

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

      А как Вы хотите бороться? Какой приоритет у данных? Сервер трет клиент?

      • kdv170

        Думаю центральная база должна иметь приоритет.
        Видимо в нашем случае план обмена используется чисто как сборщик изменений и механизм обмена отличается от варианта с РИБ.

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

          Вот как думаете, так и настраивайте. Логику всегда прописываем так, как нужно – у каждого свои тараканы… :)
          По плану обмена все верно заметили.

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

      Сначала с сервера отправляете данные на клиент, потом после записи – данные отправляете с клиента на сервер. В каком порядке пропишите выполнения операций – такой приоритет и будет.

      • kdv170

        И то верно. А я уж думал проверять наличие данных на сервере (в случае со справочником) на пустую ссылку и просто не записывать если объект уже существует

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

          А если он существует, но пришли измененные данные? :)
          Если совсем заморачиваться, можно сделать анализ конфликтных ситуаций как в БСП: Применять какое-то правило приоритета данных “по умолчанию”, но при этому сообщать пользователю о коллизиях, и предоставлять возможность переопределить автоматическое разрешение проблемы. Например по умолчанию приоритет – серверные данные, но мало ли вдруг корректные данные все таки идут с клиента.

          • kdv170

            Да. Пожалуй не стоит замораживаться. Все зависит от задачи.

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

              Верно верно! Отморозков не нужно! %)

  45. smeta

    Здравствуйте,

    Возникла небольшая проблема, никак не могу понять в чём дело.
    Использую конфигурацию которая приложена на страничке.
    В конфигурации поменял адрес ws ссылки на свой IP.
    Больше не делал никаких изменений. Затем я установил конфигурацию на эмулятор android. Добавил узлы в план обмена на android как рассказывается в видео уроке (коды узлов совпадают), НО при попытки синхронизации выдается ошибка.
    Подскажите в чем может быть проблема?

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

      В теоретическом материале, на 27-й странице написано, что все имена функций и параметров в web-сервисах должны быть написаны латиницей.
      Посмотрите – вроде скриншот ошибки похож на Ваш.

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

      URI пространства имен и прочее с кириллицы на латинницу заменили?

        • smeta

          Переименовал все функции и URI в латиницу. Не помогло.
          Потом предположил, что возможно проблема из-за того, что в базе которую я скачал с сайта уже происходил обмен. Может не совпадали сообщения обмена? Не уверен, но когда создал новую базу и загрузил только конфигурацию, а не файл CD, то всё заработало.

          • PaNaCeA

            Спасибо за наводку. По твоей методике победил эту же ошибку у себя.

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

            Вот и отлично. Базы в раздаточных материалах тоже могут иметь ошибки. Главное в этом все то, что понимая принцип – люди сами могут исправить ошибки.
            Сразу возникают вопросы про приоритеты и т.д.
            Так что там вы увидите еще не одну ошибку, это я вам обещаю. Но чаще всего, исправив пару строк кода – все заработает :)

  46. PaNaCeA

    Задание выполнил по аналогии с вебинаром – т.е. также гоняю туда-сюда хранилище значений. Префикс устанавливаю в процедурах ПриУстановкеНовогоНомера и ПриУстановкеНовогоКода строкой Префикс = ПланыОбмена.ОбменСМобильнымиУстройствами.ЭтотУзел().Код;
    Все отлично работает – даже не верится.

    • PaNaCeA

      Забыл добавить, что т.к. про синхронизацию с мобильным устройством ничего в задании сказано не было, поэтому спользую предыдущий веб-сервис ВыполнитьОбмен. Чтобы заработал, также поменял URI пространства имен на латиницу

  47. L0z4

    пока не в тему вопрос: что за чудесное приложение позволяет видеть (или даже управлять?) андройдом с ПК в этом видео?

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

      В выложенном видео – это VMware-player-6.0.1-1379776.exe, который был в раздаточных материалах к курсу.
      В видео первого дня рассматривается установка и запуск Андроида в виртуальной среде.
      У меня в частности всё запущено в VirtualBox.

      • L0z4

        22:40 видео: “обратите внимание, я показываю экран своего мобильного устройства. Просто на нем намного удобнее и быстрее работать чем в виртуальной машине”.

      • Олеся

        офф: вопрос еще с первой темы возникал по поводу виртуальной среды, остался там без ответа – может вы подскажете.
        при установке мобильной платформы на андроид используются 2 версии установки, как я поняла, в зависимости от типа процессора. с физической машиной понятно (смартфон, планшет), посмотрел какой проц, погуглил про тип, сориентировался…
        а на виртуальной, вопрос дилетантский конечно, процессор, тип, особенности его работы наследуется от физической машины (ПК, на котором виртуальная развернута), что вроде как мне подозревается более логичным (у меня AMD А6-5200, выбрала вариант arm-процессора, но он не установился – это удивило, отсюда и вопрос), или также возможна какая-то эмуляция работы процессора (его каких-то технологий, но мне это кажется не очень реалистичным) другого типа?

        • L0z4

          ПК это всегда x86, а не arm. Других в наши дни найти проблемотично.

        • Олеся

          о, спасибо! значит, я не то что-то нагуглила про AMD =), косяк мой.

    • Sieg Heil

      Что конкретно в видео не понятно, но можно тот же TeamViewer к примеру использовать. К кому-то можно наверное и по SSH приконнектиться (эт же linux), но root скорее всего нужен будет

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

        В TeamViewer’е из Play Маркета появилась функция входящих подключений?
        Просто я когда пару месяцев назад пробовал – из него можно было только подключиться к ПК, но не обратно.
        При коннекте по SSH можно “посмотреть картинку” с рабочего стола? (я просто ни разу не пробовал такое проделать.)

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

          К устройствам некоторых вендоров есть возможность подключаться, приложение называется TeamViewer Quick Support. К самсунгам точно можно

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

            Спасибо, буду иметь ввиду. Самсунгов дома правда нет :)

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

      Как вариант использовал MyPhoneExplorer (не требует root прав) :) Что использует Дмитрий не пойму, но точно знакомая программа =)) Ждем его комментария

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

      я прошу прощения, что не совсем правильно понял первоначальный вопрос.
      В Play Маркете есть приложение BBQScreen Android Client Beta (платное), которое вкупе с клиентской частью на ПК позволяет организовать демонстрацию.

      Но судя по внешнему виду – у Дмитрия другое.

    • Андрей Кондрашкин

      По ходу видео на пару секунд мелькал заголовок окна приложения – MyMobiler. В районе 50:50.

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