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 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата от 150 000 руб. до 150 000 руб.
Полный день

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программист стажер 1С
Нижний Новгород
зарплата от 30 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день