Есть такой запрос:
В док попадет ссылка на документ, рекв - строка наименование свойства.
Отладчик в выборке выдает "Ошибка чтения значения");
В консоли запросов все отрабатывает.
В чем может быть проблема?
Функция ПолучитьДопРеквизит(Док,Рекв)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СчетНаОплатуДополнительныеРеквизиты.Свойство,
| СчетНаОплатуДополнительныеРеквизиты.Значение КАК Значение
|ИЗ
| Документ.СчетНаОплату.ДополнительныеРеквизиты КАК СчетНаОплатуДополнительныеРеквизиты
|ГДЕ
| СчетНаОплатуДополнительныеРеквизиты.Ссылка = &Ссылка
| И СчетНаОплатуДополнительныеРеквизиты.Свойство = &Рекв";
Запрос.УстановитьПараметр("Ссылка",Док);
Запрос.УстановитьПараметр("Рекв",Рекв);
Результат = Запрос.Выполнить().Выбрать();
Результат.Следующий();
Возврат Результат.Значение;
КонецФункции
ПоказатьВ док попадет ссылка на документ, рекв - строка наименование свойства.
Отладчик в выборке выдает "Ошибка чтения значения");
В консоли запросов все отрабатывает.
В чем может быть проблема?
По теме из базы знаний
- Разбор причины ошибки "Нарушение целостности чтения объекта базы данных из-за параллельного изменения объекта другим сеансом"
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Экспорт запроса из отладки в консоль запросов
- Консоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений
- Ошибка аутентификации клиента средствами операционной системы: Аутентификационный контекст клиента отсутствует в рабочем процессе
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(7)
аналогичное все. Нужно связать ссылку Заказа клиента и заказа поставщику. И ЗаказПоставщику.ДокументОснование = &ДокументОснование"; - меняю по разному, но результат один.
аналогичное все. Нужно связать ссылку Заказа клиента и заказа поставщику. И ЗаказПоставщику.ДокументОснование = &ДокументОснование"; - меняю по разному, но результат один.
СуммаДопРасходов = Новый Массив(ПроектОплаты.Количество());
лТекст = "ВЫБРАТЬ
| ЗаказПоставщику.Ссылка КАК Ссылка,
| ЗаказПоставщику.СуммаДокумента КАК СуммаДокумента
|ИЗ
| Документ.ЗаказПоставщику КАК ЗаказПоставщику
|ГДЕ
| ЗаказПоставщику.Товары.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры
| И ЗаказПоставщику.Проведен
| И ЗаказПоставщику.ДокументОснование = &ДокументОснование";
лЗапрос = Новый Запрос(лТекст);
// Присвоение значений переменным параметров.
ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Услуги"); // Услуги ()
лЗапрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры);
Проведен = Истина;
Для Номер = 0 По ПроектОплаты.Количество() - 1
Цикл
ДокументОснование = ПроектОплаты[Номер]; // передаем в параметр заказ клиента
// Установка параметров.
лЗапрос.УстановитьПараметр("ДокументОснование", ДокументОснование);
лВыборка = лЗапрос.Выполнить().Выбрать();
Пока лВыборка.Следующий() Цикл
СуммаДопРасходов[Номер] = лВыборка.СуммаДокумента;
КонецЦикла;
КонецЦикла;
Показать
Если в функцию в качестве параметра строка с наименованием приходит, то можно например Запрос.УстановитьПараметр("Рекв",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(Рекв, Истина));
(10)
Если в функцию в качестве параметра строка с наименованием приходит, то можно например Запрос.УстановитьПараметр("Рекв",ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(Рекв, Истина));
УстановитьРежимЗанудства();
//В данном случае будет два обращения к БД.
//1. Получение ссылки на ПВХ
//2. Основной запрос.
//С точки зрения быстродействия ссылку рекомендуется получать:
// - или хорошо заранее (если запрос используется несколько раз)
// - или в самом запросе по тому же наименованию.
//Не могу представить сценарий работы, где известно наименование ПВХ, но нет ссылки на него.
ОтключитьРежимЗанудства();
Показать
(15) Ну если дальше копать, то прочтение одного единственного доп. реквизита для одной единственной ссылки изначально далеко не всегда верный подход, а чаще наоборот. Ну а вероятность пустого результата в запросе, особенно в контексте прочтения доп. реквизитов никто не отменял.
(17) никто кроме ТС не знает контекст задачи и сценарий вызова этой функции. Поэтому, при текущих вводных никто из нас не может сказать как должен обрабатываться пустой запрос. Ваш ответ дал прямое указание на безусловное исключение исключения (простите за каламбур), следовательно он полностью соответствует приведенной в (15) цитате
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот