|
Автозаполнение поля по остаткам регистра | ☑ | ||
---|---|---|---|---|
0
СэдКС
25.02.14
✎
14:56
|
Здравствуйте! На форме имеется поле (остаток топлива), которое заполняется по остаткам регистра (запрос). Поле заполняется в зависимости от двух полей (транспорт и марка топлива), которые обязательны для заполнения.
Когда первоначально заполняю поля транспорт и марка топлива, то остаток топлива вычисляется верно, но когда меняю значения этих двух полей, то "пересчет" запроса не идет, хотя ПриИзменении двух полей идет ссылка на запрос, в котором считается остаток. Какой есть метод, который очищает данные перед запросом? |
|||
1
FIXXXL
25.02.14
✎
14:57
|
код кажи
|
|||
2
СэдКС
25.02.14
✎
15:00
|
Процедура ТранспортПриИзменении(Элемент)
ЗаполнитьПоказания(); КонецПроцедуры Функция ЗаполнитьПоказания() Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПутевойЛистОстатки.Транспорт, | ПутевойЛистОстатки.КонПоказанияОстаток, | ПутевойЛистОстатки.ОстатокНаКонецОстаток, | ПутевойЛистОстатки.МаркаТоплива |ИЗ | РегистрНакопления.ПутевойЛист.Остатки(, ) КАК ПутевойЛистОстатки |ГДЕ | ПутевойЛистОстатки.Транспорт = &Транспорт | И ПутевойЛистОстатки.МаркаТоплива = &МаркаТоплива"; Запрос.УстановитьПараметр("Транспорт", Транспорт); Запрос.УстановитьПараметр("МаркаТоплива", МаркаТоплива); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл НачПоказания = Выборка.КонПоказанияОстаток; ОстатокНаНачало = Выборка.ОстатокНаКонецОстаток; КонецЦикла; КонецФункции |
|||
3
FIXXXL
25.02.14
✎
15:05
|
запрос возвращает нужные данные?
|
|||
4
СэдКС
25.02.14
✎
15:08
|
да, но только при первом выборе.
|
|||
5
salvator
25.02.14
✎
15:10
|
(4) А по параметрам которые потом ставишь есть данные вообще?
|
|||
6
Maxus43
25.02.14
✎
15:12
|
смотри отладчиком Парметры запроса...
|
|||
7
FIXXXL
25.02.14
✎
15:14
|
и эта, Функция должна возвращать что-либо по-хорошему
у тебя ЗаполнитьПоказания() - это процедура :) |
|||
8
СэдКС
25.02.14
✎
15:18
|
ок. сделаем процедуру.
|
|||
9
salvator
25.02.14
✎
15:19
|
(8) Имхо, проблема при получении данных из запроса. Проверь, пустой результат запроса или нет.
|
|||
10
СэдКС
25.02.14
✎
15:35
|
Добавила условие, что если заполнено только поле транспорт, то запросом вытаскивать только остаток топлива. Теперь значения возвращаются правильные, единственное, если в регистре нет данных, то 0 в поле не становится, хотя указала ЕСТЬNULL(ПутевойЛистОстатки.ОстатокНаКонецОстаток, 0)
|
|||
11
FIXXXL
25.02.14
✎
15:37
|
(10) ну очисти поля перед заполнением
|
|||
12
СэдКС
25.02.14
✎
15:39
|
(10) неправильно. надо попробовать указать, что если транспорт неопределено, то остаток 0
(11) не помогает |
|||
13
Maxus43
25.02.14
✎
15:44
|
>>единственное, если в регистре нет данных, то 0 в поле не становится
тут NULL не поможет, если нет остатка - то и результат Пустой... Если Выборка.Следующий() Тогда НачПоказания = Выборка.КонПоказанияОстаток; ОстатокНаНачало = Выборка.ОстатокНаКонецОстаток; Иначе НачПоказания = 0; ОстатокНаНачало = 0; КонецЕсли; |
|||
14
СэдКС
25.02.14
✎
15:49
|
Maxus43, спасибо, вы правы!
FIXXXL, salvator, спасибо за помощь |
|||
15
Ненавижу 1С
гуру
25.02.14
✎
15:53
|
фото где?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |