О нюансах работы в 1С с ЗначениеВРеквизитФормы и ошибке Недопустимое значение параметра (параметр номер ‘2’).
ЗначениеВРеквизитФормы выполняется на сервере. Разработчики платформы автоматизировали процесс передачи данных на клиент — вручную на клиенте присваивать значение полю не нужно.
Проще всего выгрузить результат выполнения запроса с вариантом обхода по группировкам. Тогда на выходе будет ДеревоЗначений и тип данных совпадет с тем, что установлен в табличном поле по-умолчанию. Однако, если табличное поле базируется на ТаблицаЗначений — обход по группировкам в выгрузке не нужен.
Если что-то не так — получите ошибку Недопустимое значение параметра (параметр номер ‘2’).
Чтобы исправить ошибку «Недопустимое значение параметра (параметр номер ‘2’)» нужно проверить:
1. Тип данных реквизита на форме должен совпадать с типом данных который хотите присвоить реквизиту (ДеревоЗначений, ТаблицаЗначений).
Формирование ДеревоЗначений:
Запрос.Выполнить.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам)
Формирование ТаблицаЗначений:
Запрос.Выполнить.Выгрузить()
2. Количество и имена колонок в результате запроса должны совпадать с количеством и именами в табличном поле на форме.
3. Имя реквизита на форме должно совпадать с именем указанном в методе ЗначениеВРеквизитФормы и иметь тип Строка. Рекомендую копировать текст и вставлять в места где он должен совпадать.
Если ошибка сохраняется — перепроверьте все пункты в отладчике.
Чтобы научиться работать с методом ЗначениеВРеквизитФормы нужен определенный опыт. Со временем вы обязательно научитесь пользоваться им без ошибок.
Подскажите пожалуйста в чем проблема:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЗаполнитьТаблицуЗначений();
КонецПроцедуры
Процедура ЗаполнитьТаблицуЗначений()
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ДоговорыКонтрагентов.Контрагент КАК Контрагент,
| ДоговорыКонтрагентов.Партнер,
| СоглашенияСКлиентами.Ссылка КАК Соглашение,
| СоглашенияСКлиентами.ГрафикОплаты,
| ДоговорыКонтрагентов.Ссылка КАК Договор,
| ДоговорыКонтрагентов.ОграничиватьСуммуЗадолженности,
| ДоговорыКонтрагентов.ДопустимаяСуммаЗадолженности,
| ДоговорыКонтрагентов.ЗапрещаетсяПросроченнаяЗадолженность
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
| ПОЛНОЕ СОЕДИНЕНИЕ Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
| ПО ДоговорыКонтрагентов.Контрагент = СоглашенияСКлиентами.Контрагент
| И ДоговорыКонтрагентов.Партнер = СоглашенияСКлиентами.Партнер
|ГДЕ
| ВЫБОР
| КОГДА ДоговорыКонтрагентов.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| ИНАЧЕ ДоговорыКонтрагентов.ПометкаУдаления <> ИСТИНА
| И ДоговорыКонтрагентов.ТипДоговора = ЗНАЧЕНИЕ(Перечисление.ТипыДоговоров.СПокупателем)
| КОНЕЦ
| И ВЫБОР
| КОГДА СоглашенияСКлиентами.Ссылка ЕСТЬ NULL
| ТОГДА ИСТИНА
| ИНАЧЕ СоглашенияСКлиентами.ПометкаУдаления <> ИСТИНА
| И СоглашенияСКлиентами.Типовое = ЛОЖЬ
| КОНЕЦ
|ИТОГИ ПО
| Контрагент»;
ЗначениеВРеквизитФормы(Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам), «СписокДоговоров»);
КонецПроцедуры
Ругается на строку:
ЗначениеВРеквизитФормы(Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам), «СписокДоговоров»);
Недопустимое значение параметра (параметр номер ‘2’)
ЗначениеВРеквизитФормы. Ошибка «Недопустимое значение параметра (параметр номер ‘2’)»
Ошибка возникла при преобразовании дерева значений в соответствующий реквизит формы. ДеревоЗначений создавалось запросом и его методом
Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией)
Реквизит формы также имеет тип (ДеревоЗначений) — соответственно Типы совпадают. Причиной оказалось несоответствие колонок ДереваЗначений и реквизита на форме. Их количество и имена должны совпадать.
Недостаточно прав для комментирования
Подскажите, пожалуйста. Создаю программно реквизит формы. В отладчике вижу, что у «ЭтаФорма» реквизит есть. Хочу изменить значение этого реквизита, используя ЗначениеВРеквизитФормы, но получаю ошибку «Недопустимое значение параметра (параметр номер ‘2’)». Во втором параметре написано имя реквизита, оно имеет тип «Строка» и полностью совпадает с именем добавленного реквизита. Почему может не работать? ЗЫ: РеквизитФормыВЗначение тоже не работает с аналогичной ошибкой, хотя по отладчику реквизит есть. На форму реквизит добавляется корректно. Вопрос только в том, как у него программно поменять данные? Это динамические данные, которые должны доставаться из отдельного РС и на форме отображаться только текущее значение. ЗЗЫ: В сами метаданные в конфигурации реквизит не добавлен.
В отладке у ЭтаФорма посмотри как называется реквищит
правильно называется =) Я же программно реквизит задаю. Название лежит в одной неизменной переменной, которая используется и при программном добавлении реквизита на форму, и при указании второго параметра в ЗначениеВРеквизитФормы. Тут ошибки нет.
Неужели никто подобное не делал? Я знаю, что можно добавить реквизит в объект конфигурации и программно обращаться просто через «Объект». Но ведь тогда у меня в объекте будут храниться ненужные данные, которые там храниться, по сути, и не должны, т.к. эти данные не статические, а вычисляемые. Как мне получить желаемый результат? Может есть другой способ и я просто пошел не тем путем?
А знаете что, дамы и господа? Я не разобрался почему не работает ЗначениеВРеквизитФормы и обратно, но моя проблема решилась элементарным: Разумеется, тут я явно присваиваю значение, а не динамически получаю результат, но это уже дело десятое. Самое главное я получил: присвоенное значение корректно отображается на форме и не вызывает ошибок при установки значения.
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
ЗначениеВРеквизитФормы
0 — 22.09.2017 — 10:55 |
Платформа8.3.10.2466 В модуле управляемой формы документа пишу: &НаСервере Процедура ПолучитьНаСервере() ТЗ = РеквизитФормыВЗначение(«Объект.Выход»); ЗначениеВРеквизитФормы(ТЗ,»Объект.Выход»); КонецПроцедуры Объект.Выход — табличная часть документа.
При выполнении
Не понимаю, в чем ошибка?
|
|
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 | ||
|
Общий модуль «РаботаСоСправочниками»
1C | ||
|
Документ ЗаказНаряд , процедура которая отвечает за то, чтобы он выводил цену указанное в регистре сведений
1C | ||
|