Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запрос к РегистрНакопления.ВзаиморасчетыСКонтрагентами
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Дарина
Совсем запуталась: мне нужно получить результат, как формировался долг на конкретную дату по периодам, т.е.если долг 50, то он в заданные периоды формировался, наприм, 10+20+10+10. Надо показать так: 50 40 30 10.
Выбираю СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовКонечныйОстаток) из РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты. Не то. Подскажите, пожалуйста, как надо выбрать.
pablo
А добавьте в результат группировку по периоду с детализацией в день
Дарина
Цитата(pablo @ 22.06.12, 10:33) необходимо зарегистрироваться для просмотра ссылки
А добавьте в результат группировку по периоду с детализацией в день


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


извините, что текстом отправилось.
Вот так? по периоду с детализацией в день?


 ! 

Ну. Ну. Ну!
 
pablo
|    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.Владелец КАК ДоговорКонтрагентаВладелец,
              |    СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК СуммаВзаиморасчетовКонечныйОстаток,
              |    ВзаиморасчетыСКонтрагентамиОбороты.Период КАК Период
              |ПОМЕСТИТЬ П
              |ИЗ
              |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&д1, &д0, День, , ДоговорКонтрагента.Владелец В (&Контрагенты)) КАК ВзаиморасчетыСКонтрагентамиОбороты
              |
              |СГРУППИРОВАТЬ ПО
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.Владелец,
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
              |    ВзаиморасчетыСКонтрагентамиОбороты.Период
              |;
Дарина
Да, так и написала, спасибо. Не знаю, как "количество" сформировалось.
Получила таблицу, посмотрела, но пока не понимаю, зачем "период".
pablo
Во-первых, каковы значения д0 и д1?
Во-вторых, части долга сформировались за один день или за несколько?
Дарина
Цитата(pablo @ 22.06.12, 13:09) необходимо зарегистрироваться для просмотра ссылки
Во-первых, каковы значения д0 и д1?
Во-вторых, части долга сформировались за один день или за несколько?

д0=31.03.2011 0:00:00
д1=01.03.2011 0:00:00

результат запроса, без ПОМЕСТИТЬ

ДоговорКонтрагента ДоговорКонтрагентаВладелец СуммаВзаиморасчетовКонечныйОстаток Период
Торговля товарами| АРМА -2 431 760 28.03.2011 0:00:00
Торговля товарами| АРМА -2 431 760 31.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 15 977 194,24 01.03.2011 23:59:59
ТО (сервис)|0098 с покупателем услуг АРМА 16 271 337,24 03.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 16 273 797,24 09.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 16 698 291,24 11.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 17 128 059,24 14.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 6 966 997,24 15.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 10 434 853,24 16.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 11 585 685,24 17.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 11 888 895,24 18.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 11 894 125,24 21.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 12 631 093,24 22.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 13 407 385,24 23.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 14 093 856,24 24.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 16 854 791,24 25.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 17 734 417,24 26.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 17 830 722,24 29.03.2011 0:00:00
ТО (сервис)|0098 с покупателем услуг АРМА 18 218 579,24 31.03.2011 0:00:00
Извлечение ДМ №930/0098 АРМА -654 074 01.03.2011 23:59:59
Извлечение ДМ №930/0098 АРМА -668 810 15.03.2011 0:00:00
Извлечение ДМ №930/0098 АРМА -668 810 31.03.2011 0:00:00
0098 ДГМС поставщиком АРМА -280 297 01.03.2011 23:59:59
0098 ДГМС поставщиком АРМА -280 297 31.03.2011 0:00:00

Vofka, так можно выкладывать ТЗ? smile.gif


 i 

Учимся вставлять картинки по правилам.
 
Vofka
Цитата(Дарина @ 22.06.12, 14:26) необходимо зарегистрироваться для просмотра ссылки
Vofka, так можно выкладывать ТЗ?

Дарина, ознакомьтесь с правилами, тогда много вопросов исчезнут wink.gif
pablo
Ну вот, теперь добавьте условие на отрицательность значения суммируемого поля. Или Вас в этих результатах что-то другое не устраивает?
Дарина
Цитата(pablo @ 22.06.12, 14:51) необходимо зарегистрироваться для просмотра ссылки
Ну вот, теперь добавьте условие на отрицательность значения суммируемого поля. Или Вас в этих результатах что-то другое не устраивает?


Извините за настырность, не поняла последнее условие. Пока не совсем понятно, как без ТЗ получить эти результаты. unsure.gif
pablo
|    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.Владелец КАК ДоговорКонтрагентаВладелец,
              |    СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК СуммаВзаиморасчетовКонечныйОстаток,
              |    ВзаиморасчетыСКонтрагентамиОбороты.Период КАК Период
              |ПОМЕСТИТЬ П
              |ИЗ
              |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&д1, &д0, День, , ДоговорКонтрагента.Владелец В (&Контрагенты)) КАК ВзаиморасчетыСКонтрагентамиОбороты
              |Где ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовКонечныйОстаток<0  
              |СГРУППИРОВАТЬ ПО
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.Владелец,
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента,
              |    ВзаиморасчетыСКонтрагентамиОбороты.Период
              |;

Как то так.
Цитата
Пока не совсем понятно, как без ТЗ получить эти результаты.

Мне пока не понятно, какие результаты Вы надеетесь получить.
Дарина
Pablo, извините, постараюсь яснее изложить мою проблемку.
Вот мой запрос, я в нем не уверена.
д0-д1 – интервал, в кот. пытаюсь найти КонечныеОстатки долга 0-30дней,
д1-д2 – 30-60 дн, д2-д3 – 60-90 дн.

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

А вот результат этого запросика:


 ! 

Результата не будет. Нужно читать правила форума.
 


Помогите, пожалуйста, разобраться.
В результате мне нужно получить, чтобы СуммаВзаиморасчетовКонечныйОстаток(0-30) была больше СуммаВзаиморасчетовКонечныйОстаток1(30-60),СуммаВзаиморасчетовКонечныйОстаток2(60-90).
Т.е.с наростанием, как образовался долг контрагента на текущую дату по периодам появления долга.

Вот как я находила остаток долга через ТЗ:

- выборкой из рез.запроса выбираю все документы по данному договору и контрагенту и записываю «суммы» в ТЗ:
докоплаты и докотгрузки, соответственно по оплате и отгрузке контрагентами;
- потом в цикле перебираю эти ТЗ, удаляя строки, как только документ по отгрузке закрыт документом оплаты;

Елки-палки, что я опять не так вставила blush.gif

ну, вот ведь "коды форума"
""

logist
/офф
Цитата(Дарина @ 26.06.12, 10:53) необходимо зарегистрироваться для просмотра ссылки

Вам на форум окулистов наверное.
Дарина


Извините, исправлюсь

pablo
Дарина, Вы нарисовали то, что получилось, но не нарисовали, что именно хотите.
Могу только предполагать, что Вам надо каждую полученную на рисунке строку разбить по периодам появления долга.
ТОгда поле период нужно получать из каждого подзапроса и тащить их все до самого конца, как я вам и писал.
Дарина
Pablo, вот такую таблицу надо вывести на печать


Т.е. по договору, напр, -"ТО (сервис)|0098 с покупателем услуг" на сегодн.дату есть долг=18218579,24; надо проследить, как он образовался.
От текущ.даты в промежутке 60-90, раньше не интересует, уже был долг или образовался в данном промежутке 15977194,24;
в промежутке 30-60 - он не изменился 15977194,24,
а в 0-30 - он увеличился до 18218579,24.


pumbaE
Цитата(Дарина @ 26.06.12, 14:52) необходимо зарегистрироваться для просмотра ссылки
Т.е. по договору, напр, -"ТО (сервис)|0098 с покупателем услуг" на сегодн.дату есть долг=18218579,24; надо проследить, как он образовался.
От текущ.даты в промежутке 60-90, раньше не интересует, уже был долг или образовался в данном промежутке 15977194,24;
в промежутке 30-60 - он не изменился 15977194,24,
а в 0-30 - он увеличился до 18218579,24.

Для получения таких данных решение задачи есть. Название решения задачи "Срез последних на каждую дату" смотрите внимательно сюда необходимо зарегистрироваться для просмотра ссылки.

p.s.: я пока понял эти запросы прошло 2 дня, но это было давно и неправда.
Дарина
Цитата(pumbaE @ 26.06.12, 16:39) необходимо зарегистрироваться для просмотра ссылки
Для получения таких данных решение задачи есть. Название решения задачи "Срез последних на каждую дату" смотрите внимательно сюда необходимо зарегистрироваться для просмотра ссылки.

p.s.: я пока понял эти запросы прошло 2 дня, но это было давно и неправда.


Спасибо за сочувствие, но "срез последних"-это точно не мой случай... mellow.gif - это ведь РегНакопления. happy.gif
pumbaE
Цитата(Дарина @ 26.06.12, 16:49) необходимо зарегистрироваться для просмотра ссылки
Спасибо за сочувствие, но "срез последних"-это точно не мой случай... mellow.gif - это ведь РегНакопления. happy.gif

поверьте это ваш случай, срезом поселдних назвали так, потому что в первой его реализации обращались с регистру сведений Курсы валют , т.к. там были даты на каждый день, сейчас чаще всего используется Регламентный производственный календарь или же в запросе генеряться даты.
Это ваш случай, вам надо получить на каждую дату долг по каждому контрагенту/договору.
pablo
Попробуйте так
ВЫБРАТЬ
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.Владелец КАК ДоговорКонтрагентаВладелец,
              |    СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК СуммаВзаиморасчетовКонечныйОстаток
              |ПОМЕСТИТЬ П
              |ИЗ
              |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&д1, &д0,ПЕРИОД, , ДоговорКонтрагента.Владелец В (&Контрагенты))  КАК ВзаиморасчетыСКонтрагентамиОбороты
              |СГРУППИРОВАТЬ ПО
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента.Владелец,
              |    ВзаиморасчетыСКонтрагентамиОбороты.ДоговорКонтрагента
              |;

Хотя запрос вроде правильно составлен. Я бы для начала проверил часть запроса за интервал 60-90 дней без группировок, чтобы "на пальцах" разобрать, из чего появляется неправильная сумма.
Дарина
Pablo, я понимаю, это ведь правильные суммы. Я ведь беру конечный остаток, а, может, он и есть этот остаток там в 60-90- больше, чем в предыдущем периоде,
а уже в 30-60 он уменьшается засчет оплаты за товар. Может, мне стоит брать Обороты sad.gif
pablo
Если суммы правильные, тогда проблемы в логике задания. Меня весьма удивляет вторая красная сумма, по извлечению. В любом случае, без детального рассмотрения записей не обойтись.
Все-таки посмотрите детально "неправильный" период и определите строчки, которые следует исключить из результатов запроса. После этого их обобщить и разом не включать в запрос.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.