Значение не является значением объектного типа (Метаданные)
1С:Предприятие 8.3 (8.3.13.1690)
Документооборот 8 КОРП, редакция 2.1 (2.1.12.2)
--
Если создавать процесс и прикреплять к нему файл, то у исполнителя задачи появляется ошибка:
Если прикреплять предмет - всё норм.
Код функции в общем модуле такой:
Документооборот 8 КОРП, редакция 2.1 (2.1.12.2)
--
Если создавать процесс и прикреплять к нему файл, то у исполнителя задачи появляется ошибка:
{ОбщийМодуль.ОбщегоНазначения.Модуль(86)}: Значение не является значением объектного типа (Метаданные)
Запрос.Текст =
Если прикреплять предмет - всё норм.
Код функции в общем модуле такой:
// Возвращает структуру, содержащую значения реквизитов прочитанные из информационной базы
// по ссылке на объект.
//
// Если доступа к одному из реквизитов нет, возникнет исключение прав доступа.
// Если необходимо зачитать реквизит независимо от прав текущего пользователя,
// то следует использовать предварительный переход в привилегированный режим.
//
// Функция не предназначена для получения значений реквизитов пустых ссылок.
//
// Параметры:
// Ссылка - ЛюбаяСсылка - объект, значения реквизитов которого необходимо получить.
//
// Реквизиты - Строка - имена реквизитов, перечисленные через запятую, в формате
// требований к свойствам структуры.
// Например, "Код, Наименование, Родитель".
// - Структура, ФиксированнаяСтруктура - в качестве ключа передается
// псевдоним поля для возвращаемой структуры с результатом, а в качестве
// значения (опционально) фактическое имя поля в таблице.
// Если значение не определено, то имя поля берется из ключа.
// - Массив, ФиксированныйМассив - имена реквизитов в формате требований
// к свойствам структуры.
//
// Возвращаемое значение:
// Структура - содержит имена (ключи) и значения затребованных реквизитов.
// Если строка затребованных реквизитов пуста, то возвращается пустая структура.
// Если в качестве объекта передана пустая ссылка, то все реквизиты вернутся со значением Неопределено.
//
Функция ЗначенияРеквизитовОбъекта(Ссылка, Знач Реквизиты) Экспорт
Если ТипЗнч(Реквизиты) = Тип("Строка") Тогда
Если ПустаяСтрока(Реквизиты) Тогда
Возврат Новый Структура;
КонецЕсли;
Реквизиты = СтрРазделить(Реквизиты, ",", Ложь);
КонецЕсли;
СтруктураРеквизитов = Новый Структура;
Если ТипЗнч(Реквизиты) = Тип("Структура") Или ТипЗнч(Реквизиты) = Тип("ФиксированнаяСтруктура") Тогда
СтруктураРеквизитов = Реквизиты;
ИначеЕсли ТипЗнч(Реквизиты) = Тип("Массив") Или ТипЗнч(Реквизиты) = Тип("ФиксированныйМассив") Тогда
Для Каждого Реквизит Из Реквизиты Цикл
СтруктураРеквизитов.Вставить(СтрЗаменить(Реквизит, ".", ""), Реквизит);
КонецЦикла;
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неверный тип второго параметра Реквизиты: %1'"), Строка(ТипЗнч(Реквизиты)));
КонецЕсли;
ТекстПолей = "";
Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
СокрЛП(КлючИЗначение.Значение),
СокрЛП(КлючИЗначение.Ключ));
Псевдоним = СокрЛП(КлючИЗначение.Ключ);
ТекстПолей = ТекстПолей + ?(ПустаяСтрока(ТекстПолей), "", ",") + "
| " + ИмяПоля + " КАК " + Псевдоним;
КонецЦикла;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст = //86 строка
"ВЫБРАТЬ
|" + ТекстПолей + "
|ИЗ
| " + Ссылка.Метаданные().ПолноеИмя() + " КАК ПсевдонимЗаданнойТаблицы
|ГДЕ
| ПсевдонимЗаданнойТаблицы.Ссылка = &Ссылка
|";
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Результат = Новый Структура;
Для Каждого КлючИЗначение Из СтруктураРеквизитов Цикл
Результат.Вставить(КлючИЗначение.Ключ);
КонецЦикла;
ЗаполнитьЗначенияСвойств(Результат, Выборка);
Возврат Результат;
КонецФункции
ПоказатьПо теме из базы знаний
- Исправление ошибок в 1С:Конвертация данных, редакция 3.0
- Сказ о том, как в одной крупной компании документооборот внедряли, или проблемы типовых обменов между КА и ДО
- Работа с абстрактным массивом
- Обмен 1С с Честным Знаком для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ
- Заметки по Конвертации данных 2.1
Найденные решения
(3)Перед строкой
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");
попробуйте добавить проверку
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");
попробуйте добавить проверку
ПредметыВыборка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Предметы");
Предметы = ПредметыВыборка.Выгрузить();
Документ = ОбзорЗадачВызовСервера.ПолучитьОсновнойПредметДокумент(Предметы);
Если ЗначениеЗаполнено(Документ ) и ТипЗнч(Документ) = Тип("СправочникСсылка.ВнутренниеДокументы") тогда
ВидМойДокумент = Справочники.ВидыВнутреннихДокументов.НайтиПонаименованию("Мой Документ");
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");
...........
КонецЕсли;
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) а как без файла-то? Нужен)
Нашлась причина ошибки.
Есть самописный код на форме бизнес-процессов (код подсказали здесь на форуме) - в зависимости от типа документа нужно было прятать некоторые элементы.
Теперь без него, как без рук(((
Нашлась причина ошибки.
Есть самописный код на форме бизнес-процессов (код подсказали здесь на форуме) - в зависимости от типа документа нужно было прятать некоторые элементы.
ПредметыВыборка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Предметы");
Предметы = ПредметыВыборка.Выгрузить();
Документ = ОбзорЗадачВызовСервера.ПолучитьОсновнойПредметДокумент(Предметы);
ВидМойДокумент = Справочники.ВидыВнутреннихДокументов.НайтиПонаименованию("Мой Документ");
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ, "ВидДокумента");
Теперь без него, как без рук(((
(3)Перед строкой
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");
попробуйте добавить проверку
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");
попробуйте добавить проверку
ПредметыВыборка = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Ссылка, "Предметы");
Предметы = ПредметыВыборка.Выгрузить();
Документ = ОбзорЗадачВызовСервера.ПолучитьОсновнойПредметДокумент(Предметы);
Если ЗначениеЗаполнено(Документ ) и ТипЗнч(Документ) = Тип("СправочникСсылка.ВнутренниеДокументы") тогда
ВидМойДокумент = Справочники.ВидыВнутреннихДокументов.НайтиПонаименованию("Мой Документ");
ВидДокумента = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Документ , "ВидДокумента");
...........
КонецЕсли;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот