СКД и добавление двух полей-формул

1. sasha-asn 12.08.19 12:57 Сейчас в теме
Доброго времени суток, уважаемые эксперты!
Прошу вашей подсказки, так как мои познания в запросах ограничены и я встал в тупик…

Ситуация – есть запрос который выводит:
1. Контрагенты.Родитель.Ссылка - (папка из справочника Контрагента)
2. Ссылка - (ссылка на контрагента)
3. ДопустимаяСуммаЗадолженности - (число из реквизита Справочника Договоры)
4. ДопустимоеЧислоДнейЗадолженности – (число из реквизита Справочника Договоры)
5. ВзаиморасчетыСКонтрагентами.Регистратор.Ссылка – (документ Реализация товаров и услуг)
Необходимо добавить ещё два поля в запрос: 6,7 – ДниДоОплаты и ПросроченноДней.

1) ДНИ ДО ОПЛАТЫ:
Допустим сегодня 12 августа. В реквизите договора ДопустимоеЧислоДнейЗадолженности число 21. Реализация была сделана 11 августа. Значит дней до истечения оплаты осталось 9.
ДниДоОплаты = ТекущаяДата - ДопустимоеЧислоДнейЗадолженности
// Но тогда, будут и отрицательные числа, например если дней отсрочки 21, а сегодня 15, тогда -6
2) ПРОСРОЧЕННО ДНЕЙ:
Если ДниДоОплаты => 0 Тогда ПРОСРОЧЕННОДНЕЙ +1

Возможно ли добавить поля с помощью функций ВЫБОР и условий?

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

СГРУППИРОВАТЬ ПО 
    Контрагенты.Ссылка, 
    ДоговорыКонтрагентов.ДопустимаяСуммаЗадолженности, 
    ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности, 
    ВзаиморасчетыСКонтрагентами.Регистратор.Ссылка, 
    ВзаиморасчетыСКонтрагентами.Регистратор.СуммаДокумента, 
    Контрагенты.Родитель.Ссылка 
Показать
Прикрепленные файлы:
Найденные решения
15. BOV76 12.08.19 14:04 Сейчас в теме
ВЫБРАТЬ
	Контрагенты.Родитель.Ссылка КАК РодительСсылка,
	Контрагенты.Ссылка КАК Ссылка,
	ДоговорыКонтрагентов.ДопустимаяСуммаЗадолженности КАК ДопустимаяСуммаЗадолженности,
	ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
	ВзаиморасчетыСКонтрагентами.Регистратор.Ссылка КАК РегистраторСсылка,
	ВзаиморасчетыСКонтрагентами.Регистратор.СуммаДокумента КАК РегистраторСуммаДокумента,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) > &ТекущаяДата
			ТОГДА РАЗНОСТЬДАТ(&ТекущаяДата, ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности), ДЕНЬ)
		ИНАЧЕ 0
	КОНЕЦ КАК ДниДоОплаты,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) < &ТекущаяДата
			ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности), &ТекущаяДата, ДЕНЬ)
		ИНАЧЕ 0
	КОНЕЦ КАК ПросроченоДней
ИЗ
	РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК ВзаиморасчетыСКонтрагентами
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
		ПО ВзаиморасчетыСКонтрагентами.Контрагент = Контрагенты.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
		ПО ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента = ДоговорыКонтрагентов.Ссылка
ГДЕ
	ВзаиморасчетыСКонтрагентами.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

СГРУППИРОВАТЬ ПО
	Контрагенты.Ссылка,
	ДоговорыКонтрагентов.ДопустимаяСуммаЗадолженности,
	ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности,
	ВзаиморасчетыСКонтрагентами.Регистратор.Ссылка,
	ВзаиморасчетыСКонтрагентами.Регистратор.СуммаДокумента,
	Контрагенты.Родитель.Ссылка,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) > &ТекущаяДата
			ТОГДА РАЗНОСТЬДАТ(&ТекущаяДата, ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности), ДЕНЬ)
		ИНАЧЕ 0
	КОНЕЦ,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) < &ТекущаяДата
			ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности), &ТекущаяДата, ДЕНЬ)
		ИНАЧЕ 0
	КОНЕЦ
Показать
sasha-asn; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. BOV76 12.08.19 13:20 Сейчас в теме
Если нигде не ошибся

1.
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДатаРеализации, ДЕНЬ, ДопустимоеЧислоДнейЗадолженности ) > ТекущаяДата
ТОГДА РАЗНОСТЬДАТ(ТекущаяДата, ДОБАВИТЬКДАТЕ(ДатаРеализации, ДЕНЬ, ДопустимоеЧислоДнейЗадолженности ), ДЕНЬ)
ИНАЧЕ 0 
КОНЕЦ

2.
ВЫБОР
КОГДА ДОБАВИТЬКДАТЕ(ДатаРеализации, ДЕНЬ, ДопустимоеЧислоДнейЗадолженности ) < ТекущаяДата
ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ДатаРеализации, ДЕНЬ, ДопустимоеЧислоДнейЗадолженности ), ТекущаяДата, ДЕНЬ)
ИНАЧЕ 0 
КОНЕЦ
5. sasha-asn 12.08.19 13:48 Сейчас в теме
(2) подскажите где ошибся? можно ли обратится к дате реализации через точку?
Прикрепленные файлы:
6. BOV76 12.08.19 13:49 Сейчас в теме
(5)
Ну так ДатаРеализации должна быть из документа реализации...
Нужно было весть запрос написать?
3. boykovnik 12.08.19 13:44 Сейчас в теме
Есть функция языка выражений "РазностьДат" . В запросе ее использовать нельзя, можно на вкладке "Вычисляемые поля", и 1 и 2 пункт можно решить с ее помощью.

Что вы имеете ввиду под "добавление поля с помощью ВЫБОР"?
Поле - это колонка. В конструкторе скд нельзя с помощью условий выводить/не выводить колонки.
4. BOV76 12.08.19 13:48 Сейчас в теме
(3)
, и 1 и 2 пункт можно решить с ее помощью.


В запрос добавить поля.
Ну или в СКД можно задействовать "Вычисляемые поля".
7. sasha-asn 12.08.19 13:50 Сейчас в теме
(4) можете подсказать на моём примере, выше что то не так я видимо подставил ВЫБОР в запрос... или к Дате Реализации не правильно обратился?
8. BOV76 12.08.19 13:51 Сейчас в теме
(7)
) можете подсказать на моём примере, выше что то не так я видимо подставил ВЫБОР в запрос... или к Дате Реализации не правильно обратился?


К дате реализации не правильно.


ВзаиморасчетыСКонтрагентами.Регистратор.Дата
9. BOV76 12.08.19 13:52 Сейчас в теме
(7)А еще запятые между полями выбора должны быть...
sasha-asn; +1 Ответить
10. sasha-asn 12.08.19 13:58 Сейчас в теме
(9) прошу пожалуйста подскажите где я ошибаюсь?
Прикрепленные файлы:
11. BOV76 12.08.19 13:59 Сейчас в теме
(10)Запятую на строке, предшествующей "ВЫБОР" поставьте...
sasha-asn; +1 Ответить
12. sasha-asn 12.08.19 14:01 Сейчас в теме
(11) на текущую дату ругается, как исправить ( пожалуйста...
Прикрепленные файлы:
14. BOV76 12.08.19 14:02 Сейчас в теме
(12) > (13)
Ну и в параметрах ее задать надо
sasha-asn; +1 Ответить
13. BOV76 12.08.19 14:01 Сейчас в теме
(10) И "ТекущаяДата" должно быть "&ТекущаяДата" - параметр запроса
sasha-asn; +1 Ответить
17. sasha-asn 12.08.19 14:16 Сейчас в теме
(13) Дай бог тебе здоровья и счастья! СПАСИБО! Искренни и от души спасибо!
15. BOV76 12.08.19 14:04 Сейчас в теме
ВЫБРАТЬ
	Контрагенты.Родитель.Ссылка КАК РодительСсылка,
	Контрагенты.Ссылка КАК Ссылка,
	ДоговорыКонтрагентов.ДопустимаяСуммаЗадолженности КАК ДопустимаяСуммаЗадолженности,
	ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДнейЗадолженности,
	ВзаиморасчетыСКонтрагентами.Регистратор.Ссылка КАК РегистраторСсылка,
	ВзаиморасчетыСКонтрагентами.Регистратор.СуммаДокумента КАК РегистраторСуммаДокумента,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) > &ТекущаяДата
			ТОГДА РАЗНОСТЬДАТ(&ТекущаяДата, ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности), ДЕНЬ)
		ИНАЧЕ 0
	КОНЕЦ КАК ДниДоОплаты,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) < &ТекущаяДата
			ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности), &ТекущаяДата, ДЕНЬ)
		ИНАЧЕ 0
	КОНЕЦ КАК ПросроченоДней
ИЗ
	РегистрНакопления.ВзаиморасчетыСКонтрагентами КАК ВзаиморасчетыСКонтрагентами
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
		ПО ВзаиморасчетыСКонтрагентами.Контрагент = Контрагенты.Ссылка
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
		ПО ВзаиморасчетыСКонтрагентами.ДоговорКонтрагента = ДоговорыКонтрагентов.Ссылка
ГДЕ
	ВзаиморасчетыСКонтрагентами.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг

СГРУППИРОВАТЬ ПО
	Контрагенты.Ссылка,
	ДоговорыКонтрагентов.ДопустимаяСуммаЗадолженности,
	ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности,
	ВзаиморасчетыСКонтрагентами.Регистратор.Ссылка,
	ВзаиморасчетыСКонтрагентами.Регистратор.СуммаДокумента,
	Контрагенты.Родитель.Ссылка,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) > &ТекущаяДата
			ТОГДА РАЗНОСТЬДАТ(&ТекущаяДата, ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности), ДЕНЬ)
		ИНАЧЕ 0
	КОНЕЦ,
	ВЫБОР
		КОГДА ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности) < &ТекущаяДата
			ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(ВзаиморасчетыСКонтрагентами.Регистратор.Дата, ДЕНЬ, ДоговорыКонтрагентов.ДопустимоеЧислоДнейЗадолженности), &ТекущаяДата, ДЕНЬ)
		ИНАЧЕ 0
	КОНЕЦ
Показать
sasha-asn; +1 Ответить
16. sasha-asn 12.08.19 14:13 Сейчас в теме
(15) спасибо получилось!
Прикрепленные файлы:
18. sasha-asn 12.08.19 14:42 Сейчас в теме
(15) Извините Олег, а подскажите - если есть по данному заказу в Структуре подчиненности - платежный документ (допустим ПлатежныйОрдер), как можно устанавливать пустые значения в ДниДоОплаты и ПросроченноДней?
19. BOV76 12.08.19 14:54 Сейчас в теме
(18)
Проверяйте, например, значение СуммаВзаиморасчетов регистра накопления "ВзаиморасчетыСКонтрагентами" на равенство 0.
sasha-asn; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот