05.07.18 — 08:23
Здравствуйте уважаемые знатоки, проблема следующая —
Создаю конфигурацию, из которой будет цеплять данные мобильный клиент на мобильном устройстве соответственно. Добился того, что при нажатии на волшебную кнопку данные из мобильного устройства грузит в основную базу. Из центральной базы в мобильное устройство — нет.
В ступор встал конкретно, изейший вопрос по-любому. Видимо не хватает
Готовый код не прошу, прошу тыкнуть носом. Спасибо.
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(ЗаписьХМЛ, ОбъектОбмена);
КонецЦикла;
ЗаписьСообщения.ЗакончитьЗапись();
Возврат ЗаписьХМЛ.Закрыть();
КонецФункции
2 — 05.07.18 — 08:25
Пожалуйста, а в чем конкретно проблема-то?
3 — 05.07.18 — 08:26
(1) И?
4 — 05.07.18 — 08:26
{ОбщаяКоманда.ВыполнитьСинхронизациюСБД.МодульКоманды(61)}: Ошибка при вызове метода контекста (НачатьЗапись): Недопустимое значение параметра (параметр номер ‘2’)
5 — 05.07.18 — 08:27
(4) Какие буквы не понятны?
6 — 05.07.18 — 08:27
Узел = ПланыОбмена.МобильныйОбмен.НайтиПоКоду(«ЦБ»);
ЗаписьСообщения.НачатьЗапись(ЗаписьХМЛ, Узел);
вот этот кусок неправильный. Ещё заметил что в обратную сторону обмен тож идёт, однако работает только со справочниками у которых стандартные реквизиты. Алсо создаёт автоматом код ЦБ0001, ЦБ0002, …
7 — 05.07.18 — 08:29
(6) И?
8 — 05.07.18 — 08:29
Пробовал добавил ещё 1 переменную, найти покоду МУ (мобильноеустройство) и в плане обмена 2 кода прописать. Не работает вообщем. Признаюсь делал не сам — стоит задача, цепляю из сети. Однако с десяток примеров уже разобрал, каждый раз доходит до этой ошибки — дальше не могу сдвинуться.
Вот нервы сдали — зарегистрировался.
9 — 05.07.18 — 08:30
(8) Поздравить с регистрацией?
10 — 05.07.18 — 08:31
(8) отладчиком пользоваться умеешь? посмотри что у тебя во втором параметре (Узел). Скорее всего там ничего, т.к. по коду ничего не найдено
11 — 05.07.18 — 08:31
(10) зачем интригу ломаешь?
12 — 05.07.18 — 08:37
(10) Точно — пусто. А как бы так назначить параметр если код автоматически ставится ЦБ0000001, ЦБ0000002 (точный регистр сейчас указал, не повторение)
И заметил ещё что повторяются значения, т.е он не добавляет новое при выгрузке ИЗ мобильного устройства, а просто создаёт позицию с этим же кодом и неважно что он уже существует
13 — 05.07.18 — 08:38
т.е как я понимаю он берёт моё «ЦБ» и добавляет н-ное кол-ви нулей, но понимания это не особо даёт
14 — 05.07.18 — 08:38
(12) Ты перечитай, что написал. И учись четко формулировать.
15 — 05.07.18 — 08:48
не догоняю, ну никак. Посоветуйте где почитать хотя бы если вам всё ясно
16 — 05.07.18 — 08:49
(15) Читай где угодно, разницы нет. А вот , что ты хочешь почитать?
17 — 05.07.18 — 08:59
Смотри планы обмена
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
Комментарии доступны только авторизированным пользователям