Система компоновки данных
Управляемые формы
Государственные, бюджетные структуры
Внешний отчет (ert,erf)
Отчеты и формы
Здравствуйте дорогие форумчане! Делаю отчет по анализу поступлений денежных средств.
Застопился на решении задачи сравнения данных двух периодов.
Логика какая:
- Имеется периодический регистр сведений с данными денежных поступлений (Срез первых/СрезПоследних)
- Данные в регистре сведений в основном строковые Тип(Строка) - "ЮрЛицо/НазваниеДока/Номер/Инн" Есть Ресурс типа (Число) - "Сумма" И реквизит типа (Дата) - "Дата поступления"
- Нужно выбрать данные и при отборе по периоду хочу сравнить с таким же периодом -1 Год (Минус один год)
Например: Указываю отбор: 01.03.2021-31.07.2021 и отчет должен сравнить данные указанного периода с данными за 01.03.2020-31.07.2020.
Вопрос! Лучше использовать таблицы "Срез первых" и "Срез последних" или же напрямую колдовать над регистром манипуляцией "ГОД -1"
Как лучше поступить, есть ли уже у кого нибудь наработки подобных отборов и отчетов?
Прошу писать наводящие вопросы и примеры (Не подкалывайте если что, сижу туплю).
Спасибо!
Застопился на решении задачи сравнения данных двух периодов.
Логика какая:
- Имеется периодический регистр сведений с данными денежных поступлений (Срез первых/СрезПоследних)
- Данные в регистре сведений в основном строковые Тип(Строка) - "ЮрЛицо/НазваниеДока/Номер/Инн" Есть Ресурс типа (Число) - "Сумма" И реквизит типа (Дата) - "Дата поступления"
- Нужно выбрать данные и при отборе по периоду хочу сравнить с таким же периодом -1 Год (Минус один год)
Например: Указываю отбор: 01.03.2021-31.07.2021 и отчет должен сравнить данные указанного периода с данными за 01.03.2020-31.07.2020.
Вопрос! Лучше использовать таблицы "Срез первых" и "Срез последних" или же напрямую колдовать над регистром манипуляцией "ГОД -1"
Как лучше поступить, есть ли уже у кого нибудь наработки подобных отборов и отчетов?
Прошу писать наводящие вопросы и примеры (Не подкалывайте если что, сижу туплю).
Спасибо!
По теме из базы знаний
- Всякие полезности
- Redmine для управления ИТ: практический опыт обширного внедрения opensource-системы
- Конфигурация Flowcon: Набор инструментов для управления задачами, проектами и бизнесом в 1С
- Поддержка пользователей [Alt+S] (подключаемое расширение)
- Сравнение парсера журнала регистрации Vector и ibcmd
Найденные решения
МОЖЕТ КОМУ ПРИГОДИТСЯ ГОТОВЫЙ ИТОГОВЫЙ ЗАПРОС:
Всем спасибо кто хотел помочь!
ВЫБРАТЬ
Поступления.Период КАК Период1,
Поступления.Сумма КАК Сумма1,
Поступления.НомерДок КАК НомерДок1,
Поступления.ДатаДок КАК ДатаДок1,
ВЫБОР
КОГДА Поступления.ЮрЛицо ПОДОБНО ""
ТОГДА "Справка ФК"
ИНАЧЕ Поступления.ЮрЛицо
КОНЕЦ КАК ЮрЛицо,
Поступления.ЮрЛицоИНН КАК ЮрЛицоИНН,
Поступления.ЮрЛицоКПП КАК ЮрЛицоКПП,
Поступления.КБК КАК КБК,
Поступления.КодОКАТО КАК КодОКАТО,
Поступления.Месяц КАК ММесяц1
ПОМЕСТИТЬ ДанныеПрошлогоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних КАК Поступления
ГДЕ
Поступления.ДатаДок МЕЖДУ ДОБАВИТЬКДАТЕ(&ОтчНачалоПериода, ГОД, -1) И ДОБАВИТЬКДАТЕ(&ОтчКонецПериода, ГОД, -1)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Поступления.Период КАК Период2,
Поступления.Сумма КАК Сумма2,
Поступления.НомерДок КАК НомерДок2,
Поступления.ДатаДок КАК ДатаДок2,
ВЫБОР
КОГДА Поступления.ЮрЛицо ПОДОБНО ""
ТОГДА "Справка ФК"
ИНАЧЕ Поступления.ЮрЛицо
КОНЕЦ КАК ЮрЛицо,
Поступления.ЮрЛицоИНН КАК ЮрЛицоИНН,
Поступления.ЮрЛицоКПП КАК ЮрЛицоКПП,
Поступления.КБК КАК КБК,
Поступления.КодОКАТО КАК КодОКАТО,
Поступления.Месяц КАК ММесяц2
ПОМЕСТИТЬ ДанныеОсновногоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних КАК Поступления
ГДЕ
Поступления.ДатаДок МЕЖДУ &ОтчНачалоПериода И &ОтчКонецПериода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ДанныеОсновногоПериода.Период2 КАК ПериодТек,
ЕСТЬNULL(ДанныеОсновногоПериода.Сумма2, 0) КАК СуммаТек,
ДанныеОсновногоПериода.НомерДок2 КАК НомерДокТек,
ДанныеОсновногоПериода.ДатаДок2 КАК ДатаДокТек,
ДанныеОсновногоПериода.ММесяц2 КАК ММесяцТек,
ДанныеОсновногоПериода.ЮрЛицо КАК ЮрЛицо,
ДанныеОсновногоПериода.ЮрЛицоИНН КАК ЮрЛицоИНН,
ДанныеОсновногоПериода.ЮрЛицоКПП КАК ЮрЛицоКПП,
ДанныеОсновногоПериода.КБК КАК КБК,
ДанныеОсновногоПериода.КодОКАТО КАК КодОКАТО,
NULL КАК ПериодПГ,
NULL КАК СуммаПГ,
NULL КАК НомерДокПГ,
NULL КАК ДатаДокПГ,
NULL КАК ММесяцПГ
ИЗ
ДанныеОсновногоПериода КАК ДанныеОсновногоПериода
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
NULL,
NULL,
NULL,
NULL,
NULL,
ЕСТЬNULL(ДанныеПрошлогоПериода.ЮрЛицо, NULL),
ДанныеПрошлогоПериода.ЮрЛицоИНН,
ДанныеПрошлогоПериода.ЮрЛицоКПП,
ДанныеПрошлогоПериода.КБК,
ДанныеПрошлогоПериода.КодОКАТО,
ДанныеПрошлогоПериода.Период1,
ЕСТЬNULL(ДанныеПрошлогоПериода.Сумма1, 0),
ДанныеПрошлогоПериода.НомерДок1,
ДанныеПрошлогоПериода.ДатаДок1,
ДанныеПрошлогоПериода.ММесяц1
ИЗ
ДанныеПрошлогоПериода КАК ДанныеПрошлогоПериода
ПоказатьВсем спасибо кто хотел помочь!
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)Пробую таким образом:
Но ругается на "Неверные параметры "РегистрСведений.Поступления.СрезПоследних, 1"РегистрСведений.Поступления.СрезПоследних(П, ОтчКонецПериода""...
ВЫБРАТЬ
ПоступленияСрезПоследних.Период КАК Период,
ПоступленияСрезПоследних.Организация КАК Организация,
ПоступленияСрезПоследних.УИ КАК УИ,
ПоступленияСрезПоследних.Сумма КАК Сумма,
ПоступленияСрезПоследних.ВидДок КАК ВидДок,
ПоступленияСрезПоследних.НомерДок КАК НомерДок,
ПоступленияСрезПоследних.ДатаДок КАК ДатаДок,
ПоступленияСрезПоследних.ЮрЛицо КАК ЮрЛицо,
ПоступленияСрезПоследних.ЮрЛицоИНН КАК ЮрЛицоИНН,
ПоступленияСрезПоследних.ЮрЛицоКПП КАК ЮрЛицоКПП,
ПоступленияСрезПоследних.АдмИНН КАК АдмИНН,
ПоступленияСрезПоследних.АдмКПП КАК АдмКПП,
ПоступленияСрезПоследних.ТипКБК КАК ТипКБК,
ПоступленияСрезПоследних.КБК КАК КБК,
ПоступленияСрезПоследних.КодОКАТО КАК КодОКАТО,
ПоступленияСрезПоследних.УИН КАК УИН,
ПоступленияСрезПоследних.Примечание КАК Примечание,
ПоступленияСрезПоследних.Ошибки КАК Ошибки,
ПоступленияСрезПоследних.СсылкаИНН КАК СсылкаИНН,
ПоступленияСрезПоследних.Месяц КАК ММесяц
ПОМЕСТИТЬ ДанныеПрошлогоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних({(ДОБАВИТЬКДАТЕ(&ОтчНачалоПериода, ГОД, -1))}, {(ДОБАВИТЬКДАТЕ(&ОтчКонецПериода, ГОД, -1))}) КАК ПоступленияСрезПоследних
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ПоступленияСрезПоследних.Период КАК Период,
ПоступленияСрезПоследних.Организация КАК Организация,
ПоступленияСрезПоследних.УИ КАК УИ,
ПоступленияСрезПоследних.Сумма КАК Сумма,
ПоступленияСрезПоследних.ВидДок КАК ВидДок,
ПоступленияСрезПоследних.НомерДок КАК НомерДок,
ПоступленияСрезПоследних.ДатаДок КАК ДатаДок,
ПоступленияСрезПоследних.ЮрЛицо КАК ЮрЛицо,
ПоступленияСрезПоследних.ЮрЛицоИНН КАК ЮрЛицоИНН,
ПоступленияСрезПоследних.ЮрЛицоКПП КАК ЮрЛицоКПП,
ПоступленияСрезПоследних.АдмИНН КАК АдмИНН,
ПоступленияСрезПоследних.АдмКПП КАК АдмКПП,
ПоступленияСрезПоследних.ТипКБК КАК ТипКБК,
ПоступленияСрезПоследних.КБК КАК КБК,
ПоступленияСрезПоследних.КодОКАТО КАК КодОКАТО,
ПоступленияСрезПоследних.УИН КАК УИН,
ПоступленияСрезПоследних.Примечание КАК Примечание,
ПоступленияСрезПоследних.Ошибки КАК Ошибки,
ПоступленияСрезПоследних.СсылкаИНН КАК СсылкаИНН,
ПоступленияСрезПоследних.Месяц КАК ММесяц
ИЗ
РегистрСведений.Поступления.СрезПоследних(&ОтчНачалоПериода, &ОтчКонецПериода) КАК ПоступленияСрезПоследних
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ДанныеПрошлогоГода.Период,
ДанныеПрошлогоГода.Организация,
ДанныеПрошлогоГода.УИ,
ДанныеПрошлогоГода.Сумма,
ДанныеПрошлогоГода.ВидДок,
ДанныеПрошлогоГода.НомерДок,
ДанныеПрошлогоГода.ДатаДок,
ДанныеПрошлогоГода.ЮрЛицо,
ДанныеПрошлогоГода.ЮрЛицоИНН,
ДанныеПрошлогоГода.ЮрЛицоКПП,
ДанныеПрошлогоГода.АдмИНН,
ДанныеПрошлогоГода.АдмКПП,
ДанныеПрошлогоГода.ТипКБК,
ДанныеПрошлогоГода.КБК,
ДанныеПрошлогоГода.КодОКАТО,
ДанныеПрошлогоГода.УИН,
ДанныеПрошлогоГода.Примечание,
ДанныеПрошлогоГода.Ошибки,
ДанныеПрошлогоГода.СсылкаИНН,
ДанныеПрошлогоГода.ММесяц
ИЗ
ДанныеПрошлогоПериода КАК ДанныеПрошлогоГода
ПоказатьНо ругается на "Неверные параметры "РегистрСведений.Поступления.СрезПоследних, 1"РегистрСведений.Поступления.СрезПоследних(П, ОтчКонецПериода""...
(8) Пока сделал таким образом, но выводит данные только прошлого периода:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоступленияСрезПоследних.Период КАК Период1,
ПоступленияСрезПоследних.Сумма КАК Сумма1,
ПоступленияСрезПоследних.НомерДок КАК НомерДок1,
ПоступленияСрезПоследних.ДатаДок КАК ДатаДок1,
ПоступленияСрезПоследних.ЮрЛицо КАК ЮрЛицо,
ПоступленияСрезПоследних.ЮрЛицоИНН КАК ЮрЛицоИНН,
ПоступленияСрезПоследних.ЮрЛицоКПП КАК ЮрЛицоКПП,
ПоступленияСрезПоследних.КБК КАК КБК,
ПоступленияСрезПоследних.КодОКАТО КАК КодОКАТО,
ПоступленияСрезПоследних.Месяц КАК ММесяц1
ПОМЕСТИТЬ ДанныеПрошлогоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних({(ДОБАВИТЬКДАТЕ(&ОтчНачалоПериода, ГОД, -1))}, {(ДОБАВИТЬКДАТЕ(&ОтчКонецПериода, ГОД, -1))}) КАК ПоступленияСрезПоследних
ГДЕ
ПоступленияСрезПоследних.ДатаДок МЕЖДУ ДОБАВИТЬКДАТЕ(&ОтчНачалоПериода, ГОД, -1) И ДОБАВИТЬКДАТЕ(&ОтчКонецПериода, ГОД, -1)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоступленияСрезПоследних.Период КАК Период2,
ПоступленияСрезПоследних.Сумма КАК Сумма2,
ПоступленияСрезПоследних.НомерДок КАК НомерДок2,
ПоступленияСрезПоследних.ДатаДок КАК ДатаДок2,
ПоступленияСрезПоследних.ЮрЛицо КАК ЮрЛицо,
ПоступленияСрезПоследних.ЮрЛицоИНН КАК ЮрЛицоИНН,
ПоступленияСрезПоследних.ЮрЛицоКПП КАК ЮрЛицоКПП,
ПоступленияСрезПоследних.КБК КАК КБК,
ПоступленияСрезПоследних.КодОКАТО КАК КодОКАТО,
ПоступленияСрезПоследних.Месяц КАК ММесяц2
ПОМЕСТИТЬ ДанныеОсновногоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних({(&ОтчНачалоПериода)}, {(&ОтчКонецПериода)}) КАК ПоступленияСрезПоследних
ГДЕ
ПоступленияСрезПоследних.ДатаДок МЕЖДУ &ОтчНачалоПериода И &ОтчКонецПериода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ДанныеОсновногоПериода.Период2 КАК ПериодТек,
ДанныеОсновногоПериода.Сумма2 КАК СуммаТек,
ДанныеОсновногоПериода.НомерДок2 КАК НомерДокТек,
ДанныеОсновногоПериода.ДатаДок2 КАК ДатаДокТек,
ДанныеОсновногоПериода.ММесяц2 КАК ММесяцТек,
ДанныеОсновногоПериода.ЮрЛицо КАК ЮрЛицо,
ДанныеОсновногоПериода.ЮрЛицоИНН КАК ЮрЛицоИНН,
ДанныеОсновногоПериода.ЮрЛицоКПП КАК ЮрЛицоКПП,
ДанныеОсновногоПериода.КБК КАК КБК,
ДанныеОсновногоПериода.КодОКАТО КАК КодОКАТО,
NULL КАК ПериодПГ,
NULL КАК СуммаПГ,
NULL КАК НомерДокПГ,
NULL КАК ДатаДокПГ,
NULL КАК ММесяцПГ
ИЗ
ДанныеОсновногоПериода КАК ДанныеОсновногоПериода
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
NULL,
NULL,
NULL,
NULL,
NULL,
ДанныеПрошлогоПериода.ЮрЛицо,
ДанныеПрошлогоПериода.ЮрЛицоИНН,
ДанныеПрошлогоПериода.ЮрЛицоКПП,
ДанныеПрошлогоПериода.КБК,
ДанныеПрошлогоПериода.КодОКАТО,
ДанныеПрошлогоПериода.Период1,
ДанныеПрошлогоПериода.Сумма1,
ДанныеПрошлогоПериода.НомерДок1,
ДанныеПрошлогоПериода.ДатаДок1,
ДанныеПрошлогоПериода.ММесяц1
ИЗ
ДанныеПрошлогоПериода КАК ДанныеПрошлогоПериода
Показать
(13)
Например так
Например так
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоступленияПрошлогоПериода.*
ПОМЕСТИТЬ ВТДанныеПрошлогоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних({(ДОБАВИТЬКДАТЕ(&ОтчНачалоПериода, ГОД, -1))}, {(ДОБАВИТЬКДАТЕ(&ОтчКонецПериода, ГОД, -1))}) КАК ПоступленияПрошлогоПериода
;
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоступленияОсновногоПериода.*
ПОМЕСТИТЬ ВТДанныеОсновногоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних({(&ОтчНачалоПериода)}, {(&ОтчКонецПериода)}) КАК ПоступленияОсновногоПериода
;
ВЫБРАТЬ
ВТДанныеОсновногоПериода.ЮрЛицо,
ВТДанныеПрошлогоПериода.Сумма КАК СуммаПрошлогоПериода,
ВТДанныеОсновногоПериода.Сумма КАК СуммаТекущегоПериода
ИЗ
ВТДанныеОсновногоПериода КАК ВТДанныеОсновногоПериода
ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеПрошлогоПериода КАК ВТДанныеПрошлогоПериода
ПО ВТДанныеОсновногоПериода.Организация = ВТДанныеПрошлогоПериода.Организация
И ВТДанныеОсновногоПериода.ЮрЛицо = ВТДанныеПрошлогоПериода.ЮрЛицо
Показать
(1)
У СрезПоследних/СрезПервых нет возможности получить за период.
Хотите данные за период, тогда только через физическую таблицу РС.
Хотя сама постановка задачи говорит о том, что используется неподходящая архитектура. Вместо РС тут подошел бы РН.
Данные в регистре сведений
Нужно выбрать данные и при отборе по периоду хочу сравнить с таким же периодом -1 Год (Минус один год)
Например: Указываю отбор: 01.03.2021-31.07.2021 и отчет должен сравнить данные указанного периода с данными за 01.03.2020-31.07.2020.
Например: Указываю отбор: 01.03.2021-31.07.2021 и отчет должен сравнить данные указанного периода с данными за 01.03.2020-31.07.2020.
Вопрос! Лучше использовать таблицы "Срез первых" и "Срез последних" или же напрямую колдовать над регистром манипуляцией "ГОД -1"
У СрезПоследних/СрезПервых нет возможности получить за период.
Хотите данные за период, тогда только через физическую таблицу РС.
Хотя сама постановка задачи говорит о том, что используется неподходящая архитектура. Вместо РС тут подошел бы РН.
МОЖЕТ КОМУ ПРИГОДИТСЯ ГОТОВЫЙ ИТОГОВЫЙ ЗАПРОС:
Всем спасибо кто хотел помочь!
ВЫБРАТЬ
Поступления.Период КАК Период1,
Поступления.Сумма КАК Сумма1,
Поступления.НомерДок КАК НомерДок1,
Поступления.ДатаДок КАК ДатаДок1,
ВЫБОР
КОГДА Поступления.ЮрЛицо ПОДОБНО ""
ТОГДА "Справка ФК"
ИНАЧЕ Поступления.ЮрЛицо
КОНЕЦ КАК ЮрЛицо,
Поступления.ЮрЛицоИНН КАК ЮрЛицоИНН,
Поступления.ЮрЛицоКПП КАК ЮрЛицоКПП,
Поступления.КБК КАК КБК,
Поступления.КодОКАТО КАК КодОКАТО,
Поступления.Месяц КАК ММесяц1
ПОМЕСТИТЬ ДанныеПрошлогоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних КАК Поступления
ГДЕ
Поступления.ДатаДок МЕЖДУ ДОБАВИТЬКДАТЕ(&ОтчНачалоПериода, ГОД, -1) И ДОБАВИТЬКДАТЕ(&ОтчКонецПериода, ГОД, -1)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Поступления.Период КАК Период2,
Поступления.Сумма КАК Сумма2,
Поступления.НомерДок КАК НомерДок2,
Поступления.ДатаДок КАК ДатаДок2,
ВЫБОР
КОГДА Поступления.ЮрЛицо ПОДОБНО ""
ТОГДА "Справка ФК"
ИНАЧЕ Поступления.ЮрЛицо
КОНЕЦ КАК ЮрЛицо,
Поступления.ЮрЛицоИНН КАК ЮрЛицоИНН,
Поступления.ЮрЛицоКПП КАК ЮрЛицоКПП,
Поступления.КБК КАК КБК,
Поступления.КодОКАТО КАК КодОКАТО,
Поступления.Месяц КАК ММесяц2
ПОМЕСТИТЬ ДанныеОсновногоПериода
ИЗ
РегистрСведений.Поступления.СрезПоследних КАК Поступления
ГДЕ
Поступления.ДатаДок МЕЖДУ &ОтчНачалоПериода И &ОтчКонецПериода
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ДанныеОсновногоПериода.Период2 КАК ПериодТек,
ЕСТЬNULL(ДанныеОсновногоПериода.Сумма2, 0) КАК СуммаТек,
ДанныеОсновногоПериода.НомерДок2 КАК НомерДокТек,
ДанныеОсновногоПериода.ДатаДок2 КАК ДатаДокТек,
ДанныеОсновногоПериода.ММесяц2 КАК ММесяцТек,
ДанныеОсновногоПериода.ЮрЛицо КАК ЮрЛицо,
ДанныеОсновногоПериода.ЮрЛицоИНН КАК ЮрЛицоИНН,
ДанныеОсновногоПериода.ЮрЛицоКПП КАК ЮрЛицоКПП,
ДанныеОсновногоПериода.КБК КАК КБК,
ДанныеОсновногоПериода.КодОКАТО КАК КодОКАТО,
NULL КАК ПериодПГ,
NULL КАК СуммаПГ,
NULL КАК НомерДокПГ,
NULL КАК ДатаДокПГ,
NULL КАК ММесяцПГ
ИЗ
ДанныеОсновногоПериода КАК ДанныеОсновногоПериода
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
NULL,
NULL,
NULL,
NULL,
NULL,
ЕСТЬNULL(ДанныеПрошлогоПериода.ЮрЛицо, NULL),
ДанныеПрошлогоПериода.ЮрЛицоИНН,
ДанныеПрошлогоПериода.ЮрЛицоКПП,
ДанныеПрошлогоПериода.КБК,
ДанныеПрошлогоПериода.КодОКАТО,
ДанныеПрошлогоПериода.Период1,
ЕСТЬNULL(ДанныеПрошлогоПериода.Сумма1, 0),
ДанныеПрошлогоПериода.НомерДок1,
ДанныеПрошлогоПериода.ДатаДок1,
ДанныеПрошлогоПериода.ММесяц1
ИЗ
ДанныеПрошлогоПериода КАК ДанныеПрошлогоПериода
ПоказатьВсем спасибо кто хотел помочь!
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот