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

Как вытащить остатки из регистра?

Автор web.num, 06 окт 2011, 16:58

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

web.num

Ребята, подскажите пожалуйста, новенький в программировании. Есть документ Расход, в нем есть поле выбора с типом справочик.кошельки. Хочу при выборе этого поля что бы у меня в форме отображалась сумма которая там есть.Каким макаром это сделать? Просто подскажите каким способом, код попробую сам допереть! Я так понимаю что остаток я могу взять только из регистра, это все есть, все в форме готово, осталось только догадаться каким образом вытащить этот остаток! Спасибо!

progmikon

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

   Запрос.УстановитьПараметр("НаДату", ТекущаяДата());
   Запрос.УстановитьПараметр("Организация", Кошелек);
   Результат = Запрос.Выполнить();
   ВыборкаДетальныеЗаписи = Результат.Выбрать();
   Если ВыборкаДетальныеЗаписи.Следующий() Тогда
      ОстатокНаКошельке = ВыборкаДетальныеЗаписи.СуммаОстаток;
   Иначе
      ОстатокНаКошельке = 0;
   КонецЕсли;
Таким образом, в переменную ОстатокНаКошельке у вас попадет нужная сумма, дальшее ее нужно показать на форме через элементы формы.
Что не понятно - спрашивайте

web.num

Я понял, спасибо, а это можно сделать только с помощью запроса? по другому никак? Просто хотелось бы знать не один способ, а больше, если они есть конечно! )

progmikon

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

Я стараюсь всегда пользоваться запросами.

Теги:

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

Рейтинг@Mail.ru

Поиск