Имя: Пароль:
1C
1С v8
Нужна помощь. Отчет на СКД
,
0 petroff_app
 
18.07.22
21:44
Коллеги, очень нужна помощь с отчетом на СКД. Уже месяц с ним мучаюсь.
Вводные:
В документе Заказ покупателя в ТЧ "Товары" есть поле "Дата поставки" - дата, до которой товар должны быть поставлен.
Имеется заказ покупателя, в котором две одинаковые позиции товара, но с разными датами поставки.
На основании этого заказа создано несколько документов Реализация ТиУ.
Необходимо написать отчет на СКД, который показывает сколько товаров и на какую сумму было поставлено в срок (дата реализации меньше/равна дате поставки из заказа) и сколько было поставлено с нарушением сроков с группировкой по покупателю. Товар выводить не надо. Дата реализации ограничена периодом отчета.
Проблема в том, что я не знаю каким образом заставить СКД определить в какую колонку посадить данные (например количество) - в "количество в срок" или "количество с нарушением сроков". По хорошему надо сначала "посадить" количество в колонку "количество в срок", но не более чем количество из заказа. Затем остаток (если есть) "посадить" в колонку "количество с нарушением сроков". Также может быть такое, что некоторое количество товара уже было реализовано ранее периода отчета и это количество не должно выводиться в отчет, но должно учитываться при распределении количества по колонкам "количество в срок" или "количество с нарушением сроков".
Подскажите, каким образом такое можно реализовать? Очень надеюсь на Вашу помощь! Если есть вопросы, задавайте.
1 Asmody
 
18.07.22
21:51
(0) надо было сначала регистр сделать, а потом уже по нему отчёт строить
2 petroff_app
 
19.07.22
07:18
Конфигурацию трогать нельзя. Заказчик просит только отчет.
3 Мимохожий Однако
 
19.07.22
07:42
Как связаны между собой одинаковые позиции Номенклатуры в Заказе и в Реализации?
4 echo77
 
19.07.22
08:47
(0) Задача заключается в том, чтобы распределить количество из реализаций номенклатуры по заказам по срокам поставки. Это нетривиальная задача для решения запросом, но решить можно. Задача сродни распределения по партиям.
Если в запросе не получается - лучше получать данные одним запросом, распределять алгоритмически и в СКД отправлять таблицу значений в набор данных Объект
5 petroff_app
 
19.07.22
11:57
(4) Пробовал так. Но проблема в том, что к покупателю надо привязать характеристики. К набору данных Объект привязать характеристики не выходит.
6 Ryzeman
 
19.07.22
12:04
(5) Что ты имеешь ввиду?
В общем-то, схожие задачи приходилось несколько раз решать и в 7 и в 8. Если нужна точность, то по сложным и не очень алгоритмам нужно сделать что написал (4). В типовых такое тоже местами встречается, через кучу временных таблиц.
Сперва сопоставляешь что к чему, отдельно считаешь просроченные и не просроченные, потом всё группируешь в итоговом запросе.
7 petroff_app
 
19.07.22
12:10
(6) Пробовал запросом получать данные, затем програмно их обрабатывал и помещал результат в СКД в набор данных Объект. Но как теперь к набору данных Объект прикрутить характеристики (ПВХ)? Они добавляются только в наборе данных Запрос.
8 petroff_app
 
19.07.22
12:14
Попробую добавить второй набор данных Запрос, в котором выберу контрагента из Справочника контрагентов. В этом запросе прикручу характеристики. И сделаю соединение двух наборов данных по контрагенту.
9 АгентБезопасной Нацио
 
19.07.22
14:53
Хм. а в чем проблема? товар в ТЧ реализации связан с товаром в ТЧ заказа по Заказ+номенклатура+КодСтроки Собираешь, и видишь, какой реализацией товар заказа отгружен, соответственно,  имеешь дату отгрузки. Если разница плановой даты и реальной неотрицательна - товар поставлен в срок, иначе - поставлен с опозданием. Выгружаешь это во временную, вычитаешь из заказа - остается непоставленный.
10 petroff_app
 
19.07.22
21:06
(9) Товар в ТЧ реализации НЕ связан с товаром в ТЧ заказа. Есть только связка Реализация-Заказ.
11 Мультук
 
гуру
19.07.22
21:14
(0)

Конфигурация типовая? Какая? Версия ?
12 Ryzeman
 
19.07.22
21:22
(9) Вариант - по РН "Заказы клиентов" собирать. Если из ТЧ больше ничего дёргать не надо, там всё есть
13 Мимохожий Однако
 
19.07.22
21:44
(10) Почему не связан?
14 petroff_app
 
19.07.22
22:35
(11) Управление производственным предприятием, редакция 1.3 (1.3.173.2) сильно доработанная.
15 petroff_app
 
19.07.22
22:35
(12) Из ТЧ заказа берется дата поставки
16 AlvlSpb
 
19.07.22
22:38
Как понял, отчет должен состоять из таблицы со строками Покупатель и колонками ресурсов кол=во в срок и кол-во с нарушением.
Мне одному непонятно КАК выполнить условие НЕ выводить проданное ДО даты отчета но учитывать в одной из колонок?
"Также может быть такое, что некоторое количество товара уже было реализовано ранее периода отчета и это количество не должно выводиться в отчет, но должно учитываться при распределении количества по колонкам "количество в срок" или "количество с нарушением сроков". ©
Это как?
17 petroff_app
 
19.07.22
22:56
(13) (16) Ситуация (заказ и реализации по одному контрагенту):
Заказ №1 от 20.01.2022:
Станок1, кол-во 10, дата поставки (до) 15.03.2022
Станок1, кол-во 5, дата поставки (до) 20.03.2022

Реализация №1 от 28.02.2022:
Станок1, кол-во 7  (все 7 шт. должны сесть в первую строку заказа)

Реализация №2 от 14.03.2022:
Станок1, кол-во 2   (все 2 шт. должны сесть в первую строку заказа)

Реализация №3 от 02.04.2022:
Станок1, кол-во 3   (1 шт. должен сесть в первую строку заказа - т.к. в первой строке 10 шт., еще 2 шт. во вторую строку заказа)

Формируем отчет с периодом 01.03.2022 - 30.04.2022.
Отчет должен выглядеть так:
Контрагент | Количество в срок | Количество с нарушением сроков
ООО "Миста"|         2         |              3

Реализация №1 не попадает в отчет, т.к. не соответствует периоду отчета
Из реализации №2 2 шт. попадают в колонку "Количество в срок", т.к. реализация от 14.03.2022, а дата поставки до 15.03.2022
Из реализации №3 все 3 шт. попадают в колонку "Количество с нарушением сроков", т.к. реализация от 02.04.2022, а даты поставок 15.03.2022 и 20.03.2022

Как-то так.
18 petroff_app
 
19.07.22
23:14
(16) Я неправильно написал. Надо как-то так: "Также может быть такое, что некоторое количество товара уже было реализовано ранее периода отчета и это количество не должно выводиться в отчет, но должно учитываться при разнесении количества по строкам заказа".
19 Ryzeman
 
19.07.22
23:49
(18) ну так связывай основную таблицу (заказы?) с условием по времени, а второстепенную внутренним соединением без ограничения
20 petroff_app
 
20.07.22
19:45
Получилось сделать так:
Получил данные запросом, алгоритмом "распределил" по строкам заказа (подтянул соответствующую дату поставки из заказа). Результат передал в СКД в набор данных Объект. Добавил второй набор данных Запрос - выбрал контрагента из справочника Контрагенты и прикрутил характеристики. Сделал соединение двух наборов данных.
Тему можно закрывать.
21 echo77
 
21.07.22
08:10
(20) А можно посмотреть схему, настройки и результат(как выглядит отчет)?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший