Добрый день! Подскажите, пожалуйста, с запросом. Проблема с вт "ЛимитыС", по ней обираю записи с периодом НАЧАЛОПЕРИОДА(&Сегодня, День), НАЧАЛОПЕРИОДА(&Сегодня, Неделя), НАЧАЛОПЕРИОДА(&Сегодня, Месяц).
Если соединять по 1 параметру, например день, то значение количества записей в регистре корректное, если добавлять еще соединение с параметром неделя, то дню присваивается значение недели, если добавить еще соединение по месяцу, то дню и недели присваивается значение месяца. Не могу понять, в чем дело. Заранее спасибо!
Вот так ок:
Вот так НЕ ок:
Необходимо связать большой запрос со списком договоров с количествами записей в регистре. (По договору, количества записей за день, неделю, месяц)
Если соединять по 1 параметру, например день, то значение количества записей в регистре корректное, если добавлять еще соединение с параметром неделя, то дню присваивается значение недели, если добавить еще соединение по месяцу, то дню и недели присваивается значение месяца. Не могу понять, в чем дело. Заранее спасибо!
Вот так ок:
ВЫБРАТЬ
СотрудникПоДоговоруСрезПоследних.Договор КАК Договор
ПОМЕСТИТЬ Договоры
ИЗ
РегистрСведений.СотрудникПоДоговору.СрезПоследних(, ) КАК СотрудникПоДоговоруСрезПоследних
ГДЕ
СотрудникПоДоговоруСрезПоследних.Взыскатель = &Сотрудник
ИНДЕКСИРОВАТЬ ПО
Договор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов) КАК Договор,
СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК СуммаОстатокДт
ПОМЕСТИТЬ Долги
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(
,
Счет.Код = "58.03.1"
ИЛИ Счет.Код = "76.12"
ИЛИ Счет.Код = "ДЦ.01"
ИЛИ Счет.Код = "ДЦ.02",
,
ВЫРАЗИТЬ(Субконто2 КАК Справочник.ДоговорыКонтрагентов) В
(ВЫБРАТЬ
Договоры.Договор
ИЗ
Договоры КАК Договоры)) КАК ХозрасчетныйОстатки
ГДЕ
ХозрасчетныйОстатки.СуммаОстатокДт > 0
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстатки.Субконто2,
ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов)
ИНДЕКСИРОВАТЬ ПО
Договор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЛимитСообщений.Период КАК Период,
ЛимитСообщений.Договор КАК Договор,
ЛимитСообщений.УИД
ПОМЕСТИТЬ ЛимитыС
ИЗ
РегистрСведений.ЛимитСообщений КАК ЛимитСообщений
ГДЕ
ЛимитСообщений.Период >= НАЧАЛОПЕРИОДА(&Сегодня, МЕСЯЦ)
И ЛимитСообщений.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
ИНДЕКСИРОВАТЬ ПО
Договор,
Период
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
АнкетаКлиента.Договор,
КОЛИЧЕСТВО(ЛимитыНеделя.УИД) КАК ЛНеделя
ИЗ
Документ.АнкетаКлиента КАК АнкетаКлиента
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыДень
ПО АнкетаКлиента.Договор = ЛимитыДень.Договор
И (ЛимитыДень.Период >= НАЧАЛОПЕРИОДА(&Сегодня, ДЕНЬ))
ГДЕ
АнкетаКлиента.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
СГРУППИРОВАТЬ ПО
АнкетаКлиента.Договор
ПоказатьВот так НЕ ок:
ВЫБРАТЬ
СотрудникПоДоговоруСрезПоследних.Договор КАК Договор
ПОМЕСТИТЬ Договоры
ИЗ
РегистрСведений.СотрудникПоДоговору.СрезПоследних(, ) КАК СотрудникПоДоговоруСрезПоследних
ГДЕ
СотрудникПоДоговоруСрезПоследних.Взыскатель = &Сотрудник
ИНДЕКСИРОВАТЬ ПО
Договор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов) КАК Договор,
СУММА(ХозрасчетныйОстатки.СуммаОстатокДт) КАК СуммаОстатокДт
ПОМЕСТИТЬ Долги
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(
,
Счет.Код = "58.03.1"
ИЛИ Счет.Код = "76.12"
ИЛИ Счет.Код = "ДЦ.01"
ИЛИ Счет.Код = "ДЦ.02",
,
ВЫРАЗИТЬ(Субконто2 КАК Справочник.ДоговорыКонтрагентов) В
(ВЫБРАТЬ
Договоры.Договор
ИЗ
Договоры КАК Договоры)) КАК ХозрасчетныйОстатки
ГДЕ
ХозрасчетныйОстатки.СуммаОстатокДт > 0
СГРУППИРОВАТЬ ПО
ХозрасчетныйОстатки.Субконто2,
ВЫРАЗИТЬ(ХозрасчетныйОстатки.Субконто2 КАК Справочник.ДоговорыКонтрагентов)
ИНДЕКСИРОВАТЬ ПО
Договор
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЛимитСообщений.Период КАК Период,
ЛимитСообщений.Договор КАК Договор,
ЛимитСообщений.УИД
ПОМЕСТИТЬ ЛимитыС
ИЗ
РегистрСведений.ЛимитСообщений КАК ЛимитСообщений
ГДЕ
ЛимитСообщений.Период >= НАЧАЛОПЕРИОДА(&Сегодня, МЕСЯЦ)
И ЛимитСообщений.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
ИНДЕКСИРОВАТЬ ПО
Договор,
Период
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
АнкетаКлиента.Договор,
КОЛИЧЕСТВО(ЛимитыДень.УИД) КАК ЛДень,
КОЛИЧЕСТВО(ЛимитыНеделя.УИД) КАК ЛНеделя
ИЗ
Документ.АнкетаКлиента КАК АнкетаКлиента
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыДень
ПО АнкетаКлиента.Договор = ЛимитыДень.Договор
И (ЛимитыДень.Период >= НАЧАЛОПЕРИОДА(&Сегодня, ДЕНЬ))
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыНеделя
ПО АнкетаКлиента.Договор = ЛимитыНеделя.Договор
И (ЛимитыНеделя.Период >= НАЧАЛОПЕРИОДА(&Сегодня, Неделя))
ГДЕ
АнкетаКлиента.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
СГРУППИРОВАТЬ ПО
АнкетаКлиента.Договор
ПоказатьНеобходимо связать большой запрос со списком договоров с количествами записей в регистре. (По договору, количества записей за день, неделю, месяц)
По теме из базы знаний
- Автоматическое заполнение статистической формы учета перемещения товаров при ЭКСПОРТЕ (ФТС) в государства ЕАЭС (Беларусь, Казахстан, Армения и Кыргызская Республика)
- Загрузка данных из ОФД в 1С:БП 3.0, 1С:КА 2.4/2.5, УНФ 3.0 о денежных поступлениях (чеках)
- Анализ расхождений выручки НДС и Налога на прибыль в декларациях 1С (БП 3.0 ПРОФ и КОРП, КА 2, ЕRP)
- Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ЕРП 2.4. Интеркампани, механизм формирования резервов
- SynchroWB — интеграция 1С и Wildberries: автоматизация заказов и остатков по API с УТ, КА, ERP, УНФ, Розница 3
Найденные решения
(1) Если правильно понял суть проблемы и хранение данных в РегистрСведений.ЛимитСообщений, то необходимо последний пакет в запросе переделать в такой вид
ВЫБРАТЬ
АнкетаКлиента.Договор,
КОЛИЧЕСТВО(ЛимитыДень.УИД) КАК ЛДень,
0 КАК ЛНеделя,
0 КАК ЛМесяц
ПОМЕСТИТЬ ВТОбщиеДанные
ИЗ
Документ.АнкетаКлиента КАК АнкетаКлиента
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыДень
ПО АнкетаКлиента.Договор = ЛимитыДень.Договор
И (ЛимитыДень.Период >= НАЧАЛОПЕРИОДА(&Сегодня, ДЕНЬ))
ГДЕ
АнкетаКлиента.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
СГРУППИРОВАТЬ ПО
АнкетаКлиента.Договор
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
АнкетаКлиента.Договор,
0,
КОЛИЧЕСТВО(ЛимитыНеделя.УИД),
0
ИЗ
Документ.АнкетаКлиента КАК АнкетаКлиента
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыНеделя
ПО АнкетаКлиента.Договор = ЛимитыНеделя.Договор
И (ЛимитыНеделя.Период >= НАЧАЛОПЕРИОДА(&Сегодня, Неделя))
ГДЕ
АнкетаКлиента.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
СГРУППИРОВАТЬ ПО
АнкетаКлиента.Договор
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
АнкетаКлиента.Договор,
0,
0,
КОЛИЧЕСТВО(ЛимитыМесяц.УИД)
ИЗ
Документ.АнкетаКлиента КАК АнкетаКлиента
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыМесяц
ПО АнкетаКлиента.Договор = ЛимитыМесяц.Договор
И (ЛимитыМесяц.Период >= НАЧАЛОПЕРИОДА(&Сегодня, Месяц))
ГДЕ
АнкетаКлиента.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
СГРУППИРОВАТЬ ПО
АнкетаКлиента.Договор
;
ВЫБРАТЬ
Договор,
СУММА(ЛДень) КАК ЛДень,
СУММА(ЛНеделя) КАК ЛНеделя,
СУММА(ЛМесяц) КАК ЛМесяц
ИЗ
ВТОбщиеДанные
СГРУППИРОВАТЬ ПО
Договор
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Если правильно понял суть проблемы и хранение данных в РегистрСведений.ЛимитСообщений, то необходимо последний пакет в запросе переделать в такой вид
ВЫБРАТЬ
АнкетаКлиента.Договор,
КОЛИЧЕСТВО(ЛимитыДень.УИД) КАК ЛДень,
0 КАК ЛНеделя,
0 КАК ЛМесяц
ПОМЕСТИТЬ ВТОбщиеДанные
ИЗ
Документ.АнкетаКлиента КАК АнкетаКлиента
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыДень
ПО АнкетаКлиента.Договор = ЛимитыДень.Договор
И (ЛимитыДень.Период >= НАЧАЛОПЕРИОДА(&Сегодня, ДЕНЬ))
ГДЕ
АнкетаКлиента.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
СГРУППИРОВАТЬ ПО
АнкетаКлиента.Договор
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
АнкетаКлиента.Договор,
0,
КОЛИЧЕСТВО(ЛимитыНеделя.УИД),
0
ИЗ
Документ.АнкетаКлиента КАК АнкетаКлиента
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыНеделя
ПО АнкетаКлиента.Договор = ЛимитыНеделя.Договор
И (ЛимитыНеделя.Период >= НАЧАЛОПЕРИОДА(&Сегодня, Неделя))
ГДЕ
АнкетаКлиента.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
СГРУППИРОВАТЬ ПО
АнкетаКлиента.Договор
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
АнкетаКлиента.Договор,
0,
0,
КОЛИЧЕСТВО(ЛимитыМесяц.УИД)
ИЗ
Документ.АнкетаКлиента КАК АнкетаКлиента
ЛЕВОЕ СОЕДИНЕНИЕ ЛимитыС КАК ЛимитыМесяц
ПО АнкетаКлиента.Договор = ЛимитыМесяц.Договор
И (ЛимитыМесяц.Период >= НАЧАЛОПЕРИОДА(&Сегодня, Месяц))
ГДЕ
АнкетаКлиента.Договор В
(ВЫБРАТЬ
Договоры.Договор КАК Договор
ИЗ
Долги КАК Договоры)
СГРУППИРОВАТЬ ПО
АнкетаКлиента.Договор
;
ВЫБРАТЬ
Договор,
СУММА(ЛДень) КАК ЛДень,
СУММА(ЛНеделя) КАК ЛНеделя,
СУММА(ЛМесяц) КАК ЛМесяц
ИЗ
ВТОбщиеДанные
СГРУППИРОВАТЬ ПО
Договор
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот