Неверный второй параметр реквизиты в функции общего назначения значения реквизитов объекта

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

Перейти в раздел примеры кода 1С 8.3:

1С 8.3 БСП ЗначениеРеквизитаОбъекта. Возвращает значения реквизита, прочитанного из информационной базы по ссылке на объект. Рекомендуется использовать вместо обращения к реквизитам объекта через точку от ссылки на объект для быстрого чтения отдельных реквизитов объекта из базы данных. Функция доступна только на сервере, но если нужно получить реквизит на клиенте, то я ищу модуль ВызовCервера, например, в БП 3.0 это ОбменСКонтрагентамиСлужебныйВызовСервера.ЗначениеРеквизитаОбъекта/

Примера кода от rayastar

&НаКлиенте
Процедура ЗначениеРеквизитаОбъекта(Команда)

   // Использование на клиенте.
   СтранаПроисхождения = ОбщегоНазначенияРТВызовСервера.ЗначениеРеквизитаОбъекта(Номенклатура,«СтранаПроисхождения»);

   // Использование на сервере
   СтранаПроисхождения = СтранаПроисхождения();

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

&НаСервере
Функция СтранаПроисхождения()

   Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Номенклатура, «СтранаПроисхождения»);

КонецФункции

// Автор библиотеки: ООО «1С-Софт». Все права защищены © 2021

// Типовая конфигурация Библиотека стандартных подсистем (далее — БСП)
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode

Функция БСП

Функция ЗначениеРеквизитаОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные = Ложь) Экспорт

   Если ПустаяСтрока(ИмяРеквизита) Тогда
       ВызватьИсключение
           НСтр(«ru = ‘Неверный второй параметр ИмяРеквизита в функции ОбщегоНазначения.ЗначениеРеквизитаОбъекта:
                    |- Имя реквизита должно быть заполнено'»);
   КонецЕсли;

   Результат = ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные);
   Возврат Результат[СтрЗаменить(ИмяРеквизита, «.», «»)];

КонецФункции

// Автор библиотеки: ООО «1С-Софт». Все права защищены © 2021

// Типовая конфигурация Библиотека стандартных подсистем (далее — БСП)
// Код БСП распространяется по лицензии Attribution 4.0 International (CC BY 4.0):
// ссылка на лицензию: https://creativecommons.org/licenses/by/4.0/legalcode

Функция на клиенте

ОбщегоНазначенияУТВызовСервера.ЗначенияРеквизитовОбъекта(Ссылка, ИмяРеквизита, ВыбратьРазрешенные);

Copyright©, «Программист 1С в г.Минске», 07.06.2021

Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник

Типовая функция, непосредственно из модуля заполнения факсимиле в печатных формах

// Возвращает двоичные данные картинки присоединенного файла факсимиле к физическому лицу

//

// Параметры:

//  ФизическоеЛицо — Ссылка на физическое лицо, к которой присоединена картинка

Функция ДвоичныеДанныеФаксимилеФизическогоЛица(ФизическоеЛицо) Экспорт

    
    ДвоичныеДанныеКартинки = Неопределено;

    
    Если ЗначениеЗаполнено(ФизическоеЛицо) Тогда

        
        ПрисоединенныйФайл = ПрисоединенныйФайлФаксимилеФизическогоЛица(ФизическоеЛицо);

        Если ЗначениеЗаполнено(ПрисоединенныйФайл) Тогда

            ДанныеКартинки = РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл);

            ДвоичныеДанныеКартинки = ПолучитьИзВременногоХранилища(ДанныеКартинки.СсылкаНаДвоичныеДанныеФайла);

        КонецЕсли;

        
    КонецЕсли;

    
    Возврат ДвоичныеДанныеКартинки;

    
КонецФункции

2. Потом запустите 1С и проверьте — ушла ли ошибка.

Если нет, выполните Тестирование и исправление:
Тестирование и исправление базы 1С 8.3: какие галочки ставить

Это тоже важно, потому что в тестировании программа найдет и покажет «битые» ссылки.

То, что вы показали на скрине строчку останова — неинформативно. Раз уж вы работаете с кодом конфигурации, вам нужно остановиться выше на самом условии, где формируется развился по исполнению кода и посмотреть: как именно передается — и откуда! ссылка, которая анализируется в условии.

Вообще посмотреть в параметры процедуры, где ошибка формируется, узнать, откуда передаются на исполнение эти данные — из какой процедуры.
И так вы по цепочке дойдете до причины.

Обычно, программист просто встает на процедуру исполнения, например, кнопки Подбор и проходит в Отладчике все шаги до появления ошибки. Тогда у него все данные на руках.

Если у вас не доработанная конфигурация — ПОЛНОСТЬЮ типовая, если обновление выполнял тот же человек, что и обычно, то первое, что вы должны сделать — почистить кеши 1С.

Если конфигурация дорабатывалась — без Отладчика вам причину будет не узнать.

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

Новая тема

Ответить

Lubanya

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

«Здравствуйте! У меня такая проблема: Счет-фактура заполняется на основании какого-либо документа, и имеет 2 печатные формы. Одна форма распечатывается, а другая выдает ошибку:<br><br>СуммаДок = Док.Итог(«Всего»);<br>{Документ.СчетФактура.Форма.Модуль(104)}: Неверное имя реквизита!<br><br><br>Процедура НомерПП() <br> Док = ДокументОснование;<br> СтрПП = «»»»;<br> БухИт = СоздатьОбъект(«БухгалтерскиеИтоги»); <br> СуммаДок = Док.Итог(«Всего»); — — — — — — — — — — -104 строка <br> Док.Операция.ВыбратьПроводки();<br> Пока Док.Операция.ПолучитьПроводку()=1 Цикл<br> Если ((Док.Операция.Дебет.Счет = СчетПоКоду………<br><br>Изредка вылезала ошибка в 105 строке, но потом куда-то изчезла. <br>Я добавила н форму счета-фактуры новый реквизит СуммаДок — для проверки (строка), и как оказалось там где заполняется этот реквизит — проблем нет, все печатается, а там где нет — выдает выше сказаную ошибку. <br><br><br>Бухи говорят, что раньше все было нормально, все печаталось, а почему перестало, никто не знает. <br><br>Подскажите, пожалуйта, в каком документе неверное имя реквизита, и что вообще это значит?<br>Заранее всем большое спасибо!»

creative

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

если печатная форма вызывается не из встроенной таблицы а как внешняя, то проблема скорее всего именно в этом.<br>в один момент при обновлении конфигурации произошли изменения в алгоритмах вывода на печать. а внешняя форма работает по старому. обычно это происходит с печатными формами подключёнными не как mxl таблица а как внешняя обработка печати.<br><br>ничего страшного, исправляйте ручками.

Lubanya

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

Скорее всего она встроенная. Имеется отдельная закладка (слой)с таблицей. Видимо реквизит там не совпадает он называется «Всего» , а не «СуммаДок» или же он и идет (Док.Итог(«Всего»))?Я запуталась. Получается мне из таблицы тянуть надо или нет?

Денис (САМАРА)

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

Если говорить более конкретно, то в ДокументеОсновании нет такого реквизита «Всего», по которому можно посчитать итог. При печати из какого документа выдает ошибку?

Lubanya

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

Это был приходный кассовый ордер. :) Все проблема решена, я все нашла и поняла. Спасибо огромное!

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account

Open

lLepaza opened this issue

Apr 9, 2020

· 6 comments

Open

Ошибка при открытии вложенного файла

#196

lLepaza opened this issue

Apr 9, 2020

· 6 comments

Comments

@lLepaza

1.0.4.038
при попытке открытия из задачи вложенного файла выходит ошибка. Файл хранится в документе взаимодействия (документы входящее, исходящее электронное письмо), связанного с задачей

Неверный первый параметр Ссылка в функции ОбщегоНазначения.ЗначенияРеквизитовОбъекта:

  • Значение должно быть ссылкой или именем предопределенного элемента
    {ОбщийМодуль.ОбщегоНазначения.Модуль(173)}: НСтр(«ru = ‘Неверный первый параметр Ссылка в функции ОбщегоНазначения.ЗначенияРеквизитовОбъекта:
    {ОбщийМодуль.РаботаСФайламиСлужебныйВызовСервера.Модуль(424)}: ЕстьПраваНаОбъект = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлСсылка, «Ссылка», Истина);
    {ОбщаяФорма.узПрисоединенныеФайлыПисемПоЗадаче.Форма(316)}: ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ВыбраннаяСтрока,

image

@7OH

@BlizD

@lLepaza

после обновления: файлы, которые были вложены как файл в письмо — открываются без ошибки, но файлы (картинки), которые были вложены в текст письма — не открываются и выходит ошибка
image

image

в версии со старой БСП такие файлы открывались
И в старой версии, и в новой версиях — файлы из текста письма сохраняются без расширения

@7OH

До вложения в текст не пробовал — таким не пользуются. Гляну вечером

@7OH

Картинки в тексте письма — это просто двоичные данные, которые HTML может показывать.
К сожалению информации о том, какое расширение там было в тексте не хранится.
Потому и превью нет и ругается ( у меня на то, что нет расширения).
Возможно стОит попробовать модифицировать БСП, чтобы из письма без расширения было допустим JPG.

BlizD

added a commit
that referenced
this issue

Apr 11, 2020

@BlizD

@BlizD

Залил изменения от Семена.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Понравилась статья? Поделить с друзьями:

Другие крутые статьи на нашем сайте:

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

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