Имя: Пароль:
1C
1С v8
запрос
0 vip67
 
14.07.13
15:32
Добрый день!
1с 8.2, УПП для Украины, но тут конфа не столь важна.
необходимо сформировать отчет: в разрезе контрагент,договор получить остаток на начало, оборот дб, Кт остаток на конец по определенному счету БУ. так-же получить дату вохникновения задолженности (принять дату первого документа). делаю с помощью СКД, проблема - в получении даты первого дока - не выводит.
код запроса

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

УПОРЯДОЧИТЬ ПО
   Контрагент

дату получаю с помощью вложенного запроса. Отдельно - выдают дату документа. подскажите - где ошибка? (кроме кривых рук :)  )
1 ИсчадиеADO
 
14.07.13
17:12
лучше тогда так:
1) для 1ого запроса исп-ть таблицу остатки и обороты, с помощью которого и получишь нач. и кон.остаток, и оборот.
Кидаешь во временную таблицу
2) готовишь временную таблицу
ВЫБРАТЬ
ПервыйДок.Субконто1,
ПервыйДок.Субконто2,
ПервыйДок.Регистратор,
ПервыйДок.Регистратор.МоментВремени
ПОМЕСТИТЬ ВТ2
ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПериода, &КонПериода, Регистратор, , , , , ) КАК ХозрасчетныйОбороты) КАК ПервыйДок
в параметры вирт. таблицы вставь условие по субконто как ВЫБРАТЬ РАЗЛИЧНЫЕ Субконто1, Субконто2 ИЗ ВТ1

3)ВЫБРАТЬ
ВТ2.Субконто1,
ВТ2.Субконто2,
МИНИМУМ(ВТ2.МоментВремени)

4) ВЫБРАТЬ
ВТ2.Субконто1,
ВТ2.Субконто2,
ВТ2.Регистратор
ИЗ ВТ2
ВНУТРЕНЕЕ СОЕДИНЕНИЕ ВТ3 ПО  Субконто..

5) ИЗ ВТ1
ЛЕВОЕ СОЕДИНЕНИЕ ВТ4


зы: еще можно коррелированным подзапросом
зызы: вообще то документ задолжности по-хорошему нужно хранить в субконто - а это все фигня
2 vip67
 
14.07.13
18:53
(1) спс!,
но почему не работает мой вариант?
2 + 2 = 3.9999999999999999999999999999999...