Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Несоответствие типов, параметр 1

Несоответствие типов, параметр 1
Я
   solbadguy
 
05.07.18 - 08:23
Здравствуйте уважаемые знатоки, проблема следующая -
Создаю конфигурацию, из которой будет цеплять данные мобильный клиент на мобильном устройстве соответственно.  Добился того, что при нажатии на волшебную кнопку данные из мобильного устройства грузит в основную базу. Из центральной базы в мобильное устройство - нет.  
В ступор встал конкретно, изейший вопрос по-любому. Видимо не хватает
Готовый код не прошу, прошу тыкнуть носом. Спасибо.
 
 
   solbadguy
 
1 - 05.07.18 - 08:25
Имеется общая команда.


&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    Если ВыполнитьСинхронизациюНаСервере() Тогда
        Сообщить("Синхронизация прошла успешно!");
    Иначе
        Сообщить("При синхронизации произошла ошибка!");
    КонецЕсли           
КонецПроцедуры   


&НаСервере

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


&НаСервере 
Процедура ПринятьИзмененияПоПлану(СтрокаСообщения)
    ЧтениеХМЛ = Новый ЧтениеXML;
    ЧтениеХМЛ.УстановитьСтроку(СтрокаСообщения);
    ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
    ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ);
    
    Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл
        Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML);
        Если НЕ Данные = Неопределено Тогда
            Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
            Данные.ОбменДанными.Загрузка = Истина;
            Данные.Записать();
        КонецЕсли;
    КонецЦикла;
    ЧтениеСообщения.ЗакончитьЧтение();
КонецПроцедуры


&НаСервере
Функция ЗарегистрироватьВыгрузку()
    
ЗаписьХМЛ = новый ЗаписьXML;
//ЗаписьХМЛ.ОткрытьФайл(ЗаписьХМЛ); 

ЗаписьХМЛ.УстановитьСтроку();
ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();

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

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

Возврат ЗаписьХМЛ.Закрыть();

КонецФункции
   butterbean
 
2 - 05.07.18 - 08:25
Пожалуйста, а в чем конкретно проблема-то?
   Не кассир
 
3 - 05.07.18 - 08:26
(1) И?
   solbadguy
 
4 - 05.07.18 - 08:26
{ОбщаяКоманда.ВыполнитьСинхронизациюСБД.МодульКоманды(61)}: Ошибка при вызове метода контекста (НачатьЗапись): Недопустимое значение параметра (параметр номер '2')
   Не кассир
 
5 - 05.07.18 - 08:27
(4) Какие буквы не понятны?
   solbadguy
 
6 - 05.07.18 - 08:27
Узел = ПланыОбмена.МобильныйОбмен.НайтиПоКоду("ЦБ");
ЗаписьСообщения.НачатьЗапись(ЗаписьХМЛ, Узел);
 

вот этот кусок неправильный. Ещё заметил что в обратную сторону обмен тож идёт, однако работает только со справочниками у которых стандартные реквизиты.  Алсо создаёт автоматом код ЦБ0001, ЦБ0002, ...
   Не кассир
 
7 - 05.07.18 - 08:29
(6) И?
   solbadguy
 
8 - 05.07.18 - 08:29
Пробовал добавил ещё 1 переменную, найти покоду МУ (мобильноеустройство) и в плане обмена 2 кода прописать. Не работает вообщем.   Признаюсь делал не сам - стоит задача, цепляю из сети. Однако с десяток примеров уже разобрал, каждый раз доходит до этой ошибки - дальше не могу сдвинуться.

Вот нервы сдали - зарегистрировался.
   Не кассир
 
9 - 05.07.18 - 08:30
(8) Поздравить с регистрацией?
   butterbean
 
10 - 05.07.18 - 08:31
(8) отладчиком пользоваться умеешь? посмотри что у тебя во втором параметре (Узел). Скорее всего там ничего, т.к. по коду ничего не найдено
 
 Рекламное место пустует
   Не кассир
 
11 - 05.07.18 - 08:31
(10) зачем интригу ломаешь?
   solbadguy
 
12 - 05.07.18 - 08:37
(10) Точно - пусто. А как бы так назначить параметр если код автоматически ставится ЦБ0000001, ЦБ0000002 (точный регистр сейчас указал, не повторение)
И заметил ещё что повторяются значения, т.е он не добавляет новое при выгрузке ИЗ мобильного устройства, а просто создаёт позицию с этим же кодом и неважно что он уже существует
   solbadguy
 
13 - 05.07.18 - 08:38
т.е как я понимаю он берёт моё "ЦБ" и добавляет н-ное кол-ви нулей, но понимания это не особо даёт
   Не кассир
 
14 - 05.07.18 - 08:38
(12) Ты перечитай, что написал. И учись четко формулировать.
   solbadguy
 
15 - 05.07.18 - 08:48
не догоняю, ну никак. Посоветуйте где почитать хотя бы если вам всё ясно
   Не кассир
 
16 - 05.07.18 - 08:49
(15) Читай где угодно, разницы нет. А вот , что ты хочешь почитать?
   1Сергей
 
17 - 05.07.18 - 08:59
Смотри планы обмена
   solbadguy
 
18 - 06.07.18 - 04:24
разобрался, кнопка на платформе-сервере с этим кодом и не должна работать. Другой вопрос, существует ли похожая процедура - "При открытии мобильного клиента" ?
Хочу реализовать обновление не с нажатия кнопки в клиенте, а при открытии, в этихвашихинтернетах не нашёл полезной информации.
Была идея создать константу, не включать ее в план обмена, и построить условие в модуле конфигурации, обратиться к общей команде. Однако пишут что программно к общей команде не получится обратиться
   Не кассир
 
19 - 06.07.18 - 05:47
(18) Можно попробовать еще поучиться прежде чем писать.
   solbadguy
 
20 - 06.07.18 - 06:23
(19) Спасибо Кэп!  

А если серьёзно, неужели никто не сталкивался?

Список тем форума
Рекламное место пустует  Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует