Запрос определения даты наступления события в рабочих днях

13.01.20

Разработка - Запросы

В данном запросе определяется дата оплаты поступления исходя из отсрочки платежа в рабочих днях.

Введение:

 Некоторые говорят о том чего не знают, другие знают, но не могут об этом сказать.

 Итак, имеется на моем балансе самопальная конфигурация со всякими отчетами и обработками, в которых, в зависимости от области ее действия необходимо рассчитать срок наступления определенного события в рабочих днях, такого как:

- Ожидаемый срок поставки товара по заказу, в зависимости от количества дней поставки

- Срок оплаты покупателем, в зависимости от отсрочки платежа

- Срок оплаты поставщику за товары, в зависимости от его отсрочки нам

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

Решил сделать все в запросе в целях оптимизации.

Выкладываю для варианта Оплата поступления по отсрочке в рабочих днях.

Параметр Организация думаю понятен

На выходе таблица с поступлениями и датами их оплаты

Работает хорошо, быстро.

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

ИНДЕКСИРОВАТЬ ПО
	Договор
;

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

ИНДЕКСИРОВАТЬ ПО
	ДатаПоступления
;

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

ИНДЕКСИРОВАТЬ ПО
	ДатаКалендаря
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_КалендарьПредыдущий.ДатаКалендаря) КАК ЧислоДаты,
	ВТ_Календарь.ДатаКалендаря КАК ДатаКалендаря
ПОМЕСТИТЬ ВТ_КалендарьПоПорядку
ИЗ
	ВТ_Календарь КАК ВТ_Календарь
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Календарь КАК ВТ_КалендарьПредыдущий
		ПО ВТ_Календарь.ДатаКалендаря > ВТ_КалендарьПредыдущий.ДатаКалендаря

СГРУППИРОВАТЬ ПО
	ВТ_Календарь.ДатаКалендаря

ИНДЕКСИРОВАТЬ ПО
	ДатаКалендаря
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВТ_Поступления.Контрагент,
	ВТ_Поступления.Поступление,
	ВТ_Поступления.Сумма,
	ВТ_Поступления.ДатаПоступления,
	ВТ_Поступления.ДопустимоеЧислоДнейЗадолженности,
	ВТ_КалендарьПоПорядку.ЧислоДаты КАК ЧислоДаты,
	ВТ_КалендарьПоПорядку.ДатаКалендаря,
	ВТ_КалендарьПоПорядку.ЧислоДаты + ЕСТЬNULL(ВТ_Поступления.ДопустимоеЧислоДнейЗадолженности, 0) КАК ЧислоДатыПлюс
ПОМЕСТИТЬ Вт_ПромИтог
ИЗ
	ВТ_Поступления КАК ВТ_Поступления
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КалендарьПоПорядку КАК ВТ_КалендарьПоПорядку
		ПО ВТ_Поступления.ДатаПоступления = ВТ_КалендарьПоПорядку.ДатаКалендаря
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	Вт_ПромИтог.Контрагент,
	Вт_ПромИтог.Поступление,
	Вт_ПромИтог.Сумма,
	Вт_ПромИтог.ДатаПоступления КАК ДатаПоступления,
	Вт_ПромИтог.ДопустимоеЧислоДнейЗадолженности,
	ВТ_КалендарьПоПорядку.ДатаКалендаря КАК ДатаОплаты
ИЗ
	Вт_ПромИтог КАК Вт_ПромИтог
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КалендарьПоПорядку КАК ВТ_КалендарьПоПорядку
		ПО Вт_ПромИтог.ЧислоДатыПлюс = ВТ_КалендарьПоПорядку.ЧислоДаты

УПОРЯДОЧИТЬ ПО
	ДатаПоступления

UPD

Столкнулся с моментом когда Поступление выпадает на выходной день оно не попадает в оплату. Для решения этой ситуации нужно перед таблицей т_Поступления разместить такую конструкцию:

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря
ПОМЕСТИТЬ ВТ_Календарь
ИЗ
	РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
ГДЕ
	РегламентированныйПроизводственныйКалендарь.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря
ПОМЕСТИТЬ ВТ_КалендарьВесь
ИЗ
	РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВТ_Календарь.ДатаКалендаря,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_КалендарьВесь.ДатаКалендаря) КАК ДатаКалендаря1
ПОМЕСТИТЬ КалендарьСЧисломВыходногоДня
ИЗ
	ВТ_КалендарьВесь КАК ВТ_Календарь
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Календарь КАК ВТ_КалендарьВесь
		ПО ВТ_Календарь.ДатаКалендаря >= ВТ_КалендарьВесь.ДатаКалендаря

СГРУППИРОВАТЬ ПО
	ВТ_Календарь.ДатаКалендаря
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ВТ_Календарь.ДатаКалендаря,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_Календарь1.ДатаКалендаря) КАК ДатаКалендаря1
ПОМЕСТИТЬ ДатыПономеруДняКалендаря
ИЗ
	ВТ_Календарь КАК ВТ_Календарь
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Календарь КАК ВТ_Календарь1
		ПО ВТ_Календарь.ДатаКалендаря >= ВТ_Календарь1.ДатаКалендаря

СГРУППИРОВАТЬ ПО
	ВТ_Календарь.ДатаКалендаря
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
	ДатыПономеруДняКалендаря.ДатаКалендаря ДатаприходаРабочая,
	КалендарьСЧисломВыходногоДня.ДатаКалендаря КАК датаПриходаПолная
ИЗ
	КалендарьСЧисломВыходногоДня КАК КалендарьСЧисломВыходногоДня
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатыПономеруДняКалендаря КАК ДатыПономеруДняКалендаря
		ПО КалендарьСЧисломВыходногоДня.ДатаКалендаря1 = ДатыПономеруДняКалендаря.ДатаКалендаря1

данная конструкция определяет какая дата для выходного дня является рабочей, в данном случае это предыдущий рабочий день.

Далее с помощью соединения с таблицей ВТ_Поступления заменяем дату поступления на рабочую дату.

 

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 руб.

02.09.2020    119970    656    389    

701

Для чего используют конструкцию запроса "ГДЕ ЛОЖЬ" в СКД на примере конфигурации 1С:ERP

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных 1С:ERP Управление предприятием 2 Бесплатно (free)

В типовых конфигурациях разработчики компании 1С иногда используют в отчетах, построенных на СКД, такую конструкцию, как "ГДЕ ЛОЖЬ". Такая конструкция говорит о том, что данные в запросе не будут получены совсем. Для чего же нужен тогда запрос?

13.02.2024    5622    KawaNoNeko    23    

23

Набор-объект для СКД по тексту или запросу

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    1964    2    Yashazz    0    

29

Запрос 1С copilot

Инструментарий разработчика Запросы Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

5 стартмани

15.01.2024    6094    29    mkalimulin    23    

48

PrintWizard: поддержка представлений ЗУП в конструкторе

Инструментарий разработчика Запросы Платформа 1С v8.3 Бесплатно (free)

Одной из интересных задач, стоящих в процессе разработки, была поддержка механизма представлений в ЗУП. Но не просто возможность исполнения запросов с ними. Основная проблема была в том, чтобы с ними было удобно работать, а именно: создавать, модифицировать и отлаживать. Кратко о том, что в итоге получилось...

14.12.2023    1714    vandalsvq    7    

28

Объектная модель запроса "Схема запроса" 2

Запросы Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Далеко уже не новый тип данных "Схема запроса". Статья о том, как использовать его "попроще". Примеры создания текста запроса с нуля и изменение имеющегося запроса.

06.12.2023    5287    user1923546    26    

43

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    15962    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Romanovna_999 16.12.19 17:59 Сейчас в теме
Пробовала как у вас написать, не работает( Не подскажите в чем ошибка?
Запрос = Новый Запрос();
   Запрос.УстановитьПараметр("МассивОбъектов", Документы.ЗаказПокупателя);
  Запрос.Текст =  "ВЫБРАТЬ
                  |	ЗаказПокупателя.Ссылка КАК Договор,
                  |	ЗаказПокупателя.КоличествоДнейВыполнения КАК КоличествоДней,
                  |	НАЧАЛОПЕРИОДА(ЗаказПокупателя.Старт, ДЕНЬ) КАК ДатаПоступления
                  |ПОМЕСТИТЬ ВТ_Договора
                  |ИЗ
                  |	Документ.ЗаказПокупателя КАК ЗаказПокупателя
                  |ГДЕ
                  |	ЗаказПокупателя.Ссылка В(&МассивОбъектов)
                  |
                  |ИНДЕКСИРОВАТЬ ПО
                  |	Договор,
                  |	ДатаПоступления
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ РАЗЛИЧНЫЕ
                  |	ДанныеПроизводственногоКалендаря.Дата КАК Дата
                  |ПОМЕСТИТЬ ВТ_Календарь
                  |ИЗ
                  |	РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДанныеПроизводственногоКалендаря
                  |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Договора КАК ВТ_Договора
                  |		ПО ДанныеПроизводственногоКалендаря.Дата >= ВТ_Договора.ДатаПоступления
                  |ГДЕ
                  |	ДанныеПроизводственногоКалендаря.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
                  |
                  |ИНДЕКСИРОВАТЬ ПО
                  |	Дата
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ
                  |	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_КалендарьПредыдущий.Дата) КАК ЧислоДаты,
                  |	ВТ_Календарь.Дата КАК Дата
                  |ПОМЕСТИТЬ ВТ_КалендарьПоПорядку
                  |ИЗ
                  |	ВТ_Календарь КАК ВТ_Календарь
                  |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Календарь КАК ВТ_КалендарьПредыдущий
                  |		ПО ВТ_Календарь.Дата > ВТ_КалендарьПредыдущий.Дата
                  |
                  |СГРУППИРОВАТЬ ПО
                  |	ВТ_Календарь.Дата
                  |
                  |ИНДЕКСИРОВАТЬ ПО
                  |	Дата
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ
                  |	ВТ_Договора.Договор КАК Договор,
                  |	ВТ_Договора.КоличествоДней КАК КоличествоДней,
                  |	ВТ_Договора.ДатаПоступления КАК ДатаПоступления,
                  |	ВТ_КалендарьПоПорядку.ЧислоДаты КАК ЧислоДаты,
                  |	ВТ_КалендарьПоПорядку.Дата КАК Дата,
                  |	ВТ_КалендарьПоПорядку.ЧислоДаты + ЕСТЬNULL(ВТ_Договора.КоличествоДней, 0) КАК ЧислоДатыПлюс
                  |ПОМЕСТИТЬ Вт_ПромИтог
                  |ИЗ
                  |	ВТ_Договора КАК ВТ_Договора
                  |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КалендарьПоПорядку КАК ВТ_КалендарьПоПорядку
                  |		ПО ВТ_Договора.ДатаПоступления = ВТ_КалендарьПоПорядку.Дата
                  |;
                  |
                  |////////////////////////////////////////////////////////////­////////////////////
                  |ВЫБРАТЬ
                  |	Вт_ПромИтог.ДатаПоступления КАК Старт,
                  |	Вт_ПромИтог.КоличествоДней КАК КоличествоДней,
                  |	ВТ_КалендарьПоПорядку.Дата КАК Финиш
                  |ИЗ
                  |	Вт_ПромИтог КАК Вт_ПромИтог
                  |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КалендарьПоПорядку КАК ВТ_КалендарьПоПорядку
                  |		ПО Вт_ПромИтог.ЧислоДатыПлюс = ВТ_КалендарьПоПорядку.ЧислоДаты
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |	Вт_ПромИтог.ДатаПоступления";
Показать
2. maxvcb 67 17.12.19 13:48 Сейчас в теме
|ПОМЕСТИТЬ ВТ_КалендарьПоПорядку

>=
3. Romanovna_999 17.12.19 18:51 Сейчас в теме
Не помогло. Может ошиблась в другом месте?

.... 
   Выборка = Запрос.Выполнить().Выбрать();     

   Пока Выборка.Следующий() Цикл
	   Объект.Старт = Выборка.Старт;	 
		 Объект.КоличествоДнейВыполнения = Выборка.КоличествоДней;
		 Объект.Финиш = Выборка.Финиш; 
   КонецЦикла;
4. maxvcb 67 18.12.19 10:28 Сейчас в теме
возможно календарь не заполнен на следующий год
возможно параметры не верные в запрос передаются

запрос работает

вот рабочий вариант который адаптирован к типовой конфигурации по реквизитам, что там у вас далее происходит разбирайтесь

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

ИНДЕКСИРОВАТЬ ПО
	Договор,
	ДатаПоступления
;

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

ИНДЕКСИРОВАТЬ ПО
	Дата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТ_КалендарьПредыдущий.Дата) КАК ЧислоДаты,
	ВТ_Календарь.Дата КАК Дата
ПОМЕСТИТЬ ВТ_КалендарьПоПорядку
ИЗ
	ВТ_Календарь КАК ВТ_Календарь
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Календарь КАК ВТ_КалендарьПредыдущий
		ПО ВТ_Календарь.Дата >= ВТ_КалендарьПредыдущий.Дата

СГРУППИРОВАТЬ ПО
	ВТ_Календарь.Дата

ИНДЕКСИРОВАТЬ ПО
	Дата
;

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Вт_ПромИтог.ДатаПоступления КАК Старт,
	Вт_ПромИтог.КоличествоДней КАК КоличествоДней,
	ВТ_КалендарьПоПорядку.Дата КАК Финиш
ИЗ
	Вт_ПромИтог КАК Вт_ПромИтог
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КалендарьПоПорядку КАК ВТ_КалендарьПоПорядку
		ПО Вт_ПромИтог.ЧислоДатыПлюс = ВТ_КалендарьПоПорядку.ЧислоДаты

УПОРЯДОЧИТЬ ПО
	Вт_ПромИтог.ДатаПоступления
Показать

(3)
Прикрепленные файлы:
5. egor_marshev 21.03.22 08:10 Сейчас в теме
Не совсем понятно каким будет результат елси
ВТ_КалендарьПоПорядку.ЧислоДаты + ЕСТЬNULL(ВТ_Поступления.ДопустимоеЧислоДнейЗадолженности, 0) КАК ЧислоДатыПлюс

ЧсилоДатыПлюс выпадет на выходной день, значит в следующей таблице соединение не произойдет вовсе.
6. maxvcb 67 21.03.22 12:07 Сейчас в теме
(5) там по запросом UPD написан, вы его не читали или я там что то не правильно написал?
7. egor_marshev 21.03.22 13:20 Сейчас в теме
(6)На сколько я понял это определение первой рабочей даты после праздника? т.е. начало отсчета? и если прибавить к это рабочей дате "ДопустимоеЧислоДнейЗадолженности" то может выпать на выходной/праздник, или я что то не так понял?
Оставьте свое сообщение