Меню

Ошибка при вызове метода контекста начатьзапись недопустимое значение параметра параметр номер 2

   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) Спасибо Кэп!  

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

О нюансах работы в 1С с ЗначениеВРеквизитФормы и ошибке Недопустимое значение параметра (параметр номер ‘2’).

ЗначениеВРеквизитФормы выполняется на сервере. Разработчики платформы автоматизировали процесс передачи данных на клиент — вручную на клиенте присваивать значение полю не нужно.

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

Если что-то не так — получите ошибку Недопустимое значение параметра (параметр номер ‘2’).

Чтобы исправить ошибку «Недопустимое значение параметра (параметр номер ‘2’)» нужно проверить:

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

Формирование ДеревоЗначений:

Запрос.Выполнить.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам)

Формирование ТаблицаЗначений:

Запрос.Выполнить.Выгрузить()

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

3. Имя реквизита на форме должно совпадать с именем указанном в методе ЗначениеВРеквизитФормы и иметь тип Строка. Рекомендую копировать текст и вставлять в места где он должен совпадать.

Если ошибка сохраняется — перепроверьте все пункты в отладчике.

Чтобы научиться работать с методом ЗначениеВРеквизитФормы нужен определенный опыт. Со временем вы обязательно научитесь пользоваться им без ошибок.

Здравствуйте!
1С:Предприятие 8.3 (8.3.15.1656)Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.73.38)
Заполняла зарплатный проект и лицевые счета сотрудников. После этого перестал открываться один сотрудник с ошибкой Недопустимое значение параметр № 2. Тех поддержка с официального сайта просит прислать информационную базу. Директор категорически против. Как исправить эту ошибку?

г. Московская область6 221 балл

Сложно удалённо диагностировать
1) Сравните данные с другим сотрудником (например с помощью универсального отчёта).
чем введённые данные по этому сотруднику отличаются о других ?
2) Попробуйте посмотреть журнал регистрации 1С — может так есть расширенная подсказка
3) Пригласите программиста очно

Заполнить и подать уведомление об исчисленных суммах налогов и взносов

Цитата (ОльгаVl):1С:Предприятие 8.3 (8.3.15.1656)

Попробуйте запустить программу под предыдущей платформой.

Kamushek, спасибо, как это сделать?

В окне выбора базы выбираете базу.
Далее нажимаете кнопку «Изменить» и «Далее».
В строке версия 1С Предприятие указываете номер версии платформы которой хотите открыть базу. По умолчанию там должно стоять «8.3», что означает последняя установленная версия платформы.

Заполняйте платежки с актуальными на сегодня КБК, кодами дохода и другими обязательными реквизитами

В окне запуска явно прописать предыдущий ехе-ник.
Установленные ехе-ники можно посмотреть в Панели управления — Программы и компоненты — какие у вас есть?

Kamushek,

Kamushek, я прописала в окне запуска предыдущую версию, попробовала даже не одну. Ничего не помогло. Удалила и создала заново базу в окне запуска. Эффекта тоже ноль.
Далее запустила отладчик в конфигураторе, попробовала снова открыть сотрудника и появилась вот такая развернутая ошибка

Помогите пожалуйста заставить работать документ «Приходная накладная» с подхватом цен из регистра сведений «ЦеныТоваровВПрайсеПоставщика». Ссылка на базу: Буду невероятно благодарен тем, кто поможет исправить ошибку. Уже несколько дней парюсь с этим документом, вечно что-то не так, а сдавать уже совсем скоро. help *crying*.

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

{ОбщийМодуль.РаботаСоСправочниками.Модуль}: Ошибка при вызове метода контекста (ПолучитьПоследнее)          ЗначенияРесурсов = РегистрыСведений.ЦеныТоваровВПрайсеПоставщика.ПолучитьПоследнее(АктуальнаяДата, Отбор); по причине: Недопустимое значение параметра (параметр номер ‘2’) Недопустимое значение параметра (параметр номер ‘2’)

а теперь покажи как отбор формируется

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

что такое ЭлементПрайсыПоставщиков?

и структуру регистра сведений покажи

Вангую. Или измерение не «Цена» называется, или оно там не одно.

Точно там измерения «Цена» нет, судя по возвращаемому значению функции.

это справочник, из которого я выбираю товар, а к нему, из регистра сведений должна подставляться цена. это все происходит в документе «приходная накладная» и еще сумма должна считаться. структура регистра ЦеныТоваровВПрайсеПоставщика:

Тогда нафига отбор по цене делать пытаетесь? Синтаксис-помощник кто-то там у вас читать умеет?

исправил на «Товар», запускаю конфигурацию, документ, выбираю товар, и на моменте когда по сути должна подставляться цена из регистра вылетает ошибка «Ошибка отображения типов: Отсутствует отображение для типа ‘ДанныеФормыЭлементКоллекции’ Если подробно, то: {Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма}: Ошибка при вызове метода контекста (РассчитатьСумму)     РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); по причине: Ошибка при вызове серверного метода. по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных XDTO: Запись значения свойства ‘param’:     форма: Элемент     имя: { по причине: Ошибка отображения типов: Отсутствует отображение для типа ‘ДанныеФормыЭлементКоллекции’

покажи модуль РаботаСДокументами.РассчитатьСумму

ссылку кинул авторизованную. Вы хоть немного отражайте, что кидаете 🙂 Требуется разрешение Хотите просмотреть файл? Свяжитесь с его владельцем или войдите в аккаунт с правом доступа. Подробнее… А оно мне надо? 🙂

Попробуй понять, Что есть сервер, и что есть Клиент 🙂 Какие данные можно передать на сервер и Клиенту. Запусти отладчик, он вам подскажет 🙂

Да ТС не понимает, почему нельзя просто так работать с реквизитами формы на сервере 🙂

в том то и дело, надо ж подсказать ))

мы тут уже учительницу нагнули я так понял ))

Всё, спасибо всем, особенно ЧеловекуДуши и GROOVY. Да, причина была в том что «цена» вместо «товар» и общий модуль «РаботаСДокументами» стоял на сервере. Храни вас 1c:бог 🙂

Тэги: 1С 8

Комментарии доступны только авторизированным пользователям

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

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