О форуме > Конфигурирование
Путаница в модулях! Откуда вызывать запрос?
(1/1)
olia:
Всем доброго времени суток! Совсем запуталась в модулях! Объясните, пожалуйста, что делаю не так?
У документа реквизиты: Номер, Дата, СчетДенежныхСредств, ОстатокНаСчете, СуммаФактическая, такие-же на форме. Хочу при выборе счета автоматом получть остаток по нему. Пробовала так:
--- Код: ---&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент)
СуммаНаСчете = ВернутьОстатокПоСчету();
КонецПроцедуры
&НаСервере
Функция ВернутьОстатокПоСчету()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОстатокПоСчетамДенежныхСредствОстатки.СуммаОстаток
|ИЗ
| РегистрНакопления.ОстатокПоСчетамДенежныхСредств.Остатки(&НаДату, СчетДенежныхСредств = &Счет) КАК ОстатокПоСчетамДенежныхСредствОстатки";
Запрос.УстановитьПараметр("НаДату", Дата);
Запрос.УстановитьПараметр("Счет", СчетДенежныхСредств);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат.СуммаОстаток;
КонецФункции
--- Конец кода ---
Орёт, что переменная не определена:
--- Цитировать ---{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(13,38)}: Переменная не определена (Дата)
Запрос.УстановитьПараметр("НаДату", <<?>>Дата); (Проверка: Сервер)
{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(14,36)}: Переменная не определена (СчетДенежныхСредств)
Запрос.УстановитьПараметр("Счет", <<?>>СчетДенежныхСредств); (Проверка: Сервер)
--- Конец цитаты ---
Пыталась передавать их в процедуру:
--- Код: ---СуммаНаСчете = ВернутьОстатокПоСчету(Дата, СчетДенжныхСредств);
--- Конец кода ---
Орёт уже на форму:
--- Цитировать ---{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,39)}: Переменная не определена (Дата)
СуммаНаСчете = ВернутьОстатокПоСчету(<<?>>Дата, СчетДенжныхСредств); (Проверка: Тонкий клиент)
{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,45)}: Переменная не определена (СчетДенжныхСредств)
СуммаНаСчете = ВернутьОстатокПоСчету(Дата, <<?>>СчетДенжныхСредств); (Проверка: Тонкий клиент)
--- Конец цитаты ---
Перекинула эту функцию в модуль объекта, пыталась вызывать её из модуля формы, ругается, что функция не определена, хотя я даже добавила к функции "Экспорт".
А в самой процедуре СчетДенежныхСредствПриИзменении(Элемент) не даёт сделать запрос, ругается на запрос.
--- Цитировать ---{Документ.КорректировкаСчетаДенежныхСредств.Форма.ФормаДокумента.Форма(3,17)}: Тип не определен (Запрос)
Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)
--- Конец цитаты ---
Где что не так делаю? Как правильно и почему? ???
Заранее благодарна!
iipobaji:
&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент) тут надо в отладчике посмотреть и из элемента найти значение нового счета
СуммаНаСчете = ВернутьОстатокПоСчету(ДАТА, СЧЕТ); здесь надо передать значение даты и значение счета(или строку счета а в серверной функции найти счет по коду)
КонецПроцедуры
&НаСервере
Функция ВернутьОстатокПоСчету(ДАТА, СЧЕТ)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОстатокПоСчетамДенежныхСредствОстатки.СуммаОстаток
|ИЗ
| РегистрНакопления.ОстатокПоСчетамДенежныхСредств.Остатки(&НаДату, СчетДенежныхСредств = &Счет) КАК ОстатокПоСчетамДенежныхСредствОстатки";
Запрос.УстановитьПараметр("НаДату", Дата);
Запрос.УстановитьПараметр("Счет", СчетДенежныхСредств);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат.СуммаОстаток;
КонецФункции
olia:
Ничё не поняла! Можно поподробней?
В отладчике смотрела, но значение даты и счета так и не нашла. :(
poikopoi:
На клиенте определите переменную Дата И Счет
&НаКлиенте
Процедура СчетДенежныхСредствПриИзменении(Элемент)
Дата = Объект.Дата;
Счет = Объект. СчетДенежныхСредств;
//Затем передайте эти переменный в процедуру на сервер в качестве параметров
СуммаНаСчете = ВернутьОстатокПоСчету(Дата, Счет);
КонецПроцедуры
//После чего можно вызывать функцию на сервере без контекста
&НаСервереБезКонтекста
Функция ВернутьОстатокПоСчету(Дата, Счет)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ОстатокПоСчетамДенежныхСредствОстатки.СуммаОстаток
|ИЗ
| РегистрНакопления.ОстатокПоСчетамДенежныхСредств.Остатки(&НаДату, СчетДенежныхСредств = &Счет) КАК ОстатокПоСчетамДенежныхСредствОстатки";
Запрос.УстановитьПараметр("НаДату", Дата);
Запрос.УстановитьПараметр("Счет", Счет);
Результат = Запрос.Выполнить().Выгрузить();
Возврат Результат.СуммаОстаток;
КонецФункции
Навигация
Перейти к полной версии