О форуме > Конфигурирование

Путаница в модулях! Откуда вызывать запрос?

(1/1)

olia:
Всем доброго времени суток! Совсем запуталась в модулях! Объясните, пожалуйста, что делаю не так?

У документа реквизиты: Номер, Дата, СчетДенежныхСредств, ОстатокНаСчете, СуммаФактическая, такие-же на форме. Хочу при выборе счета автоматом получть остаток по нему. Пробовала так:

--- Код: ---&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент)
СуммаНаСчете = ВернутьОстатокПоСчету();
КонецПроцедуры

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

--- Цитировать ---{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(13,38)}: Переменная не определена (Дата)
   Запрос.УстановитьПараметр("НаДату", <<?>>Дата); (Проверка: Сервер)
{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(14,36)}: Переменная не определена (СчетДенежныхСредств)
   Запрос.УстановитьПараметр("Счет", <<?>>СчетДенежныхСредств);    (Проверка: Сервер)

--- Конец цитаты ---
Пыталась передавать их в процедуру:

--- Код: ---СуммаНаСчете = ВернутьОстатокПоСчету(Дата, СчетДенжныхСредств);
--- Конец кода ---
Орёт уже на форму:

--- Цитировать ---{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,39)}: Переменная не определена (Дата)
   СуммаНаСчете = ВернутьОстатокПоСчету(<<?>>Дата, СчетДенжныхСредств);       (Проверка: Тонкий клиент)
{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,45)}: Переменная не определена (СчетДенжныхСредств)
   СуммаНаСчете = ВернутьОстатокПоСчету(Дата, <<?>>СчетДенжныхСредств);       (Проверка: Тонкий клиент)
--- Конец цитаты ---
Перекинула эту функцию в модуль объекта, пыталась вызывать её из модуля формы, ругается, что функция не определена, хотя я даже добавила к функции "Экспорт".
А в самой процедуре СчетДенежныхСредствПриИзменении(Элемент) не даёт сделать запрос, ругается на запрос.

--- Цитировать ---{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,17)}: Тип не определен (Запрос)
   Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
--- Конец цитаты ---
Где что не так делаю? Как правильно и почему?  ???
Заранее благодарна!

iipobaji:
&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент)   тут надо в отладчике посмотреть и из элемента найти значение нового счета
   СуммаНаСчете = ВернутьОстатокПоСчету(ДАТА, СЧЕТ);   здесь надо передать значение даты и значение счета(или строку счета а в серверной функции найти счет по коду)   
КонецПроцедуры

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

olia:
Ничё не поняла! Можно поподробней?
В отладчике смотрела, но значение даты и счета так и не нашла. :(

poikopoi:
На клиенте определите переменную Дата И Счет

&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент)   
        Дата = Объект.Дата;
        Счет = Объект. СчетДенежныхСредств;
//Затем передайте эти переменный в процедуру на сервер в качестве параметров

   СуммаНаСчете = ВернутьОстатокПоСчету(Дата, Счет);      
КонецПроцедуры

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

Навигация

[0] Главная страница сообщений

Перейти к полной версии