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

Перейти к контенту

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реквизиты управляемых форм

Автор mindruk, 08 авг 2013, 11:49

0 Пользователей и 1 гость просматривают эту тему.

День добрый.

При создании внешнего отчета возник вопрос о выводе результата на форму.

На форме есть реквизит ТабДок типа Табличный документ.

Я его передаю как параметр  в функцию выполняемую на Сервере и заполняю данными.

Если в конце функции возвращаю ТабДок тогда могу вывести в отдельном окне — а нужно вывести на форме.

Пытался использовать ЗначениеВДанныеФормы(ТабДок,Объект.ТабДок);  :dfbsdfbsdf:

Типы совпадают — Табличный документ, но выскакивает ошибка несоответствие параметра №1  :dfbsdfbsdf:

Подскажите где я ошибаюсь — и вообще Табличный документ можно преобразовывать в реквизит?


Используйте ЗначениеВРеквизитФормы() и уберите ТабДок из объекта, не место ему там.


Убрать ТабДок из объекта — значит убрать реквизит?
И не могу нигде найти как мне правильно вывести ТабличныйДокумент созданный программно на форму.
В отдельном окне получается а на форму не очень…
Помогите разобраться пожалуйста…
Листинг примерно такой
& На Сервере кусок
        ТаблДок = Новый ТабличныйДокумент;
   ТаблДок.Очистить();
   Макет = РеквизитФормыВЗначение(«Объект»).ПолучитьМакет(«Макет»);
   Шп = Макет.ПолучитьОбласть(«Шапка»);
   Шп.параметры.ДатаОтчета = Формат(ДатаОтчета,»ДЛФ=DD»);
   ТаблДок.Вывести(Шп);
   Заг = Макет.ПолучитьОбласть(«Заголовок|Начало»);
   Кол =  Макет.ПолучитьОбласть(«Заголовок|Колонка1»);
   СтрокаВыводаНачало = Макет.ПолучитьОбласть(«Строка|Начало»);
   СтрокаВыводаКол =  Макет.ПолучитьОбласть(«Строка|Колонка1»);
   ПТР = Макет.ПолучитьОбласть(«ПустаяСтрока|Начало»);
   ПТРК = Макет.ПолучитьОбласть(«ПустаяСтрока|Колонка1»);
   выполняю кучу действий и в итоге получаю свой документ

если я делаю Возврат(ТаблДок) — тогда на &Клиенте я могу его вывести — но в отдельном окне,а мне надо на форму

я понимаю что надо использовать ЗначениеВРеквизитФормы() но если пишу
ЗначениеВРеквизитФормы(ТаблДок,ТабДок) получается плохо — несоответствие параметра1
ТаблДок — тип Табличный документ — создаю и заполняю сам
ТабДок — тип табличный документ — реквизит на форме

:dfbbdrfb::dfbbdrfb::dfbbdrfb:


вместо ЗначениеВРеквизитФормы(ТаблДок,ТабДок)

нужно писать

ЗначениеВРеквизитФормы(ТаблДок,»ТабДок»)


{Форма.Форма.Форма(374)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)
   ЗначениеВРеквизитФормы(ТаблДок,»ТабДок»);
по причине:
Недопустимое значение параметра (параметр номер ‘2’)

Час от часу не легче?!


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


Вай, шайтаномо насальнико…:o

ОГРОМНОЕ СПАСИБО :zebzdr:


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Реквизиты управляемых форм

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Ошибка возникла при преобразовании дерева значений в соответствующий реквизит формы. ДеревоЗначений создавалось запросом и его методом 

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

Реквизит формы также имеет тип (ДеревоЗначений) — соответственно Типы совпадают. Причиной оказалось несоответствие колонок ДереваЗначений и реквизита на форме. Их количество и имена должны совпадать.

Недостаточно прав для комментирования

Всем привет. Не могу понять почему не работает простой код: //Модуль формы &НаСервере Ошибка: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)     ЗначениеВРеквизитФормы(Справочники.ТехнологииПеределов.Маршруты,»Маршрут»); по причине: Недопустимое значение параметра (параметр номер ‘2’) При этом реквизиты формы «Маршрут» и «Нестандарт» являются действительно реквизитами формы а не объекта. Что не так? Спасибо!

И тип реквизитов «СправочникСсылка.ТехнологииПеределов»

Маршрут и Нестандарт — предопределенные.

ЗначениеВРеквизитФормы(Справочники.ТехнологииПеределов.Маршруты.ПолучитьОбъект,»Маршрут»);

Не, ошибка. Причем с параметром №1 вроде всё нормально, что то с параметром 2.

а почему не просто равно?

«ПРИМЕЧАНИЕ. В качестве первого параметра методов РеквизитФормыВЗначение и ДанныеФормыВЗначение могут выступать только реквизиты формы следующих типов: ДанныеФормыСтруктура, ДанныеФормыКоллекция, ДанныеФормыСтруктураСКоллекцией, ДанныеФормыДерево.» Как я понимаю, верно и обратное.

Равно прокатило. Спасибо. Сам себе придумал проблему.

Тэги:

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

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Rambler's Top100

Поиск

Ошибка возникла при преобразовании дерева значений в соответствующий реквизит формы. ДеревоЗначений создавалось запросом и его методом 

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

Реквизит формы также имеет тип (ДеревоЗначений) — соответственно Типы совпадают. Причиной оказалось несоответствие колонок ДереваЗначений и реквизита на форме. Их количество и имена должны совпадать.

Недостаточно прав для комментирования

Всем привет. Не могу понять почему не работает простой код: //Модуль формы &НаСервере Ошибка: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)     ЗначениеВРеквизитФормы(Справочники.ТехнологииПеределов.Маршруты,»Маршрут»); по причине: Недопустимое значение параметра (параметр номер ‘2’) При этом реквизиты формы «Маршрут» и «Нестандарт» являются действительно реквизитами формы а не объекта. Что не так? Спасибо!

И тип реквизитов «СправочникСсылка.ТехнологииПеределов»

Маршрут и Нестандарт — предопределенные.

ЗначениеВРеквизитФормы(Справочники.ТехнологииПеределов.Маршруты.ПолучитьОбъект,»Маршрут»);

Не, ошибка. Причем с параметром №1 вроде всё нормально, что то с параметром 2.

а почему не просто равно?

«ПРИМЕЧАНИЕ. В качестве первого параметра методов РеквизитФормыВЗначение и ДанныеФормыВЗначение могут выступать только реквизиты формы следующих типов: ДанныеФормыСтруктура, ДанныеФормыКоллекция, ДанныеФормыСтруктураСКоллекцией, ДанныеФормыДерево.» Как я понимаю, верно и обратное.

Равно прокатило. Спасибо. Сам себе придумал проблему.

Тэги:

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

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Ukubaeva

Дата регистрации: 26.05.2010
Сообщений: 111

Добрый день!
1С:Предприятие 8.2 (8.2.17.169)
У меня возникла такая проблема!
В модуле управляемой формы клиент обращается к серверу, сервер через com соединение подключается к другой базе, получает результаты запроса из этой базы и передает их через реквизит формы клиенту.
Код:
&НаСервере
Процедура ПолучениеСотрудника()
ПодключениеКБазе(DataSource);
ЗапросСотруд = DataSource.NewObject(«Запрос» ;) ;
ЗапросСотруд.Текст = «ВЫБРАТЬ
|      СотрудникиОрганизаций.Ссылка
|ИЗ
|      Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
|ГДЕ
|      СотрудникиОрганизаций.Физлицо = &Физлицо
|      И СотрудникиОрганизаций.Организация = &Организация»;
ЗапросСотруд.УстановитьПараметр(«Физлицо»,ТекФизЛи цо);
ЗапросСотруд.УстановитьПараметр(«Организация»,Data Source.Справочники.Организации.НайтиПоКоду(«000000 002» ;) );
//      ТЗВыгрСотр = РеквизитФормыВЗначение(«ВыгрСотр» ;) ;
ТЗВыгрСотр = Новый ТаблицаЗначений;
ТЗВыгрСотр = ЗапросСотруд.Выполнить().Выгрузить();
сообщить(ТипЗнч(ТЗВыгрСотр));
ЗначениеВРеквизитФормы(ТЗВыгрСотр,»ВыгрСотр» ;) ;
КонецПроцедуры

Но, при выполнении кода происходит ошибка Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)
ЗначениеВРеквизитФормы(ТЗВыгрСотр,»ВыгрСотр» ;) ;
по причине:
Недопустимое значение параметра (параметр номер ‘2’)

Получаю тип значения результата запроса — тип comобъект!
Как же мне получить в качестве результата запроса ТаблицуЗначений?
Спасибо!!!

Ukubaeva

Дата регистрации: 26.05.2010
Сообщений: 111

а, все, нашла, нужно передать в строку, а потом назад

Показывать по
10
20
40
сообщений

Источник

нРеквизиты = Новый Массив;

нРеквизиты.Добавить(Новый РеквизитФормы(«Категория», Новый ОписаниеТипов(«Булево»), , «Категория», Истина));

ИмяЭлемента = «КатегорияВИП»;

НовыйЭлемент = Элементы.Найти(ИмяЭлемента);

Если НовыйЭлемент = Неопределено Тогда

    НовыйЭлемент = Элементы.Добавить(ИмяЭлемента, Тип(«ПолеФормы»), ГруппаФормы);

    НовыйЭлемент.ПутьКДанным = «Категория»;

    НовыйЭлемент.ТолькоПросмотр = Истина;

КонецЕсли;

ЗначениеВРеквизитФормы(Истина, «Категория»);

//ОШИБКА:

//Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)

//    ЗначениеВРеквизитФормы(Истина, «Категория»);

//по причине:

//Недопустимое значение параметра (параметр номер ‘2’)

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

Ошибка возникла при преобразовании дерева значений в соответствующий реквизит формы. ДеревоЗначений создавалось запросом и его методом 

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

Реквизит формы также имеет тип (ДеревоЗначений) — соответственно Типы совпадают. Причиной оказалось несоответствие колонок ДереваЗначений и реквизита на форме. Их количество и имена должны совпадать.

Недостаточно прав для комментирования

Источник

Всем привет. Не могу понять почему не работает простой код: //Модуль формы &НаСервере Ошибка: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)     ЗначениеВРеквизитФормы(Справочники.ТехнологииПеределов.Маршруты,»Маршрут»); по причине: Недопустимое значение параметра (параметр номер ‘2’) При этом реквизиты формы «Маршрут» и «Нестандарт» являются действительно реквизитами формы а не объекта. Что не так? Спасибо!

И тип реквизитов «СправочникСсылка.ТехнологииПеределов»

Маршрут и Нестандарт — предопределенные.

ЗначениеВРеквизитФормы(Справочники.ТехнологииПеределов.Маршруты.ПолучитьОбъект,»Маршрут»);

Не, ошибка. Причем с параметром №1 вроде всё нормально, что то с параметром 2.

а почему не просто равно?

«ПРИМЕЧАНИЕ. В качестве первого параметра методов РеквизитФормыВЗначение и ДанныеФормыВЗначение могут выступать только реквизиты формы следующих типов: ДанныеФормыСтруктура, ДанныеФормыКоллекция, ДанныеФормыСтруктураСКоллекцией, ДанныеФормыДерево.» Как я понимаю, верно и обратное.

Равно прокатило. Спасибо. Сам себе придумал проблему.

Тэги:

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

Источник

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста найтипокоду 1с
  • Ошибка при вызове метода контекста значениевреквизитформы дерево значений
  • Ошибка при вызове метода контекста значениевданныеформы
  • Ошибка при вызове метода контекста найтипоидентификатору
  • Ошибка при вызове метода контекста зафиксироватьтранзакцию