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

Как получить сальдо по счету на момент не документа, а проводки

Автор OlegIvanov, 01 сен 2010, 20:30

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

OlegIvanov

ПОМОГИТЕ!  :trhregerhg:
1 Как получить сальдо на момент проводки
2 И можно ли эти два запроса объединить в один, а то ооочень медленно формируется отчет

\\Этот запрос находит необходимые проводки
Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Субконто1", ЭлементыФормы.Субконто1.Значение);
   Запрос.УстановитьПараметр("Дата1", ЭлементыФормы.Дата1.Значение);

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

\\А этот запрос должен вернуть сальдо по проводке, но у меня возвращается сальдо по документу :(

      Запрос1 = Новый Запрос;
      Запрос1.УстановитьПараметр("СубконтоДт1", Т[А].СубконтоДт1);
      Запрос1.УстановитьПараметр("СубконтоКт1", Т[А].СубконтоКт1);
      Запрос1.УстановитьПараметр("Дата1", Т[А].МоментВремени);

      Запрос1.УстановитьПараметр("Дата2", Т[А].МоментВремени);
      Запрос1.УстановитьПараметр("Счет", ПланыСчетов.Основной.А62_1);
      Запрос1.Текст = "ВЫБРАТЬ
                      |   ОсновнойОстаткиИОбороты.Счет,
                      |   ОсновнойОстаткиИОбороты.Субконто1,
                      |   ОсновнойОстаткиИОбороты.СуммаНачальныйОстатокДт,
                      |   ОсновнойОстаткиИОбороты.СуммаНачальныйОстатокКт,
                      |   ОсновнойОстаткиИОбороты.СуммаОборотДт,
                      |   ОсновнойОстаткиИОбороты.СуммаОборотКт,
                      |   ОсновнойОстаткиИОбороты.СуммаКонечныйОстатокДт,
                      |   ОсновнойОстаткиИОбороты.СуммаКонечныйОстатокКт
                      |ИЗ
                      |   РегистрБухгалтерии.Основной.ОстаткиИОбороты(
                      |      &Дата1,
                      |      &Дата2,
                      |      ,
                      |      ,
                      |      Счет = &Счет,
                      |      ,
                      |      Субконто1 = &СубконтоДт1
                      |         ИЛИ Субконто1 = &СубконтоКт1) КАК ОсновнойОстаткиИОбороты
                      |ИТОГИ ПО
                      |   ОБЩИЕ";
       Т1 = Запрос1.Выполнить().Выгрузить();
       Т[А].СКД = Т1[1].СуммаКонечныйОстатокДт;
       Т[А].СКК = Т1[1].СуммаКонечныйОстатокКт;
   КонецЦикла;
   
   ЭлементыФормы.ТабличноеПоле1.Значение =  Т;
   ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();

ЗАРАНЕЕ БЛАГОДАРЕН!!!!

OlegIvanov

Тема закрыта, разобрался!!!

Кому интересно, вот ответ

Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Субконто1", ЭлементыФормы.Субконто1.Значение);
   Запрос.УстановитьПараметр("Дата1", ЭлементыФормы.Дата1.Значение);

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

Теги:

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

Рейтинг@Mail.ru

Поиск