Как присвоить поле к параметру в СКД

1. 5225688vd 30.03.23 08:39 Сейчас в теме
Здравствуйте, подскажите пожалуйста, у меня в запросе есть поле ДатаОбработки и есть параметр по которому вычисляется количество дней сколько за определенный период товар был на остатках, когда ставлю в параметрах ДатаНачала, которая является началом периода, все работает, но мне в параметр надо передать поле ДатаОбработки как это сделать в СКД?
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 30.03.23 09:15 Сейчас в теме
(1)
{&ДатаОбработки}
+
3. 5225688vd 30.03.23 09:40 Сейчас в теме
(2)Где это надо прописать?
+
4. RustamZz 30.03.23 13:17 Сейчас в теме
(3) Я попытался своими телепатическими усилиями получить текст запроса, что бы точно ответить, но или не к тому Данилевскому подключился, или он не о запросах в этот момент размышлял. Напишите, когда вы точно будете о нем думать - я повторю попытку. Я так понимаю, других вариантов увидеть его у нас же нет?
+
6. 5225688vd 30.03.23 13:44 Сейчас в теме
(4) Прошу прощения, отвлекся на другую задачу, не заходил на форум, вот запрос в котором считает количество дней с ДатаНачала, а мне надо чтобы считало с ДатаОбработки

ВЫБРАТЬ
ВЫРАЗИТЬ(&ТекущаяДата КАК ДАТА) КАК ТекущаяДата
ПОМЕСТИТЬ втТекущаяДата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
ИЗАФ.Номенклатура КАК Номенклатура,
ИЗАФ.Магазин КАК Магазин,
ИЗАФ.ДатаЗаказа КАК ДатаЗаказа,
ИЗАФ.ДатаОбработки КАК ДатаОбработки,
ИЗАФ.КоличествоПодтвердили КАК КоличествоПодтвердили,
ИЗАФ.КоличествоПоступило КАК КоличествоПоступило,
-РАЗНОСТЬДАТ(втТекущаяДата.ТекущаяДата, ИЗАФ.ДатаОбработки, ДЕНЬ) КАК КоличестоДнейСДатыОбработки,
ИЗАФ.Ответственный КАК Ответственный
ПОМЕСТИТЬ втИЗАФ
ИЗ
Справочник.ИЗАФ КАК ИЗАФ,
втТекущаяДата КАК втТекущаяДата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
1 КАК Единица
ПОМЕСТИТЬ Единицы

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
6

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
7

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
8

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
9

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
10
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, 1000 * (Тысячи.Единица - 1) + 100 * (Сотни.Единица - 1) + 10 * (Десятки.Единица - 1) + Единицы.Единица - 1), ДЕНЬ) КАК День
ПОМЕСТИТЬ ВТ_Дни
ИЗ
Единицы КАК Единицы,
Единицы КАК Десятки,
Единицы КАК Сотни,
Единицы КАК Тысячи
ГДЕ
ДОБАВИТЬКДАТЕ(&ДатаНачала, ДЕНЬ, 1000 * (Тысячи.Единица - 1) + 100 * (Сотни.Единица - 1) + 10 * (Десятки.Единица - 1) + Единицы.Единица - 1) <= &ДатаОкончания
;

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

СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Склад
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
втКоличествоДнейНаОстатках.Номенклатура КАК Номенклатура,
втКоличествоДнейНаОстатках.Склад КАК Склад,
втКоличествоДнейНаОстатках.ДатаДень КАК КоличествоДнейНаОстатках
ПОМЕСТИТЬ втОстатки
ИЗ
втКоличествоДнейНаОстатках КАК втКоличествоДнейНаОстатках
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
ВнутреннееПотреблениеТоваровТовары.Номенклатура КАК Номенклатура,
ВнутреннееПотреблениеТоваровТовары.Ссылка.Склад КАК Склад,
ВнутреннееПотреблениеТоваровТовары.Количество КАК КоличествоПродаж,
ВнутреннееПотреблениеТоваровТовары.Ссылка КАК КоличествоПродажПоДокументам
ПОМЕСТИТЬ втВнутреннееПотребление
ИЗ
Документ.ВнутреннееПотреблениеТоваров.Товары КАК ВнутреннееПотреблениеТоваровТовары
ГДЕ
ВнутреннееПотреблениеТоваровТовары.Ссылка.Проведен
И ВнутреннееПотреблениеТоваровТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
И ВнутреннееПотреблениеТоваровТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
;

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

ОБЪЕДИНИТЬ ВСЕ

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
втВнутреннееПотребление.Номенклатура КАК Номенклатура,
втВнутреннееПотребление.Склад КАК Склад,
ЕСТЬNULL(втВнутреннееПотребление.КоличествоПродаж, 0) КАК КоличествоПродаж,
ЕСТЬNULL(втВнутреннееПотребление.КоличествоПродажПоДокументам, 0) КАК КоличествоПродажПоДокументам
ПОМЕСТИТЬ втОбщ
ИЗ
втВнутреннееПотребление КАК втВнутреннееПотребление

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
втПродажи.АналитикаУчетаНоменклатурыНоменклатура,
втПродажи.Склад,
ЕСТЬNULL(втПродажи.КоличествоОборот, 0),
ЕСТЬNULL(втПродажи.Регистратор, 0)
ИЗ
втПродажи КАК втПродажи
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
втОбщ.Номенклатура КАК Номенклатура,
втОбщ.Склад КАК Склад,
СУММА(втОбщ.КоличествоПродаж) КАК КоличествоПродаж,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ втОбщ.КоличествоПродажПоДокументам) КАК КоличествоПродажПоДокументам,
втОстатки.КоличествоДнейНаОстатках КАК КоличествоДнейНаОстатках
ПОМЕСТИТЬ втОстаткиСПродажами
ИЗ
втОбщ КАК втОбщ
ЛЕВОЕ СОЕДИНЕНИЕ втОстатки КАК втОстатки
ПО втОбщ.Номенклатура = втОстатки.Номенклатура
И втОбщ.Склад = втОстатки.Склад

СГРУППИРОВАТЬ ПО
втОбщ.Номенклатура,
втОбщ.Склад,
втОстатки.КоличествоДнейНаОстатках
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
втОстаткиСПродажами.КоличествоПродаж КАК КоличествоПродаж,
втОстаткиСПродажами.КоличествоПродажПоДокументам КАК КоличествоПродажПоДокументам,
втОстаткиСПродажами.КоличествоДнейНаОстатках КАК КоличествоДнейНаОстатках,
втИЗАФ.ДатаЗаказа КАК ДатаЗаказа,
втИЗАФ.ДатаОбработки КАК ДатаОбработки,
втИЗАФ.КоличествоПодтвердили КАК КоличествоПодтвердили,
втИЗАФ.КоличествоПоступило КАК КоличествоПоступило,
втИЗАФ.КоличестоДнейСДатыОбработки КАК КоличестоДнейСДатыОбработки,
втИЗАФ.Ответственный КАК Ответственный,
втИЗАФ.Номенклатура КАК Номенклатура,
втИЗАФ.Магазин КАК Магазин
ИЗ
втИЗАФ КАК втИЗАФ
ЛЕВОЕ СОЕДИНЕНИЕ втОстаткиСПродажами КАК втОстаткиСПродажами
ПО втИЗАФ.Номенклатура = втОстаткиСПродажами.Номенклатура
И втИЗАФ.Магазин = втОстаткиСПродажами.Склад
ГДЕ
втИЗАФ.ДатаОбработки МЕЖДУ &ДатаНачала И &ДатаОкончания
+
8. RustamZz 30.03.23 13:51 Сейчас в теме
(6) Если я правильно понял задачу
Прикрепленные файлы:
+
9. 5225688vd 30.03.23 13:54 Сейчас в теме
(8) При такой настройке я получу остатки на ДатуОбработки, а мне остатки надо получить на указанный период, а количество дней когда товар был на остатках с ДатыОбработки, возможно я ошибаюсь.
+
10. RustamZz 30.03.23 13:58 Сейчас в теме
(9) Ну тогда там где дни считаете в тексте меняете ДатаНачала на ДатаОбработки, а где остатки получаете оставляете ДатаНачала.
+
11. 5225688vd 30.03.23 14:06 Сейчас в теме
(10)Так я пробовал, не правильно считатет
+
12. RustamZz 30.03.23 14:15 Сейчас в теме
(11) Ну это ваш запрос, вам его и исправлять. Универсальных решений в таком случае не существует.
+
13. 5225688vd 30.03.23 14:32 Сейчас в теме
(12)Согласен, буду думать, есть одна идея, просто не добрался еще, а Вам огромное спасибо!!!
+
5. Kilka_v_Kepke 30.03.23 13:39 Сейчас в теме
(1)
все работает, но мне в параметр надо передать поле ДатаОбработки

чтобы все перестало работать?
+
7. Kilka_v_Kepke 30.03.23 13:44 Сейчас в теме
(1) где-нибудь в модуле объекта при компоновке получи ДатаОбработки, и вставь его в параметры вместо даты начала
+
Внимание! Тема сдана в архив

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