Имя: Пароль:
1C
1С v8
Запрос в модуле док-та: подтянуть параметры из док-та
0 листопад
 
12.04.14
11:07
БП 3.0
При проведении док-та "ПоступленияНаРасчетныйСчет", надо анализировать остаток по счету 62.02 на дату документа.
В модуле док-та, в процедуре ОбработкаПроведения() пишу запрос, для нахождения этого остатка.При этом Организацию, Котрагента, ДоговорКонтрагента и Дату - мне надо брать из док-та. Как в параметрах это указать? Ниже мой запрос:


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



Сейчас выдает ошибку:

Документ.ПоступлениеНаРасчетныйСчет.МодульОбъекта(520,47)}: Переменная не определена (Договор)
    Запрос.УстановитьПараметр("Договор", <<?>>Договор); (Проверка: Сервер)
1 zak555
 
12.04.14
11:08
в документе этом есть ТЧ, в котором указываешь доки, которые будут закрыты
2 mdocs
 
12.04.14
11:10
(1) Т.е. в БП 3.0 такой же ручной паровоз как и в УПП? Автоматического режима нет?
3 листопад
 
12.04.14
11:11
(1) Мне не надо ничего закрывать! Мне надо найти остаток по счету на дату, а параметры (Организацию, Котрагента, ДоговорКонтрагента и Дату) надо брать из док-та. Все просто.
4 mdocs
 
12.04.14
11:13
(3)
>ДоговорКонтрагента
а зачем пишешь Договор в (0)?
5 листопад
 
12.04.14
11:13
+(3) У меня вопрос, как передать реквизиты док-та в параметры запроса!

Пишу, не подходит:
Запрос.УстановитьПараметр("Дата", Ссылка.Дата);
Запрос.УстановитьПараметр("Организация", Ссылка.Организация);
Запрос.УстановитьПараметр("Контрагент", Ссылка.Контрагент);
Запрос.УстановитьПараметр("Договор", Ссылка.Договор);
6 листопад
 
12.04.14
11:15
(4) В смысле? Мне надо получить остаток по счету 62.2 по контрагенту и договору на дату проведения док-та.
7 ИсчадиеADO
 
12.04.14
11:25
(6)  (4) намекает, что нужно проверить, как называется реквизит в документе. Никаких Ссылка.<ИмяРеквизита> писать не нужно, кстати
8 Drac0
 
12.04.14
11:26
(6) у тебя реквизит документа называется договор или договорконтрагента?
9 Wobland
 
12.04.14
11:27
(5) а почему?
10 листопад
 
12.04.14
11:31
Разобралась, надо было писать:

Запрос.УстановитьПараметр("Дата", ЭтотОбъект.Дата);
Запрос.УстановитьПараметр("Организация", ЭтотОбъект.Организация);
Запрос.УстановитьПараметр("Контрагент", ЭтотОбъект.Контрагент);
Запрос.УстановитьПараметр("Договор", ЭтотОбъект.ДоговорКонтрагента);
11 Drac0
 
12.04.14
11:32
(10) не надо писать этотобъект.
12 листопад
 
12.04.14
11:33
(11) Почему? Все правильно собирает.
13 Wobland
 
12.04.14
11:34
(10) всего 18 минут
14 Drac0
 
12.04.14
11:36
(12) Работает, но это лишён. То же самое, что в моделу формы обращаться к её реквизитам через эта форма.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан