|
БлокировкаДанных и результат запроса |
☑ |
0
RealSaint
02.08.11
✎
16:23
|
Платформа 8.2.14.519. Пытаюсь использовать результат запроса как источник данных для блокировки данных. Пишу такое:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕдиницыИзмерения.Ссылка,
| ЕдиницыИзмерения.Код
|ИЗ
| Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
|ГДЕ
| ЕдиницыИзмерения.Код В(&Коды)";
Запрос.УстановитьПараметр("Коды", мКоды);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
// Блокировка данных.
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ЕдиницыИзмерения");
ЭлементБлокировки.ИсточникДанных = Результат;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Ссылка", "Ссылка");
Блокировка.Заблокировать();
При выполнении метода Заблокировать() получаю следующую ошибку:
{Справочник.ЕдиницыИзмерения.Форма.КлассификаторЕдиницИзмерения.Форма(185)}: Ошибка при вызове метода контекста (Заблокировать)
Блокировка.Заблокировать();
по причине:
Не найдено поле источника данных: Ссылка
Люди добрые, что я делаю неправильно? Ведь если результат запроса выгрузить в таблицу значений и назначить её в качестве источника данных для блокировки, то ошибки не возникает. А вот с результатом запроса работать не хочет.
|
|
1
apokrit
02.08.11
✎
16:26
|
(0) Напиши в тексте запроса ЕдиницыИзмерения.Ссылка КАК Ссылка
|
|
2
Reset
02.08.11
✎
16:34
|
(0) Запустил копи пастом твой код, ошибки не дало.
мКоды инициализировал парой существующих у меня кодов.
|
|
3
RealSaint
02.08.11
✎
17:25
|
(1) Спасибо, помогло. А почему без псевдонима поля не работает?
|
|
4
RealSaint
02.08.11
✎
17:26
|
(2) Блокировку нужно устанавливать в транзакции. Без транзакции блокировка не устанавливается, соответственно ошибка не проявляется.
|
|
5
Reset
02.08.11
✎
17:33
|
(4) Спс, кэп. Разумеется, выполнял в транзакции.
|
|
6
RealSaint
02.08.11
✎
17:38
|
(5) Ну, не в транзакции и у меня без ошибок выполняется. Так что не знаю что и думать о причинах, по которым у тебя выполнилось без ошибок.
|
|