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

Как объединить два периода

Автор Sonik, 20 мая 2011, 16:08

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

Sonik

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

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Основной.ОстаткиИОбороты(&ПериодНачало, &ПериодКонец, Период, Движения, , , ) КАК ХозрасчетныйОстаткиИОбороты2
   ПО ХозрасчетныйОстаткиИОбороты.Субконто1Наименование =(Выбор когда ХозрасчетныйОстаткиИОбороты2.Счет.Код="62.10.01" ТОГДА
ХозрасчетныйОстаткиИОбороты2.Субконто2.Наименование
ИНАЧЕ
ХозрасчетныйОстаткиИОбороты2.Субконто1.Наименование
КОНЕЦ)
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстаткиИОбороты.Субконто1Наименование,
ХозрасчетныйОстаткиИОбороты2.Счет,
ХозрасчетныйОстаткиИОбороты.Период

УПОРЯДОЧИТЬ ПО
Субконто1Наименование
ИТОГИ
  СУММА(СуммаКонечныйРазвернутыйОстатокДт),
  СУММА(СуммаКонечныйРазвернутыйОстатокКт)
ПО
ОБЩИЕ
Но в него попадают только конечные остатки по тем документам, по которым в данном промежутке &ПериодНачало, &ПериодКонец были обороты, как доработать запрос?

Sonik

Ошибся: в первом случае РегистрБухгалтерии.Основной.ОстаткиИОбороты(&ПериодНачало, &ПериодКонец, Запись, Движения, , , ), а не РегистрБухгалтерии.Основной.ОстаткиИОбороты(&ПериодНачало, &ПериодКонец, Период, Движения, , , )

Sonik

Помогите пожалуйста, уже все перепробывал((

Шурыгин Иван Сергеевич

напишите что именно вы хотите? задачу конкретно
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

Sonik

Хочу вывести дебиторскую или кредиторскую задолженность за какой то период с датой возникновения этой самой задолженности. Сложность была в том что не попадали суммы начальных остатков до &ПериодНачало, либо если увеличивал период, то даты соответственно брались почти все из даты ввода остатков. как самой ранней. Например 31.12.2009 вносились остатки, а мне нужны сведения за переод 01.01.2010-31.12.2010. Решил проблему следующим запросом, но может его можно было как-то проще сделать?
ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.Субконто1Наименование КАК Субконто1Наименование,
ХозрасчетныйОстаткиИОбороты2.Счет,
ЕстьNULL(МАКСИМУМ(ХозрасчетныйОстаткиИОбороты.Период),"---") КАК Период,
Выбор когда МАКСИМУМ(ХозрасчетныйОстаткиИОбороты.Период) Есть Null Тогда
СУММА(ХозрасчетныйОстаткиИОбороты2.СуммаКонечныйРазвернутыйОстатокДт)
ИНАЧЕ СУММА(ХозрасчетныйОстаткиИОбороты2.СуммаКонечныйРазвернутыйОстатокДт)/2
КОНЕЦ КАК СуммаКонечныйРазвернутыйОстатокДт,
Выбор когда МАКСИМУМ(ХозрасчетныйОстаткиИОбороты.Период) Есть Null Тогда
СУММА(ХозрасчетныйОстаткиИОбороты2.СуммаКонечныйРазвернутыйОстатокКт)
ИНАЧЕ СУММА(ХозрасчетныйОстаткиИОбороты2.СуммаКонечныйРазвернутыйОстатокКт)/2
КОНЕЦ КАК СуммаКонечныйРазвернутыйОстатокКт
ИЗ
(ВЫБРАТЬ РАЗЛИЧНЫЕ
   
Выбор когда ХозрасчетныйОстаткиИОбороты1.Счет.Код="62.10.01" ТОГДА
ХозрасчетныйОстаткиИОбороты1.Субконто2.Наименование
ИНАЧЕ
ХозрасчетныйОстаткиИОбороты1.Субконто1.Наименование
КОНЕЦ  КАК Субконто1Наименование,
   МИНИМУМ(ХозрасчетныйОстаткиИОбороты1.Период) КАК Период
   
      ИЗ
   РегистрБухгалтерии.Основной.ОстаткиИОбороты(&ПериодНачало, &ПериодКонец, Запись, Движения, , , ) КАК ХозрасчетныйОстаткиИОбороты1
   
      СГРУППИРОВАТЬ ПО
      Выбор когда ХозрасчетныйОстаткиИОбороты1.Счет.Код="62.10.01" ТОГДА
ХозрасчетныйОстаткиИОбороты1.Субконто2.Наименование
ИНАЧЕ
ХозрасчетныйОстаткиИОбороты1.Субконто1.Наименование
КОНЕЦ   
   
ОБЪЕДИНИТЬ
ВЫБРАТЬ РАЗЛИЧНЫЕ
Выбор когда ХозрасчетныйОстаткиИОбороты1.Счет.Код="62.10.01" ТОГДА
ХозрасчетныйОстаткиИОбороты1.Субконто2.Наименование
ИНАЧЕ
ХозрасчетныйОстаткиИОбороты1.Субконто1.Наименование
КОНЕЦ  КАК Субконто1Наименование,       
NULL
   ИЗ
   РегистрБухгалтерии.Основной.ОстаткиИОбороты(&ПериодНачало2, &ПериодКонец, период, Движения, , , ) КАК ХозрасчетныйОстаткиИОбороты1

      СГРУППИРОВАТЬ ПО
      Выбор когда ХозрасчетныйОстаткиИОбороты1.Счет.Код="62.10.01" ТОГДА
ХозрасчетныйОстаткиИОбороты1.Субконто2.Наименование
ИНАЧЕ
ХозрасчетныйОстаткиИОбороты1.Субконто1.Наименование
КОНЕЦ) КАК ХозрасчетныйОстаткиИОбороты
          ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Основной.ОстаткиИОбороты(&ПериодНачало, &ПериодКонец, Период, Движения, , , ) КАК ХозрасчетныйОстаткиИОбороты2
   ПО ХозрасчетныйОстаткиИОбороты.Субконто1Наименование =(Выбор когда ХозрасчетныйОстаткиИОбороты2.Счет.Код="62.10.01" ТОГДА
ХозрасчетныйОстаткиИОбороты2.Субконто2.Наименование
ИНАЧЕ
ХозрасчетныйОстаткиИОбороты2.Субконто1.Наименование
КОНЕЦ)

   СГРУППИРОВАТЬ ПО
ХозрасчетныйОстаткиИОбороты.Субконто1Наименование,
ХозрасчетныйОстаткиИОбороты2.Счет

УПОРЯДОЧИТЬ ПО
Субконто1Наименование
ИТОГИ
СУММА(СуммаКонечныйРазвернутыйОстатокДт),
СУММА(СуммаКонечныйРазвернутыйОстатокКт)
ПО
ОБЩИЕ


Шурыгин Иван Сергеевич

не плохое решение, но мне кажется было бы лучше использовать левое соединение... таблицы регистра и таблицы остатоков регистра....
===================================
жизнь надо прожить так, чтоб вверху посмотрели.
и сказали "А ну ка повтори"
===================================

Теги:

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

Рейтинг@Mail.ru

Поиск