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

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 или кнопку "Обновить" в браузере.
Рекламное место пустует