8.х Обход группировок.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем rSlayer, 7 дек 2010.

  1. TopicStarter Overlay
    rSlayer
    Offline

    rSlayer Опытный в 1С

    Регистрация:
    31 мар 2009
    Сообщения:
    251
    Симпатии:
    0
    Баллы:
    26
    Коллеги, столкнулись с такой проблемой.
    Получаем результат запроса.В запросе расчитаны итоги по
    ОБЩИЕ,
    ЛицевойСчет,
    Организация,
    Период,
    ОС

    Потом начинаем обходить результаты группировок.

    Выбираем с обходом по ОБЩИЕ,
    потом выбираем с обходом по ОРГАНИЗАЦИЯ
    потом с обходом по ПЕРИОД
    и тут засада, получается лишняя запись возникает с пустым периодом.

    Период это результат отбора по регистру бухгалтерии с периодочностью месяц.

    В чем может быть засада? откуда берутся лишние итоги. Причем они потом по всем группировкам и по лицевым счетам и по ОС.

    Если например взять группировки по ОРГАНИЗАЦИИ и потом по ПЕРИОД то получается такая картинка
    Посмотреть вложение 5984

    Привоу код, хотя он громоздкий...
    Код:
    ВЫБРАТЬ
    НалоговыйОстаткиИОбороты.Субконто2 КАК ОбъектУчета,
    НалоговыйОстаткиИОбороты.Субконто2.Наименование КАК ОбъектУчетаНаименование,
    НалоговыйОстаткиИОбороты.СуммаНачальныйОстаток КАК НачальныйОстаток,
    НалоговыйОстаткиИОбороты.СуммаОборотДт КАК Приход,
    НалоговыйОстаткиИОбороты.СуммаОборотКт КАК Расход,
    НалоговыйОстаткиИОбороты.СуммаКонечныйОстаток КАК КонечныйОстаток,
    НалоговыйОстаткиИОбороты.Организация,
    НалоговыйОстаткиИОбороты.Субконто1 КАК ЛицевойСчет
    ПОМЕСТИТЬ ОстаткиОборот
    ИЗ
    РегистрБухгалтерии.Налоговый.ОстаткиИОбороты(
    &НачалоПериода,
    &КонецПериода,
    ,
    ,
    Счет В (&СчетУчетаОС),
    ,
    Организация В (&СписокОрганизаций)
    И Субконто2.ТипИнвентарногоНомера = &ТипИнвНомераОС) КАК НалоговыйОстаткиИОбороты
    
    ИНДЕКСИРОВАТЬ ПО
    ОбъектУчета;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    НалоговыйОбороты.Субконто2 КАК ОбъектУчет,
    НалоговыйОбороты.СуммаОборот КАК Амортизация,
    НалоговыйОбороты.Период,
    НалоговыйОбороты.Организация,
    НалоговыйОбороты.Субконто1 КАК ЛицевойСчет,
    НалоговыйОбороты.СуммаОборотКт
    ПОМЕСТИТЬ АмортизацияОС
    ИЗ
    РегистрБухгалтерии.Налоговый.Обороты(&НачалоПериода, &КонецПериода, Месяц, Счет = &СчетАмортизации, , Организация В (&СписокОрганизаций), КорСчет В (&СчетаАмортизации), ) КАК НалоговыйОбороты
    
    ИНДЕКСИРОВАТЬ ПО
    ОбъектУчет;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    СобытияОСНМАОрганизаций.ОбъектУчета КАК ОбъектУчета,
    СобытияОСНМАОрганизаций.Период КАК ДатаВводаВЭксплуатацию,
    СобытияОСНМАОрганизаций.СуммаЗатратНУ
    ПОМЕСТИТЬ ТаблицаДатаВводаВЭксплуатацию
    ИЗ
    РегистрСведений.СобытияОСНМАОрганизаций КАК СобытияОСНМАОрганизаций
    ГДЕ
    СобытияОСНМАОрганизаций.Событие = &СобытиеВводВЭксплуатацию
    И СобытияОСНМАОрганизаций.Период <= &КонецПериода
    И СобытияОСНМАОрганизаций.Организация В(&СписокОрганизаций)
    
    ИНДЕКСИРОВАТЬ ПО
    ОбъектУчета;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    СобытияОСНМАОрганизаций.ОбъектУчета КАК ОбъектУчета,
    СобытияОСНМАОрганизаций.Период КАК ДатаВыбытия,
    СобытияОСНМАОрганизаций.СуммаЗатратНУ КАК СтоимостьНаДатуВыбытия
    ПОМЕСТИТЬ Выбытие
    ИЗ
    РегистрСведений.СобытияОСНМАОрганизаций КАК СобытияОСНМАОрганизаций
    ГДЕ
    СобытияОСНМАОрганизаций.Событие = &СобытиеВыбытие
    И СобытияОСНМАОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
    И СобытияОСНМАОрганизаций.Организация В(&СписокОрганизаций)
    
    ИНДЕКСИРОВАТЬ ПО
    ОбъектУчета;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ПараметрыАмортизацииОСНМАНалоговыйУчет.Период,
    ПараметрыАмортизацииОСНМАНалоговыйУчет.ОбъектУчета,
    ПараметрыАмортизацииОСНМАНалоговыйУчет.ГодоваяНормаАмортизации
    ПОМЕСТИТЬ ПараметрыАмортизации
    ИЗ
    РегистрСведений.ПараметрыАмортизацииОСНМАНалоговыйУчет КАК ПараметрыАмортизацииОСНМАНалоговыйУчет
    ГДЕ
    ПараметрыАмортизацииОСНМАНалоговыйУчет.Период <= &КонецПериода
    И ПараметрыАмортизацииОСНМАНалоговыйУчет.Организация В(&СписокОрганизаций);
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    АмортизацияОС.ОбъектУчет,
    АмортизацияОС.Амортизация,
    АмортизацияОС.Период,
    АмортизацияОС.Организация,
    АмортизацияОС.ЛицевойСчет,
    АмортизацияОС.СуммаОборотКт,
    МАКСИМУМ(ПараметрыАмортизации.Период) КАК ПериодИзмененияГНА,
    ЛицевыеСчетаУчетаОСНМАНУ.ЛицевойСчет КАК ЛицевойСчетУчета
    ПОМЕСТИТЬ ДатаПоследнегоИзмененияГНА
    ИЗ
    АмортизацияОС КАК АмортизацияОС
    ЛЕВОЕ СОЕДИНЕНИЕ ПараметрыАмортизации КАК ПараметрыАмортизации
    ПО АмортизацияОС.ОбъектУчет = ПараметрыАмортизации.ОбъектУчета
    И (КОНЕЦПЕРИОДА(АмортизацияОС.Период, МЕСЯЦ) >= НАЧАЛОПЕРИОДА(ПараметрыАмортизации.Период, МЕСЯЦ))
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаАмортизацииОСНМАНУ КАК ЛицевыеСчетаАмортизацииОСНМАНУ
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаУчетаОСНМАНУ КАК ЛицевыеСчетаУчетаОСНМАНУ
    ПО ЛицевыеСчетаАмортизацииОСНМАНУ.Организация = ЛицевыеСчетаУчетаОСНМАНУ.Организация
    И (ЛицевыеСчетаУчетаОСНМАНУ.АмортизационнаяГруппа = ЛицевыеСчетаАмортизацииОСНМАНУ.АмортизационнаяГруппа)
    ПО АмортизацияОС.ЛицевойСчет = ЛицевыеСчетаАмортизацииОСНМАНУ.ЛицевойСчет
    И АмортизацияОС.Организация = ЛицевыеСчетаАмортизацииОСНМАНУ.Организация
    
    СГРУППИРОВАТЬ ПО
    АмортизацияОС.Амортизация,
    АмортизацияОС.ЛицевойСчет,
    АмортизацияОС.ОбъектУчет,
    АмортизацияОС.Организация,
    АмортизацияОС.Период,
    АмортизацияОС.СуммаОборотКт,
    ЛицевыеСчетаУчетаОСНМАНУ.ЛицевойСчет;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ДатаПоследнегоИзмененияГНА.ОбъектУчет,
    ДатаПоследнегоИзмененияГНА.Период,
    ПараметрыАмортизацииОСНМАНалоговыйУчет.ГодоваяНормаАмортизации,
    ДатаПоследнегоИзмененияГНА.ЛицевойСчетУчета
    ПОМЕСТИТЬ ГНА
    ИЗ
    ДатаПоследнегоИзмененияГНА КАК ДатаПоследнегоИзмененияГНА
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыАмортизацииОСНМАНалоговыйУчет КАК ПараметрыАмортизацииОСНМАНалоговыйУчет
    ПО ДатаПоследнегоИзмененияГНА.ОбъектУчет = ПараметрыАмортизацииОСНМАНалоговыйУчет.ОбъектУчета
    И ДатаПоследнегоИзмененияГНА.ПериодИзмененияГНА = ПараметрыАмортизацииОСНМАНалоговыйУчет.Период;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    НалоговыйОбороты.Субконто2 КАК ОбъектУчетаАПН,
    НалоговыйОбороты.Субконто1 КАК ЛицевойСчет,
    НалоговыйОбороты.Организация,
    НалоговыйОбороты.СуммаОборотКт КАК СуммаАПНаНачало
    ПОМЕСТИТЬ АПНаНачало
    ИЗ
    РегистрБухгалтерии.Налоговый.Обороты(&ПервоеЯнваряДвеТысячиДевятогоГода, &НачалоПериода, , Счет = &СчетКВ, , Организация В (&СписокОрганизаций), , ) КАК НалоговыйОбороты
    
    ИНДЕКСИРОВАТЬ ПО
    ОбъектУчетаАПН;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    НалоговыйОбороты.Субконто2 КАК ОбъектУчетаАПК,
    НалоговыйОбороты.Субконто1 КАК ЛицевойСчет,
    НалоговыйОбороты.Организация,
    НалоговыйОбороты.СуммаОборотКт КАК СуммаАПНаКонец
    ПОМЕСТИТЬ АПНаКонец
    ИЗ
    РегистрБухгалтерии.Налоговый.Обороты(&ПервоеЯнваряДвеТысячиДевятогоГода, &КонецПериода, , Счет = &СчетКВ, , Организация В (&СписокОрганизаций), , ) КАК НалоговыйОбороты
    
    ИНДЕКСИРОВАТЬ ПО
    ОбъектУчетаАПК;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ОстаткиОборот.ОбъектУчета КАК ОС,
    ОстаткиОборот.ОбъектУчетаНаименование КАК НаименованиеОС,
    АмортизацияОС.Период КАК Период,
    АмортизацияОС.СуммаОборотКт КАК Амортизация,
    ОстаткиОборот.ЛицевойСчет КАК ЛицевойСчет,
    ОстаткиОборот.НачальныйОстаток КАК НачальнаяСтоимость,
    ОстаткиОборот.КонечныйОстаток КАК КонечнаяСтоимость,
    ТаблицаДатаВводаВЭксплуатацию.ДатаВводаВЭксплуатацию,
    Выбытие.ДатаВыбытия,
    ОстаткиОборот.Организация КАК Организация,
    ОстаткиОборот.Приход КАК ВводВЭксплуатацию,
    ОстаткиОборот.Расход КАК СтоимостьНаДатуВыбытия,
    ОстаткиОборот.НачальныйОстаток - АПНаНачало.СуммаАПНаНачало КАК НачальнаяСтоимостьБезАп,
    ОстаткиОборот.КонечныйОстаток - АПНаКонец.СуммаАПНаКонец КАК КонечнаяСтоимостьБезАп
    ИЗ
    ОстаткиОборот КАК ОстаткиОборот
    ЛЕВОЕ СОЕДИНЕНИЕ АмортизацияОС КАК АмортизацияОС
    ПО ОстаткиОборот.ОбъектУчета = АмортизацияОС.ОбъектУчет
    И ОстаткиОборот.Организация = АмортизацияОС.Организация
    ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаДатаВводаВЭксплуатацию КАК ТаблицаДатаВводаВЭксплуатацию
    ПО ОстаткиОборот.ОбъектУчета = ТаблицаДатаВводаВЭксплуатацию.ОбъектУчета
    ЛЕВОЕ СОЕДИНЕНИЕ Выбытие КАК Выбытие
    ПО ОстаткиОборот.ОбъектУчета = Выбытие.ОбъектУчета
    ЛЕВОЕ СОЕДИНЕНИЕ АПНаНачало КАК АПНаНачало
    ПО ОстаткиОборот.ОбъектУчета = АПНаНачало.ОбъектУчетаАПН
    И ОстаткиОборот.Организация = АПНаНачало.Организация
    ЛЕВОЕ СОЕДИНЕНИЕ АПНаКонец КАК АПНаКонец
    ПО ОстаткиОборот.ОбъектУчета = АПНаКонец.ОбъектУчетаАПК
    И ОстаткиОборот.Организация = АПНаКонец.Организация
    
    УПОРЯДОЧИТЬ ПО
    Период
    ИТОГИ
    СУММА(Амортизация),
    СУММА(НачальнаяСтоимость),
    СУММА(КонечнаяСтоимость),
    СУММА(ВводВЭксплуатацию),
    СУММА(СтоимостьНаДатуВыбытия),
    СУММА(НачальнаяСтоимостьБезАп),
    СУММА(КонечнаяСтоимостьБезАп)
    ПО
    ОБЩИЕ,
    Организация,
    ЛицевойСчет,
    Период,
    ОС
    
    
    

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      61,4 КБ
      Просмотров:
      33
  2. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Необходимо дополнить параметры виртуальной таблицы вашего запроса параметром движения (метод дополнения периодов)
    Ваши лишние записи - это начало и конец периода
  3. TopicStarter Overlay
    rSlayer
    Offline

    rSlayer Опытный в 1С

    Регистрация:
    31 мар 2009
    Сообщения:
    251
    Симпатии:
    0
    Баллы:
    26
    Что-то не помогло. ВСе равно пустая группировка.
    В другом запросе, почти аналогичном, у меня все окей. Хотя там тоже начало и конец периода есть.
    В чем тут проблема не пойму :(

Поделиться этой страницей