Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 03:21

Получить ссылочный реквизит из документа в документе

Автор beztrud, 21 авг 2012, 13:35

0 Пользователей и 1 гость просматривают эту тему.

sadovod

Запрос.УстановитьПараметр("Договор", Объект.Договор);

sadovod


sadovod

Тьфу ты, запутался, у него же в Раскрое реквизит - Договор, значит всё-таки - Объект.Договор... :-)

Klyacksa

А, точно, мы же в Раскрое находимся... Тогда точно Объект.Договор :)

А еще можно из Элемента вытащить, мы же находимся в обработчике изменения Договора.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

beztrud

Можно, наверное, но не вытаскивает никак. Ошибок нет!

beztrud


&НаСервере
Процедура НомерДоговораПриИзменении(Элемент)
       Запрос = Новый Запрос;
       Запрос.Текст =
               "ВЫБРАТЬ ПЕРВЫЕ 1
               |        Договор.Магазин,
               |        Договор.ТипДоговора
               |ИЗ
               |        Документ.Договор КАК Договор
               |ГДЕ
               |        Договор.Ссылка=&Договор";
       Запрос.УстановитьПараметр("&Договор",Объект.Договор);
       Выборка = Запрос.Выполнить().Выбрать();
   Если Выборка.Следующий() тогда
   Объект.Магазин=Выборка.Магазин;
   Объект.ТипДоговора=Выборка.ТипДоговора;
   КонецЕсли;
КонецПроцедуры

sadovod

Здесь неправильно:
Запрос.УстановитьПараметр("&Договор",Объект.Договор);
Нужно без амперсанда, вот так:
Запрос.УстановитьПараметр("Договор",Объект.Договор);

Klyacksa

Цитата: beztrud от 22 авг 2012, 18:38
Можно, наверное, но не вытаскивает никак. Ошибок нет!
В таких случаях, останавливаемся отладчиком и разворачиваем Элемент - смотрим, что нам доступно.
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

beztrud

ЦитироватьВ таких случаях, останавливаемся отладчиком и разворачиваем Элемент - смотрим, что нам доступно.
Ребят мне запрос пока грамотно составить сложно. Не говоря уже про разворачивание Элемента.
Еще раз подробно попробую описать задачу. Имеющиеся данные: Документ.Договор с реквизитами Магазин (ПеречислениеСсылка.Магазины); ТипДоговора(ПеречислениеСсылка.ТипДоговора);  Документ.Раскрой с реквизитами НомерДоговора- ДокументСсылка.Договор; Магазин и ТипДоговора - Строка. Необходимо в документе Раскрой НомерДоговора ПриИзменении присвоить реквизитам "раскроя" Магазин и ТипДоговора значение Магазин и ТипДоговора документа Договор.

sadovod

Так вы вроде все правильно написали, только одна ошибка, я вам на неё указал. Ну вот на всякий случай полный код модуля формы Документа 'Раскрой'

&НаКлиенте
Процедура ДоговорПриИзменении(Элемент)
ЗаполнитьНаСервере();
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьНаСервере()

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Договор.Магазин,
| Договор.ТипДоговора
|ИЗ
| Документ.Договор КАК Договор
|ГДЕ
| Договор.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", Объект.Договор);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
Объект.Магазин = Выборка.Магазин;
Объект.ТипДоговора = Выборка.ТипДоговора;
КонецЕсли;

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

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск