Имя: Пароль:
1C
1С v8
Нужна помощь с запросом.
0 Pro-tone
 
05.08.11
09:58
Есть код модуля "формирования записей книги продаж" Функция ЗаполнитьНДСНачисленныйПоДаннымРегистраНДСНачисленный


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

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

Буше нужно чтобы из СуммаБезНДС вычиталась сумма из проводок по 76му счету.


Я сделал так:


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

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

СГРУППИРОВАТЬ ПО
   ВТ1.Организация,
   ВТ1.СчетФактура,
   ВТ1.СчетФактураДата,
   ВТ1.МоментОпределенияНалоговойБазыНДС,
   ВТ1.ВидЦенности,
   ВТ1.СтавкаНДС,
   ВТ1.СуммаНДС,
   ВТ1.СуммаСНДС,
   ВТ1.Состояние,
   ВТ1.Покупатель,
   ВТ1.СуммаСНДС_НачисленоВсего,
   ВТ1.ТребуетсяКорректировка,
   ВТ1.ДоговорКонтрагента,
   ВЫБОР
       КОГДА Хозрасчетный.Сумма > 0
           ТОГДА ВТ1.СуммаБезНДС - Хозрасчетный.Сумма
       ИНАЧЕ ВТ1.СуммаБезНДС
   КОНЕЦ,
   Хозрасчетный.Регистратор

УПОРЯДОЧИТЬ ПО
   СчетФактураДата,
   СчетФактура
ИТОГИ
   СУММА(СуммаБезНДС),
   СУММА(СуммаНДС),
   СУММА(СуммаСНДС)
ПО
   СчетФактура


Но так почему-то не попадает ни одной записи, то есть таблица результата - пуста
1 Pro-tone
 
05.08.11
10:01
Убираю соединение ВТ1 с запросом пакета2, то записи есть. И странно это, ведь в ЛЕВОЕ соединение ВТ1 уже должно по идее дать все записи ВТ1
2 Maxus43
 
05.08.11
10:04
ГДЕ
   Хозрасчетный.СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСРазнымиДебиторамиИКредиторами))

режет все записи имхо. в условия вирт таблицы переноси, Обороты бери
3 catena
 
05.08.11
10:04
(1)Потому что условие на Хозрасчетный.
"ЛЕВОЕ соединение ВТ1 уже должно по идее дать все записи ВТ1
"
Да, но с учетом наложенного условия, а оно у тебя NULL там, где слева не присобачилось.
4 unregistered
 
05.08.11
10:04
(1) ГДЕ
   Хозрасчетный.СчетКт В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыСРазнымиДебиторамиИКредиторами))

Превращает твоё левое соединение во внутреннее.
5 Pro-tone
 
05.08.11
10:10
(2)(3)(4) хорошо, я понял. Как мне теперь быть (я просто не совсем понял как предложил (2) ) ?
6 catena
 
05.08.11
10:11
(5)Брать таблицу регистра ОБОРОТЫ и пихать условие в параметры таблицы.
7 Maxus43
 
05.08.11
10:12
(5) По сути тебе надо убрать ГДЕ. и всё. Вирт таблицу оборотов хозрасчетнонго соединяй по регистратору, в  условиях вирт таблицы ограничение на счет
8 Pro-tone
 
05.08.11
10:18
(7) ух как мудрено ! Никогда бы не подумал что условие, наложенное не во временной таблице (при использовании пакетного запроса) превращает внешнее соединение во внутреннее, ща попробую как ты сказал ! спасибо !
9 Maxus43
 
05.08.11
10:20
(8) логично всё, ГДЕ - накладывается на всю выборку запроса, а не только на Хозрасчетный твой. поидее у тебя нет Кт 76-го которые присутствуют в выборке Вт
10 Pro-tone
 
05.08.11
10:23
(9) хорошо, но так как ты написал в (7) я взял вирт таблицу ОзрасчетныйОбороты и в списке доступных полей связей нет поля "регистратор" по неме =(
11 Pro-tone
 
05.08.11
10:24
>ОзрасчетныйОбороты

ХозрасчетныйОбороты

>по неме

по немУ
12 Maxus43
 
05.08.11
10:24
(10) Периодичность Регистратор или запись поставь. Обороты ДтКт бери, если надо только КТ 76. и всё будет, там же в самой вирт таблице условие на Кт 76 укажи. Не в ГДЕ
13 Pro-tone
 
05.08.11
10:31
(12)  сделал так:


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

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

СГРУППИРОВАТЬ ПО
   ВТ1.Организация,
   ВТ1.СчетФактура,
   ВТ1.СчетФактураДата,
   ВТ1.МоментОпределенияНалоговойБазыНДС,
   ВТ1.ВидЦенности,
   ВТ1.СтавкаНДС,
   ВТ1.СуммаНДС,
   ВТ1.СуммаСНДС,
   ВТ1.Состояние,
   ВТ1.Покупатель,
   ВТ1.СуммаСНДС_НачисленоВсего,
   ВТ1.ТребуетсяКорректировка,
   ВТ1.ДоговорКонтрагента,
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.СуммаОборот > 0
           ТОГДА ВТ1.СуммаБезНДС - ХозрасчетныйОбороты.СуммаОборот
       ИНАЧЕ ВТ1.СуммаБезНДС
   КОНЕЦ

УПОРЯДОЧИТЬ ПО
   СчетФактураДата,
   СчетФактура
ИТОГИ
   СУММА(СуммаНДС),
   СУММА(СуммаСНДС)
ПО
   СчетФактура


В выборке получилось 2 строки где все значения - NULL
14 catena
 
05.08.11
10:33
(13)Так ты теперь ВТ1 слева присоединяешь, а все параметры у тебя из нее...
15 Pro-tone
 
05.08.11
10:37
(14)

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

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

СГРУППИРОВАТЬ ПО
   ВТ1.Организация,
   ВТ1.СчетФактура,
   ВТ1.СчетФактураДата,
   ВТ1.МоментОпределенияНалоговойБазыНДС,
   ВТ1.ВидЦенности,
   ВТ1.СтавкаНДС,
   ВТ1.СуммаНДС,
   ВТ1.СуммаСНДС,
   ВТ1.Состояние,
   ВТ1.Покупатель,
   ВТ1.СуммаСНДС_НачисленоВсего,
   ВТ1.ТребуетсяКорректировка,
   ВТ1.ДоговорКонтрагента,
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.СуммаОборот > 0
           ТОГДА ВТ1.СуммаБезНДС - ХозрасчетныйОбороты.СуммаОборот
       ИНАЧЕ ВТ1.СуммаБезНДС
   КОНЕЦ

УПОРЯДОЧИТЬ ПО
   СчетФактураДата,
   СчетФактура
ИТОГИ
   СУММА(СуммаНДС),
   СУММА(СуммаСНДС)
ПО
   СчетФактура
16 Pro-tone
 
05.08.11
10:40
(14) Спасибо ! Я еще нашел косяк свой был в :

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


это я раньше писал, и это нужно было тоже убрать
17 catena
 
05.08.11
10:41
(15)И? Какие остались вопросы?

Кстати, а что, счф проводки в БУ делает?
18 Maxus43
 
05.08.11
10:42
(17) Счф в данном контексте - документы
19 Pro-tone
 
05.08.11
10:44
Окночательный текст после все правок выглядит так:


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

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

СГРУППИРОВАТЬ ПО
   ВТ1.Организация,
   ВТ1.СчетФактура,
   ВТ1.СчетФактураДата,
   ВТ1.МоментОпределенияНалоговойБазыНДС,
   ВТ1.ВидЦенности,
   ВТ1.СтавкаНДС,
   ВТ1.СуммаНДС,
   ВТ1.СуммаСНДС,
   ВТ1.Состояние,
   ВТ1.Покупатель,
   ВТ1.СуммаСНДС_НачисленоВсего,
   ВТ1.ТребуетсяКорректировка,
   ВТ1.ДоговорКонтрагента,
   ВЫБОР
       КОГДА ХозрасчетныйОбороты.СуммаОборот > 0
           ТОГДА ВТ1.СуммаБезНДС - ХозрасчетныйОбороты.СуммаОборот
       ИНАЧЕ ВТ1.СуммаБезНДС
   КОНЕЦ

УПОРЯДОЧИТЬ ПО
   СчетФактураДата,
   СчетФактура
ИТОГИ
   СУММА(СуммаНДС),
   СУММА(СуммаСНДС)
ПО
   СчетФактура


((17) сч-ф это как правило для нашего случая это реализации. ССч-ф это псевдоним в запросе которым обозначили документы ддвижения по БУ
20 Pro-tone
 
05.08.11
10:46
В общем, друзья, большое вам спасибо !!!

Сам бы никогда не додумался про эти подводные камни !!!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший