Имя: Пароль:
1C
1С v8
помогите с запросом 1С
0 vip67
 
24.07.13
12:00
Всем привет! Украина, 1с 8.2 упп 1-3-21-2. Задача: отобрать материалы, непоступившие в тек месяце, но оплаченные (в текущем мес и в прошлых периодах). Использую бухгалтерские регистры. по типу ОСВ 371счета (авансы). Формула такая: Если оборот Кт больше сальдо на начало, то беру разницу между оборот Дт и (оборот Кт- сальдо на начало), иначе считается, что приход покрыл сальдо на начало и в качестве нужной суммы беру весь оборот Дт. В следуеющем запросе почему-то не учитывается документ Корреткировка долга (не связывается по СубконтоДт3 и СубконтоКт3)
ВЫБРАТЬ
   Платеж.СубконтоДт1 КАК Поставщик,
   Платеж.СубконтоДт3 КАК СчетНаОплату,
   Платеж.СубконтоДт3.НомерВходящегоДокумента КАК Номер,
   Платеж.СубконтоДт3.ДатаВходящегоДокумента КАК Дата,
   Платеж.СубконтоДт3.Комментарий КАК Коментарий,
   Платеж.СуммаОборот КАК СуммаПлатежа,
   ЕСТЬNULL(ПриходМат.СуммаОборот, 0) КАК СуммаПрихода,
   Остатки.СуммаОстатокДт,
   ВЫБОР
       КОГДА ЕСТЬNULL(ПриходМат.СуммаОборот, 0) - ЕСТЬNULL(Остатки.СуммаОстатокДт, 0) > 0
           ТОГДА ЕСТЬNULL(ПриходМат.СуммаОборот, 0) - ЕСТЬNULL(Остатки.СуммаОстатокДт, 0)
       ИНАЧЕ 0
   КОНЕЦ КАК СуммаПриходаМат,
   ВЫБОР
       КОГДА ЕСТЬNULL(ПриходМат.СуммаОборот, 0) + ЕСТЬNULL(Корректировки.СуммаОборот, 0) - ЕСТЬNULL(Остатки.СуммаОстатокДт, 0) >= 0
           ТОГДА Платеж.СуммаОборот - (ЕСТЬNULL(ПриходМат.СуммаОборот, 0) + ЕСТЬNULL(Корректировки.СуммаОборот, 0) - ЕСТЬNULL(Остатки.СуммаОстатокДт, 0))
       ИНАЧЕ Платеж.СуммаОборот
   КОНЕЦ КАК СуммаНеПоступившихМат,
   Корректировки.СуммаОборот КАК СуммаКорректировки
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, , СчетДт В ИЕРАРХИИ (&счетДт), , , , ) КАК Платеж
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, , , , СчетКт В ИЕРАРХИИ (&СчетДт), , ) КАК ПриходМат
       ПО Платеж.СубконтоДт1 = ПриходМат.СубконтоДт1
           И Платеж.СубконтоДт3 = ПриходМат.СубконтоДт3
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&НачПериода, Счет В ИЕРАРХИИ (&СчетДт), , ) КАК Остатки
       ПО Платеж.СубконтоДт3 = Остатки.Субконто3
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ХозрасчетныйОборотыДтКт.Регистратор КАК Регистратор,
           ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК СубконтоКт3,
           ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаОборот
       ИЗ
           РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&НачПериода, &КонПериода, Регистратор, , , СчетКт В ИЕРАРХИИ (&счетДт), , ) КАК ХозрасчетныйОборотыДтКт
       ГДЕ
           ХозрасчетныйОборотыДтКт.Регистратор ССЫЛКА Документ.КорректировкаДолга) КАК Корректировки
       ПО Платеж.СубконтоДт3.Ссылка = Корректировки.СубконтоКт3.Ссылка
ГДЕ
   ВЫБОР
           КОГДА ЕСТЬNULL(ПриходМат.СуммаОборот, 0) + ЕСТЬNULL(Корректировки.СуммаОборот, 0) - ЕСТЬNULL(Остатки.СуммаОстатокДт, 0) >= 0
               ТОГДА Платеж.СуммаОборот - (ЕСТЬNULL(ПриходМат.СуммаОборот, 0) + ЕСТЬNULL(Корректировки.СуммаОборот, 0) - ЕСТЬNULL(Остатки.СуммаОстатокДт, 0))
           ИНАЧЕ Платеж.СуммаОборот
       КОНЕЦ > 0
   И Платеж.ВалютаДт = &ВалютаДт

УПОРЯДОЧИТЬ ПО
   Поставщик

прошу подсказать, как связать - потому что по тестовым Субконто3 - явно есть корреткировки
1 palpetrovich
 
24.07.13
12:15
обязательно использовать Хозрасчетный? может лучше анализировать РН-ы  ЗаказыПоставщикам + РасчетыСКонтрагентами?
2 vip67
 
24.07.13
12:29
учет ведется по счетам на оплату. и как по расчетам с контрагентами учесть зачет авансов? так что - хозрасчетный... - наше спасение
3 Поросенок Петр
 
24.07.13
12:32
Зачет авансов есть в Расчетах по приобретению/Реализации. Собсна по ним и формируются проводки зачета.
4 vip67
 
24.07.13
12:50
(3) интересное замечание - посмотрю на досуге.
5 vip67
 
24.07.13
14:03
всем СПС! разобрался. там связь оказалась вместо счета на оплату - какой-то другой док...