Имя: Пароль:
1C
1С v8
СКД нужно вывести список дат в одной ячейке
0 AlexKZT
 
25.03.21
10:29
Здравствуйте!

Есть отчет по проблемной задолженности, никак не получается вывести "дату пролонгации" в одну ячейку.
Примерно отчет выглядит так:

Проблемная задолженность | Контрагент | Дата образования (по договору) | Дата окончания (первоначально по договору) | Дата пролонгации
Да                       | ТОО АЯК    | 01.01.21                       | 31.01.21                                   | 28.02.21
Да                       | ТОО АЯК    | 01.01.21                       | 31.01.21                                   | 31.03.21
Да                       | ТОО АЯК    | 01.01.21                       | 31.01.21                                   | 15.04.21

а нужно:

Проблемная задолженность | Контрагент | Дата образования (по договору) | Дата окончания (первоначально по договору) | Дата пролонгации
Да                       | ТОО АЯК    | 01.01.21                       | 31.01.21                                   | 28.02.21
                         |            |                                |                                            | 31.03.21
                         |            |                                |                                            | 15.04.21

т.е. чтобы строки не дублировались и данные "даты пролонгации" собирались в одну ячейку.
1 AlexKZT
 
25.03.21
10:30
Текст запроса:


ВЫБРАТЬ
    ТиповойОстатки.Счет,
    ТиповойОстатки.Субконто1 КАК Контрагент,
    ТиповойОстатки.Субконто2 КАК Договор,
    ТиповойОстатки.Субконто3 КАК ТипОперации,
    ТиповойОстатки.СуммаОстаток,
    ТиповойОстатки.СуммаОстатокДт КАК СуммаОстатокДт_СуммаДолгаПоУчетнойЦене,
    ТиповойОстатки.Субконто2.НомерДоговора КАК НомерДоговора,
    ТиповойОстатки.Субконто2.ДатаНачалаДействияДоговора КАК ДатаНачалаДействияДоговора,
    ТиповойОстатки.Субконто2.ДатаОкончанияДействияДоговора КАК ДатаОкончанияДействияДоговора
ПОМЕСТИТЬ ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене
ИЗ
    РегистрБухгалтерии.Типовой.Остатки(&ДатаОтчета, Счет = &Счет1711, , Субконто3 В ИЕРАРХИИ (&ТипОперацииФорвард)) КАК ТиповойОстатки

СГРУППИРОВАТЬ ПО
    ТиповойОстатки.Субконто2,
    ТиповойОстатки.Счет,
    ТиповойОстатки.Субконто1,
    ТиповойОстатки.Субконто3,
    ТиповойОстатки.СуммаОстаток,
    ТиповойОстатки.СуммаОстатокДт,
    ТиповойОстатки.Субконто2.НомерДоговора,
    ТиповойОстатки.Субконто2.ДатаНачалаДействияДоговора,
    ТиповойОстатки.Субконто2.ДатаОкончанияДействияДоговора
;

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

СГРУППИРОВАТЬ ПО
    дог_ДоговорыИДополнительныеСоглашения.Договор.Владелец,
    дог_ДоговорыИДополнительныеСоглашения.Организация,
    дог_ДоговорыИДополнительныеСоглашения.Договор,
    дог_ДоговорыИДополнительныеСоглашения.ДатаОкончания,
    дог_ДоговорыИДополнительныеСоглашения.Регистратор,
    дог_ДоговорыИДополнительныеСоглашения.ДопСоглашение
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    бит_ПараметрыРасчетаПоДоговорам.Период,
    бит_ПараметрыРасчетаПоДоговорам.СтавкаВознаграждения,
    бит_ПараметрыРасчетаПоДоговорам.СтавкаШтрафа,
    бит_ПараметрыРасчетаПоДоговорам.СтавкаПени
ПОМЕСТИТЬ ВТ_ВсеПараметрыРасчетаПоДоговорам
ИЗ
    РегистрСведений.бит_ПараметрыРасчетаПоДоговорам КАК бит_ПараметрыРасчетаПоДоговорам
ГДЕ
    бит_ПараметрыРасчетаПоДоговорам.ТипДоговора = &ТипДоговора_ТоварныйКредит
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    дог_ДополнительныеПараметрыДоговоров.Период,
    дог_ДополнительныеПараметрыДоговоров.Регистратор,
    дог_ДополнительныеПараметрыДоговоров.Договор,
    дог_ДополнительныеПараметрыДоговоров.ДополнительныйПараметр КАК Объем,
    дог_ДополнительныеПараметрыДоговоров.ЗначениеДополнительногоПараметра КАК ЗначениеОбъема
ПОМЕСТИТЬ ВТ_ДанныеПоТоварнымКредитам_Объем
ИЗ
    РегистрСведений.дог_ДополнительныеПараметрыДоговоров КАК дог_ДополнительныеПараметрыДоговоров
ГДЕ
    дог_ДополнительныеПараметрыДоговоров.ДополнительныйПараметр = &Объем
    И дог_ДополнительныеПараметрыДоговоров.Договор В
            (ВЫБРАТЬ
                ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.Договор
            ИЗ
                ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене КАК ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    дог_ДополнительныеПараметрыДоговоров.Период,
    дог_ДополнительныеПараметрыДоговоров.Регистратор,
    дог_ДополнительныеПараметрыДоговоров.Договор,
    дог_ДополнительныеПараметрыДоговоров.ДополнительныйПараметр КАК Цена,
    дог_ДополнительныеПараметрыДоговоров.ЗначениеДополнительногоПараметра КАК ЗначениеЦены
ПОМЕСТИТЬ ВТ_ДанныеПоТоварнымКредитам_Цена
ИЗ
    РегистрСведений.дог_ДополнительныеПараметрыДоговоров КАК дог_ДополнительныеПараметрыДоговоров
ГДЕ
    дог_ДополнительныеПараметрыДоговоров.ДополнительныйПараметр = &Цена
    И дог_ДополнительныеПараметрыДоговоров.Договор В
            (ВЫБРАТЬ
                ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.Договор
            ИЗ
                ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене КАК ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.СуммаОстатокДт_СуммаДолгаПоУчетнойЦене,
    ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.Контрагент,
    ВТ_ВсеПараметрыРасчетаПоДоговорам.СтавкаШтрафа,
    ВТ_ВсеПараметрыРасчетаПоДоговорам.СтавкаПени,
    ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.ТипОперации,
    ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.НомерДоговора,
    ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.ДатаНачалаДействияДоговора,
    ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.ДатаОкончанияДействияДоговора,
    ВЫРАЗИТЬ(ВТ_ДанныеПоТоварнымКредитам_Объем.ЗначениеОбъема КАК ЧИСЛО(15, 2)) КАК Объем,
    РАЗНОСТЬДАТ(ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.ДатаОкончанияДействияДоговора, &ДатаОтчета, ДЕНЬ) КАК КоличествоДнейПросрочки,
    ВЫРАЗИТЬ(ВТ_ДанныеПоТоварнымКредитам_Цена.ЗначениеЦены КАК ЧИСЛО(15, 2)) КАК Цена,
    ВТ_ВсеДатыПролонгации.ДатаПролонгации
ПОМЕСТИТЬ СоединенныеТаблицы
ИЗ
    ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене КАК ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДанныеПоТоварнымКредитам_Объем КАК ВТ_ДанныеПоТоварнымКредитам_Объем
        ПО ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.Договор = ВТ_ДанныеПоТоварнымКредитам_Объем.Договор
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДанныеПоТоварнымКредитам_Цена КАК ВТ_ДанныеПоТоварнымКредитам_Цена
        ПО ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.Договор = ВТ_ДанныеПоТоварнымКредитам_Цена.Договор
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ВсеДатыПролонгации КАК ВТ_ВсеДатыПролонгации
        ПО ВТ_ОстатокНа1273_СуммаДолгаПоУчетнойЦене.Договор = ВТ_ВсеДатыПролонгации.Договор,
    ВТ_ВсеПараметрыРасчетаПоДоговорам КАК ВТ_ВсеПараметрыРасчетаПоДоговорам
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СоединенныеТаблицы.СуммаОстатокДт_СуммаДолгаПоУчетнойЦене,
    СоединенныеТаблицы.Контрагент,
    СоединенныеТаблицы.ТипОперации КАК ПричинаОбразованияЗадолженности,
    СоединенныеТаблицы.НомерДоговора,
    СоединенныеТаблицы.ДатаНачалаДействияДоговора,
    СоединенныеТаблицы.ДатаОкончанияДействияДоговора,
    СоединенныеТаблицы.Объем,
    СоединенныеТаблицы.КоличествоДнейПросрочки,
    ВЫБОР
        КОГДА СоединенныеТаблицы.КоличествоДнейПросрочки >= 90
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ПроблемнаяЗадолженность,
    СоединенныеТаблицы.СтавкаШтрафа,
    СоединенныеТаблицы.Цена,
    ВЫБОР
        КОГДА СоединенныеТаблицы.КоличествоДнейПросрочки > 30
            ТОГДА СоединенныеТаблицы.Объем * СоединенныеТаблицы.Цена * СоединенныеТаблицы.СтавкаШтрафа
        ИНАЧЕ 0
    КОНЕЦ КАК ШтрафНаОсновнойДолг,
    ВЫБОР
        КОГДА СоединенныеТаблицы.КоличествоДнейПросрочки <= 30
            ТОГДА СоединенныеТаблицы.КоличествоДнейПросрочки * СоединенныеТаблицы.Объем * СоединенныеТаблицы.Цена * СоединенныеТаблицы.СтавкаПени
        КОГДА СоединенныеТаблицы.КоличествоДнейПросрочки > 30
            ТОГДА 30 * СоединенныеТаблицы.Объем * СоединенныеТаблицы.Цена * СоединенныеТаблицы.СтавкаПени
        ИНАЧЕ 0
    КОНЕЦ КАК ПеняНаОсновнойДолг,
    СоединенныеТаблицы.ДатаПролонгации
ИЗ
    СоединенныеТаблицы КАК СоединенныеТаблицы
2 AlexKZT
 
25.03.21
10:34
Перепробовал все возможные варианты, создал ресурс,
пробовал через СоединитьСтроки и Массив

Подскажите куда копать..
3 Chameleon1980
 
25.03.21
10:37
настрой правильно схему, зачем тебе в одной ячейке?
посмотри в ВычислитьЗначениеСГруппировкойВМассив
у тех, кто хотел получить правильный итог по группировкам при неправильном использовании этой функции
именно в одну колонку выводились ресурсы по группировке
4 Chameleon1980
 
25.03.21
10:37
колонку=ячейку
5 toypaul
 
гуру
25.03.21
10:51
ДатаПролонгации = Массив(ДатаПролонгации) на закладке ресурсы
6 toypaul
 
гуру
25.03.21
10:52
"Подскажите куда копать.." научиться правильно задавать вопросы https://wiki.programstore.ru/kak-pravilno-zadavat-vopros-svyazannyj-s-podsistemoj-skd-v-1s/

в картинках а не этот ужас из начального сообщения
7 AlexKZT
 
25.03.21
10:53
т.к. договор может пролонгироваться несколько раз должны выводиться все даты в одной ячейке.
Мне не нужно выводить никаких итогов, только в детальных записях,
т.е. сейчас отчет выводит так:

Контрагент  Дата пролонгации
  ТОО 1        01.01.21
  ТОО 1        10.01.21
  ТОО 2        01.01.21
  ТОО 2        10.01.21
  ТОО 2        31.01.21


а нужно:

Контрагент  Дата пролонгации
  ТОО 1        01.01.21, 10.01.21
  ТОО 2        01.01.21, 10.01.21, 31.01.21
8 AlexKZT
 
25.03.21
11:12
toypaul "ДатаПролонгации = Массив(ДатаПролонгации) на закладке ресурсы"

пробовал, так же пробовал СоединитьСтроки(ДатаПролонгации, ",")

получается вот такая белиберда:

https://disk.yandex.ru/i/2QN0UvwfCsjlhQ
9 toypaul
 
гуру
25.03.21
11:15
не буду давать советов. а то как обычно начнется, а у меня не так, а мне не подходит :)

Массив(ДатаПролонгации) или СоединитьСтроки единственное (почти) нормальное решение. к нему надо приложить руки и мозги

по картинке из (7) надо добавить группировку по контрагенту. картинка из (8) "говорит" что такой группировки нет
10 AlexKZT
 
25.03.21
11:45
Вот что получилось после того как я сделал группировку по контрагенту:

https://disk.yandex.ru/i/SB8j6nxqJN_SSw

даты собрались в группировке, а нужно в разрезе в детальных записей.


вот все скрины настроек:
https://disk.yandex.ru/i/pIcrF1jGHr2zkA
https://disk.yandex.ru/i/j6OCEiQ5jPoWGA
11 polosov
 
25.03.21
11:51
12 toypaul
 
гуру
25.03.21
11:52
(10) один шаг до правильного результата :)
13 AlexKZT
 
25.03.21
17:10
Всем большое спасибо за советы...
А есть еще идеи? Вопрос еще открыт..
14 dka80
 
25.03.21
17:21
В группировке Контрагент у тебя должны быть указаны все поля, кроме МассивДат
15 Chameleon1980
 
25.03.21
17:27
все поля выбери в корне схемы
16 Chameleon1980
 
25.03.21
17:27
+ убери детальные
оставь группировку контрагент
17 Chameleon1980
 
25.03.21
17:28
+ включи голову просто