Имя: Пароль:
1C
1С v8
Помогите с запросом, вытащить предыдущие значения
0 ghostrid3r
 
11.06.12
18:51
ДОбрый день уважаемые форумчане. Появилась проблемка, нужно вытащить для ОС счета затрат до и после, если с вариантом который после, то все просто, для варианта, который до начинаются заморочки.

Вот пример запроса, в котором значения до выдает NULL.

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

УПОРЯДОЧИТЬ ПО
   ИнвНомерДоИзм


А вот проверочный вариант в котором правильно выводятся данные:

ВЫБРАТЬ
   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство,
   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.СпособыОтраженияРасходовПоАмортизации,
   СпособыОтраженияРасходовПоАмортизацииСпособы.СчетЗатрат КАК СчетЗатратПосле,
   ВложенныйЗапрос.СчетЗатрат КАК СчетЗатратДо,
   МАКСИМУМ(ВложенныйЗапрос.Период) КАК Период,
   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.Период КАК Период1,
   ВложенныйЗапрос.СпособыОтраженияРасходовПоАмортизации КАК СпособыОтраженияРасходовПоАмортизацииДо
ИЗ
   РегистрСведений.СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.СрезПоследних КАК СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.Период КАК Период,
           СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.ОсновноеСредство КАК ОсновноеСредство,
           СпособыОтраженияРасходовПоАмортизацииСпособы.СчетЗатрат КАК СчетЗатрат,
           СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.СпособыОтраженияРасходовПоАмортизации КАК СпособыОтраженияРасходовПоАмортизации
       ИЗ
           РегистрСведений.СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет КАК СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет
               ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
               ПО СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчет.СпособыОтраженияРасходовПоАмортизации = СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка) КАК ВложенныйЗапрос
       ПО СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство = ВложенныйЗапрос.ОсновноеСредство
           И СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.Период > ВложенныйЗапрос.Период
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпособыОтраженияРасходовПоАмортизации.Способы КАК СпособыОтраженияРасходовПоАмортизацииСпособы
       ПО СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.СпособыОтраженияРасходовПоАмортизации = СпособыОтраженияРасходовПоАмортизацииСпособы.Ссылка
ГДЕ
   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство = &ОсновноеСредство

СГРУППИРОВАТЬ ПО
   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство,
   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.СпособыОтраженияРасходовПоАмортизации,
   СпособыОтраженияРасходовПоАмортизацииСпособы.СчетЗатрат,
   ВложенныйЗапрос.СчетЗатрат,
   СпособыОтраженияРасходовПоАмортизацииОСБухгалтерскийУчетСрезПоследних.Период,
   ВложенныйЗапрос.СпособыОтраженияРасходовПоАмортизации


В чем моя ошибка в первом запросе. Вопрос только в СчетеЗатратДо
1 izekia
 
11.06.12
18:53
блин ... выходной же
2 ghostrid3r
 
11.06.12
18:54
у кого как
3 ghostrid3r
 
11.06.12
19:35
все разобрался