Имя: Пароль:
1C
1С v8
Получение конечных остатков за каждый день периода
,
0 AntonH851
 
04.10.12
08:31
Добрый день
Пытаюсь получить конечные остатки за каждый день указанного периода

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

Но получается что если я выбираю данные сначала за три дня, то получаю за второй день не то что, получаю за второй день если делаю выборку только за два дня. есть способ чтоб именно конечный остаток получать за каждый день?
1 IamAlexy
 
04.10.12
08:32
тема - порваный баян.
уже даже не интересно
2 AntonH851
 
04.10.12
08:32
Может и баян, не спорю, тогда может ссылку на ответ?
3 IamAlexy
 
04.10.12
08:33
(2) красная буква Я справа от темы
4 AntonH851
 
04.10.12
08:41
Чет яндекс ни че путного не дает
5 Преднаименование
 
04.10.12
08:42
(4) периодами
6 IamAlexy
 
04.10.12
08:43
(4) вторая же ссылка пример с разбором методики

или ты под словом "путное" ожидаешь что по звонку приедет программист 1С, зайте в твою базу и напишет кусок кода за тебя?

такие "вопросы" должны начинаться так:

"есть разовая работа в городе ...., готов заплатить 3 000 в час + оплатить выезд и печеньки с кофе"
7 AntonH851
 
04.10.12
08:46
2-я ссылка -список отчетов в бухгалтерии, чем он мне поможет?
8 AntonH851
 
04.10.12
08:47
Ой, я понял о чем вы
9 AntonH851
 
04.10.12
08:49
А зачем он там объединяет остатки и остаткииобороты?
10 AntonH851
 
04.10.12
09:01
Вроде на ИТС есть решение подобной задачи, или нет?
11 Преднаименование
 
04.10.12
10:20
(10) смотри слово ПЕРИОДАМИ
12 AntonH851
 
04.10.12
10:45
Преднаименование, я смотрел уже, но дело в том, что дополнение по периодам, работает когда есть обороты, а когда оборота нет, то и остаток не выводится, или нет?
13 AntonH851
 
04.10.12
10:47
Написал запрос как в http://infostart.ru/public/101321/, но не знаю, то ли это что мне нужно или нет...
14 DrShad
 
04.10.12
10:49
а результат глянуть религия не позволяет?
15 AntonH851
 
04.10.12
11:27
(14) Да вот гляжу результат, пока немного не то
16 AntonH851
 
04.10.12
11:56
Блин, не все так просто...
Дело в том, что мне собственно не остатки нужны а просрочка, она определяется как разница между дебетовым сальдо и кредитовым для тех записей у которых дата документа расчета больше отсрочки, и отсрочка определяется относительно даты передаваемой в качестве параметра в запрос, получается что у меня на конец периода отсрочка правильно считается, а по дням некорректно, потому, что дата отсчета отсрочки таже,
17 DrShad
 
04.10.12
11:57
(16) ну поздравляю
18 AntonH851
 
04.10.12
12:01
(16) Спасибо)) Есть еще идейка, после обеда попробую, сначала остатки получить, потом считать отсрочку для каждой даты в цикле выполняя остальные запросы из временной таблицы...
19 AntonH851
 
04.10.12
15:09
Блин, вот засада
20 AntonH851
 
04.10.12
15:17
Все бы хорошо... но стандартный запрос на остатки по дням тут не очень корректно работает
21 AntonH851
 
04.10.12
15:39
Походу я сам не понимаю, что от меня хотят, надо уточнять
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший