1с значение в реквизит формы недопустимое значение параметра параметр номер 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Подскажите пожалуйста в чем проблема:

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    
    ЗаполнитьТаблицуЗначений();

    
КонецПроцедуры

Процедура ЗаполнитьТаблицуЗначений()

    
    Запрос = Новый Запрос;

    Запрос.Текст =

    «ВЫБРАТЬ

    |    ДоговорыКонтрагентов.Контрагент КАК Контрагент,

    |    ДоговорыКонтрагентов.Партнер,

    |    СоглашенияСКлиентами.Ссылка КАК Соглашение,

    |    СоглашенияСКлиентами.ГрафикОплаты,

    |    ДоговорыКонтрагентов.Ссылка КАК Договор,

    |    ДоговорыКонтрагентов.ОграничиватьСуммуЗадолженности,

    |    ДоговорыКонтрагентов.ДопустимаяСуммаЗадолженности,

    |    ДоговорыКонтрагентов.ЗапрещаетсяПросроченнаяЗадолженность

    |ИЗ

    |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов

    |        ПОЛНОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами

    |        ПО ДоговорыКонтрагентов.Контрагент = СоглашенияСКлиентами.Контрагент

    |            И ДоговорыКонтрагентов.Партнер = СоглашенияСКлиентами.Партнер

    |ГДЕ

    |    ВЫБОР

    |            КОГДА ДоговорыКонтрагентов.Ссылка ЕСТЬ NULL

    |                ТОГДА ИСТИНА

    |            ИНАЧЕ ДоговорыКонтрагентов.ПометкаУдаления <> ИСТИНА

    |                    И ДоговорыКонтрагентов.ТипДоговора = ЗНАЧЕНИЕ(Перечисление.ТипыДоговоров.СПокупателем)

    |        КОНЕЦ

    |    И ВЫБОР

    |            КОГДА СоглашенияСКлиентами.Ссылка ЕСТЬ NULL

    |                ТОГДА ИСТИНА

    |            ИНАЧЕ СоглашенияСКлиентами.ПометкаУдаления <> ИСТИНА

    |                    И СоглашенияСКлиентами.Типовое = ЛОЖЬ

    |        КОНЕЦ

    |ИТОГИ ПО

    |    Контрагент»;

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

    
КонецПроцедуры

Ругается на строку:

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

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

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

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

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

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

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

Подскажите, пожалуйста. Создаю программно реквизит формы. В отладчике вижу, что у «ЭтаФорма» реквизит есть. Хочу изменить значение этого реквизита, используя ЗначениеВРеквизитФормы, но получаю ошибку «Недопустимое значение параметра (параметр номер ‘2’)». Во втором параметре написано имя реквизита, оно имеет тип «Строка» и полностью совпадает с именем добавленного реквизита. Почему может не работать? ЗЫ: РеквизитФормыВЗначение тоже не работает с аналогичной ошибкой, хотя по отладчику реквизит есть. На форму реквизит добавляется корректно. Вопрос только в том, как у него программно поменять данные? Это динамические данные, которые должны доставаться из отдельного РС и на форме отображаться только текущее значение. ЗЗЫ: В сами метаданные в конфигурации реквизит не добавлен.

В отладке у ЭтаФорма посмотри как называется реквищит

правильно называется =) Я же программно реквизит задаю. Название лежит в одной неизменной переменной, которая используется и при программном добавлении реквизита на форму, и при указании второго параметра в ЗначениеВРеквизитФормы. Тут ошибки нет.

Неужели никто подобное не делал? Я знаю, что можно добавить реквизит в объект конфигурации и программно обращаться просто через «Объект». Но ведь тогда у меня в объекте будут храниться ненужные данные, которые там храниться, по сути, и не должны, т.к. эти данные не статические, а вычисляемые. Как мне получить желаемый результат? Может есть другой способ и я просто пошел не тем путем?

А знаете что, дамы и господа? Я не разобрался почему не работает ЗначениеВРеквизитФормы и обратно, но моя проблема решилась элементарным: Разумеется, тут я явно присваиваю значение, а не динамически получаю результат, но это уже дело десятое. Самое главное я получил: присвоенное значение корректно отображается на форме и не вызывает ошибок при установки значения. ;)

Тэги: 1С 8

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

Рекомендовать в новости

ЗначениеВРеквизитФормы

0

22.09.2017 — 10:55


Платформа8.3.10.2466
В модуле управляемой формы документа пишу:
&НаСервере
Процедура ПолучитьНаСервере()
ТЗ = РеквизитФормыВЗначение(«Объект.Выход»);
ЗначениеВРеквизитФормы(ТЗ,»Объект.Выход»);
КонецПроцедуры

Объект.Выход — табличная часть документа.

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

Не понимаю, в чем ошибка?
Подскажите, пожалуйста.

1

22.09.2017 — 12:49

В недопустимом значении параметра. Что не ясно?

P.S. Открываем СП, и смотрим описание функций.

2

22.09.2017 — 13:08

Совет: Чтобы не гадать по значениям, восполйзуйтес маленькой функцией
&НаКлиентеНаСервереБезКонтекста
Функция ТипЗнчСтр(МойОбъект) Экспорт
Возврат Строка(ТипЗнч(МойОбъект))
КонецФункции

Например, так:
ТЗ = РеквизитФормыВЗначение(«Объект.Выход»);
Сообщить(«ТЗ у нас есть «+ТипЗнчСтр)ТЗ));

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

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

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

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

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

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

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

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

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

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

Kamushek,

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

Создал регистр сведений «Цены» чтобы управлять ценами через него.
Изменяю цены, потом захожу в Заказ-Наряд , создаю его с той услугой которой поставил цены , но он выдает ошибку!
Помогите пожалуйста, не могу понять где проблема

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

Общий модуль «РаботаСоСправочниками»

1C
1
2
3
4
5
6
7
Функция РозничнаяЦена(АктуальнаяДата, ЭлементРаботы) Экспорт 
// Создать вспомогательный объект Отбор 
Отбор = Новый Структура("ПроводимыеАвтоработы", ЭлементРаботы); 
// Получить актуальные значения ресурсов регистра 
ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор); 
Возврат ЗначенияРесурсов.Цена; 
КонецФункции

Документ ЗаказНаряд , процедура которая отвечает за то, чтобы он выводил цену указанное в регистре сведений

1C
1
2
3
4
5
6
7
8
9
Процедура РаботыРаботаПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    СтрокаТабличнойЧасти=Элементы.Работы.ТекущиеДанные; 
// Установить цену 
СтрокаТабличнойЧасти.Цена=РаботаСоСправочниками.РозничнаяЦена(Объект.Дата,СтрокаТабличнойЧасти.Работа); 
// Пересчитать сумму строки 
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); 
 
КонецПроцедуры

Понравилась статья? Поделить с друзьями:
  • 7727270299 реквизиты для оплаты госпошлины за регистрацию права собственности
  • 8 класс итоговая контрольная работа по курсу история нового времени 1800 1900
  • Basic которые производятся шведской компанией electrolux линейку котлов basic
  • Battlefield 1 да вы не подключены к сети сыграйте в компанию решение проблемы
  • He to run the company with his brother он управляет компанией со своим братом