Помогите с отчётом в СКД на основе нескольких Регистров накопления (по дням и сопоставимым измерениям)

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. Ivanovag123 27.09.15 11:51 Сейчас в теме
День добрый!

Есть проблема с созданием отчёта...
Сейчас работаю с УТ 10.3, но эта проблема свойственна для любой конфигурации...

Итак, задача вроде бы простая: в отчет необходимо в разрезе Складов и Номенклатуры по дням за указанный период выводить Остатки на начало дня, Оборот (приход - расход), Остатки на конец дня, и Заказы оформленные с этих складов. Внешний вид отчёта примерно такой:

////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­
Склад/ | 01/01/2015 | 02/01/2015 |...| ИТОГО
/Номенклатура | НачОст Оборот КонОст Заказано | НачОст Оборот КонОст Заказано |...| НачОст Оборот КонОст Заказано

Склад1
|Стол
|Табуретка
Склад2
|Стол
|Шкаф
ИТОГО
////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­

Остатки и Оборот берутся из соответствующих полей виртуальной таблицы РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты.
Заказы берутся из поля "КоличествоПриход" виртуальной таблицы РегистрНакопления.ЗаказыПокупателей.Обороты.

А ТЕПЕРЬ СОБСТВЕННО ПРОБЛЕМА:
Всё формируется нормально, если Заказы имеются на ТЕ ЖЕ Дни/Склады/Номенклатуры, по которым есть Приход/Расход в Регистре ТоварыОрганизаций (за выбранный период, разумеется).
А вот если какой-то Заказ сформирован на Дату/Склад/Номенклатуру, отсутствующие в Регистре ТоварыОрганизаций, то начинаются "чудеса"...:
Если связывать регистры через "ОБЪЕДИНИТЬ", то по таким записям пропадают Остатки (и начальный и конечный).
Если связывать через "СОЕДИНЕНИЕ" даже через промежуточную виртуальную таблицу, содержащую все Даты/Склады/Номенклатуры из обоих регистров (за выбранный период), то запись о Заказе вообще выводится в начале отчёта с пустой датой и в строке без склада и номенклатуры.

ЧТО ДЕЛАТЬ??? КАК ПОБОРОТЬ???

Сразу скажу, что "Дополнение периодами" (в СКД) не помогает.

Вот пример запроса в СКД с использованием ОБЪЕДИНЕНИЯ в типовой УТ 10.3:

////////////////////////////////////////////////

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

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

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

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

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

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

СГРУППИРОВАТЬ ПО
	вт1.Период,
	вт1.Склад,
	вт1.Номенклатура
Показать


////////////////////////////////////////////////
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. mymyka 28.09.15 13:09 Сейчас в теме
(1)Прям ПРОБЛЕМА =)
Возьмите данные ПроизводственногоКалендаря за указанный период/передайте таблицу дат через ВТ(там будут все дни в указанном интервале), и уже к нему цепляйте данные обоих регистров по ПроизводственныйКалендарь.Дата = НачалоДня(ВашРегистр.Период). Потом, если понадобится, отфильтруете те дни, где не было оборотов ни по одному из регистров(например, выходные)
З.Ы.
Метод дополнения» задает один из следующих вариантов:

Движения

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

ДвиженияИГраницыПериода (по умолчанию)

В этом случае выбираются периоды, в которых были движения, а также периоды на начало и конец заданного интервала (с) СП

Метод дополнения это не то, что вы думаете.
Ivanovag123; +1 Ответить
15. Ivanovag123 28.09.15 15:30 Сейчас в теме
(13) mymyka,
А "Производственный календарь" - это где в УТ 10.3?
(сам уже думал создать подобную табличку со всеми датами, но если есть готовая,- подскажи где она, чёт не найду..).

Кстати, я пытался делать это, но по-другому - вытаскивал ОстаткиИОбороты, потом Заказы, а потом объединял их Периоды/Склады/Номенклатуры (уникальные, ессн.), и уже к этой вирт.таблице снова привязывал первые две. Но я не формировал первые две таблицы (хотя достаточно, наверное, только первую) заново... Счас попробую...

А за идею спс)
17. mymyka 28.09.15 16:18 Сейчас в теме
(15)РегистрСведений.РегламентированныйПроизводственныйКалендарь
Ivanovag123; +1 Ответить
2. Ivanovag123 27.09.15 12:29 Сейчас в теме
Сам я вижу проблему в том, что несмотря на указание мной в настройках СКД дополнять периоды днями с даты НачалоПериода по КонецПериода, сама СКД чихать на это хотела, и она выдёргивает остатки и обороты из регистра ТоварыОрганизаций только по тем дням, где есть приход или расход.

Неужели придётся буквально вручную выдёргивать остатки по тем Дням/Складам/Номенклатурам (и потом объединять всё это), по которым есть Заказы вне измерений ТоварыОрганизаций???

Или есть более красивое решение? Может быть, нужно просто настроить Роли в СКД (я не умею((()?
3. Ivanovag123 27.09.15 13:14 Сейчас в теме
Небольшое дополнение:

Если приход или расход есть, например, только 1го и 2го сентября,
а Заказ оформлен 4го сентября,
и при этом я формирую отчёт с 1го по 4е сентября,
то отчёт сформируется нормально, так как я в "Параметрах виртуальной таблицы" ТоварыОрганизацийОстаткиИОбороты указал "Метод дополнения" = "ДвиженияИГраницыПериода".

Супер! Вот только мне нужны данные из регистра ТоварыОрганизаций НЕ ТОЛЬКО на те даты, где есть обороты, или которые являются Границами заданного периода, а на ВСЕ даты...
Как это сделать??? Если бы не в СКД, а обычным запросом, то можно было бы сделать так:
...
Период ПЕРИОДАМИ (&Начало, &Конец, День).
...

А вот СКД издевается со своей оптимизацией запросов, будь она неладна... Замучался уже...
6. Ivanovag123 27.09.15 14:24 Сейчас в теме
(4) Nitralove, спасибо за ответ.
Этот видеокурс (Гилёва), и конкретно этот урок я видел.
Но в том то и дело, что там идёт обращение к ОДНОМУ(!!!) регистру накопления...
А у меня отчёт должен строиться по ДВУМ регистрам, в одном из которых (ТоварыОрганизаций), для простоты понимания, есть записи только 1го сентября, а во втором (ЗаказыПокупателей) только 2го сентября того же года.

И при попытке их как-то связать вылазиют кракозябры :(
7. spacecraft 27.09.15 14:35 Сейчас в теме
(6) Ivanovag123, в параметрах виртуальных таблиц укажите дату начала и дату окончания, которую используете в параметрах СКД.
8. Ivanovag123 27.09.15 15:01 Сейчас в теме
(7) spacecraft, спасибо.
Даты начала и окончания в параметрах виртуальных таблиц на уровне запросов я указывал. Не помогает.
Собственно их можно и не указывать, т.к. СКД подставляет их автоматически, если устраивают стандартные "НачалоПериода" и "КонецПериода"...
В любом случае эффект равен нулю((((

Эххххх, да неужели никто никогда не связывал несколько (хотя бы два) Регистров накопления, у которых нет совпадения хотя-бы по датам???
9. spacecraft 27.09.15 15:46 Сейчас в теме
(8) Ivanovag123, это?
ВЫБРАТЬ
	ТоварыОрганизацийОстаткиИОбороты.Склад,
	ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
	СУММА(0) КАК Заказано,
	ТоварыОрганизацийОстаткиИОбороты.ПериодДень КАК Период
ПОМЕСТИТЬ вт1
ИЗ
	РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, , Авто, ДвиженияИГраницыПериода, ) КАК ТоварыОрганизацийОстаткиИОбороты

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

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

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

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

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

СГРУППИРОВАТЬ ПО
	вт1.Склад,
	вт1.Номенклатура,
	вт1.Период
Показать
11. Ivanovag123 28.09.15 12:34 Сейчас в теме
(9) spacecraft, спасибо,
но выбор ".ПериодДень" и "Авто" ничего не дало, результат абсолютно тот же ((
10. spacecraft 27.09.15 16:28 Сейчас в теме
(8) Ivanovag123, вот так наверно? На базе УТ11
ВЫБРАТЬ
	ТоварыОрганизацийОстаткиИОбороты.ПериодДень,
	ТоварыОрганизацийОстаткиИОбороты.Склад,
	ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
	ЗаказыКлиентовОбороты.ЗаказаноПриход
ИЗ
	РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, , Авто, ДвиженияИГраницыПериода, ) КАК ТоварыОрганизацийОстаткиИОбороты
		ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Обороты(, , Авто, ) КАК ЗаказыКлиентовОбороты
		ПО ТоварыОрганизацийОстаткиИОбороты.Номенклатура = ЗаказыКлиентовОбороты.Номенклатура
			И ТоварыОрганизацийОстаткиИОбороты.Склад = ЗаказыКлиентовОбороты.Склад

СГРУППИРОВАТЬ ПО
	ТоварыОрганизацийОстаткиИОбороты.ПериодДень,
	ТоварыОрганизацийОстаткиИОбороты.Склад,
	ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
	ЗаказыКлиентовОбороты.ЗаказаноПриход
Показать
12. Ivanovag123 28.09.15 12:39 Сейчас в теме
(10) spacecraft, в УТ 11 сегодня попробую (настроить нужно), но чую что опять не то...

На всякий случай выкладываю готовую схему компоновки в УТ 10.3.
Прикрепленные файлы:
ОбъединениеРегистров_Авто_ПериодДень.xml
14. spacecraft 28.09.15 13:11 Сейчас в теме
(12) Ivanovag123, для УТ10 все тоже самое, только таблицу регистра заменить. Ну и склада нет во второй таблице.
ВЫБРАТЬ
	ТоварыОрганизацийОстаткиИОбороты.Склад,
	ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
	ТоварыОрганизацийОстаткиИОбороты.ПериодДень КАК Период,
	ЗаказыПокупателейОбороты.КоличествоПриход КАК Заказано
ИЗ
	РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, , Авто, ДвиженияИГраницыПериода, ) КАК ТоварыОрганизацийОстаткиИОбороты
		ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПокупателей.Обороты(, , Авто, ) КАК ЗаказыПокупателейОбороты
		ПО ТоварыОрганизацийОстаткиИОбороты.Номенклатура = ЗаказыПокупателейОбороты.Номенклатура

СГРУППИРОВАТЬ ПО
	ТоварыОрганизацийОстаткиИОбороты.Склад,
	ТоварыОрганизацийОстаткиИОбороты.Номенклатура,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоПриход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
	ТоварыОрганизацийОстаткиИОбороты.ПериодДень,
	ЗаказыПокупателейОбороты.КоличествоПриход
Показать
16. Ivanovag123 28.09.15 15:58 Сейчас в теме
(14) spacecraft, Не работает(((
И ты забыл указать связь по Периоду и по Складу...
Если не указывать, то данные везде задваиваются.
А если указать, то будет как я уже описывал - заказы появляются ни к чему не привязанные (в отдельной строке и в отдельной колонке без даты).

Во вложении отчёт для УТ 10.3 на твоём последнем запросе (я только Период и Склад там связал).
Прикрепленные файлы:
ВнешнийОтчет94.erf
24. spacecraft 28.09.15 18:18 Сейчас в теме
(16) Ivanovag123, вот скрин с данных по чисто вышеуказанному запросу, на вашем отчете. Вам так нужно? Или я не так понял.
Прикрепленные файлы:
26. Ivanovag123 29.09.15 07:48 Сейчас в теме
(24) spacecraft,

В вашей табличке я вижу 28.09.2015 (конечная дата отчёта) заказ одного Вентилятора.
Измените дату этого заказа на 27.09.2015, и сразу поймёте в чём проблема (на эту дату у вас пропадут нач. и кон.остатки по этой позиции).
Я писал об этом ещё в первом посте и уточнил в третьем...
28. spacecraft 29.09.15 08:05 Сейчас в теме
(26) Ivanovag123, не сразу понял. Тогда решать дополнение придется запросом. Во временную таблицу получать значения первой таблицы (остаткиИОбороты) на каждую дату в интервале. И уже ее соединять со второй.
29. Ivanovag123 29.09.15 08:30 Сейчас в теме
(28) spacecraft,
неа, я уже пробовал. Получается задвоение
38. spacecraft 29.09.15 09:31 Сейчас в теме
(29) Ivanovag123, а у меня получилось нормально. Правда делал на УТ11.
позже переделаю в УТ10, выложу.
Прикрепленные файлы:
Ivanovag123; +1 Ответить
40. Ivanovag123 29.09.15 09:40 Сейчас в теме
41. spacecraft 29.09.15 09:49 Сейчас в теме
(40) Ivanovag123, выкладываю внешний отчет и схему отдельно. Можно еще поработать над оптимизацией, но вполне рабочая схема.
Прикрепленные файлы:
ВнешнийОтчет95.erf
ОбъединениеРегистров_Авто_ПериодДень2.xml
42. Ivanovag123 29.09.15 10:49 Сейчас в теме
(41) spacecraft, к сожалению, не правильно(((
Хоть Остатки теперь и не затираются, но при этом и Остатки и обороты задваиваются,
нет группировки по складам итого, и скорее всего перепутаны связи.
Счас попробую исправить, если это возможно.

П.С.: А схему зачем? Я её с СКД могу и сам выдернуть :)
43. spacecraft 29.09.15 11:06 Сейчас в теме
(42) Ivanovag123, исправил. Небольшая доработка.
Прикрепленные файлы:
ВнешнийОтчет95.erf
46. Ivanovag123 29.09.15 11:32 Сейчас в теме
(43) spacecraft, неа, та же проблема...
Прикрепленные файлы:
48. spacecraft 29.09.15 11:40 Сейчас в теме
(46) Ivanovag123, странно. У меня нормально отображает. Может предыдущая версия отчета запускается?
выложу под другим именем.
Прикрепленные файлы:
ВнешнийОтчет96.erf
50. Ivanovag123 29.09.15 11:45 Сейчас в теме
(48) spacecraft,
ну где же нормально?
У тебя на скрине кон.остаток на 08.03.2007 равен 10421, а начальный на след.день почему-то 9976.
Украли? )))
51. spacecraft 29.09.15 11:55 Сейчас в теме
(50) Ivanovag123, это уже другая ошибка. И тут пока не знаю как решить. Ведь если нет оборотов за период, то и данные берутся на предыдущий день, когда были. А там начальный и конечный именно на тот день. Вот они и копируются на дни, когда оборотов не было.
52. spacecraft 29.09.15 12:04 Сейчас в теме
(50) Ivanovag123, вот так должно помочь.
Прикрепленные файлы:
ВнешнийОтчет97.erf
Ivanovag123; +1 Ответить
53. Ivanovag123 29.09.15 12:47 Сейчас в теме
(52) spacecraft, почти победил(и)!!!
Глянь скрин...
Там осталась проблема только с начальным ИТОГОВЫМ остатком (в последнем столбике).
Всё остальное ОК!!!
Возможно, проблема в назначении ролей для полей остатка, хотя как тогда они правильно между днями переносятся??))
Пытаюсь понять...
Прикрепленные файлы:
54. konstruktiv 29.09.15 12:51 Сейчас в теме
(53) Ivanovag123, а так?
Прикрепленные файлы:
ВнешнийОтчет1.erf
Ivanovag123; spacecraft; +2 Ответить
55. Ivanovag123 29.09.15 13:01 Сейчас в теме
(54) konstruktiv,
неа, то же что и двадцать постов тому назад - пропадают остатки там, где заказ есть, а прихода/расхода нет.
Прикрепленные файлы:
57. konstruktiv 29.09.15 13:17 Сейчас в теме
(55) Ivanovag123, я не знаю, насколько это корректно, но в моем варианте, если полю "Заказано" в диалоге настройки ролей указать "Измерение", то проблема со скриншота решается
Ivanovag123; +1 Ответить
59. Ivanovag123 29.09.15 13:23 Сейчас в теме
(57) konstruktiv, и правда, проблема и так решается...
Хде ж ты раньше был??????????
Я в шоке. А как это Заказы измерением могут быть???????? СКД издевается, или я туплю?
62. Ivanovag123 29.09.15 14:46 Сейчас в теме
(57) konstruktiv, ...({(&НачалоПериода)}, {(&КонецПериода)},)... лишнее вроде. Я удалил, ничего не поменялось (То есть всё так же зашибись!, только кода меньше).
56. spacecraft 29.09.15 13:06 Сейчас в теме
(53) Ivanovag123, итоги это уже в настройках ролей.
58. Ivanovag123 29.09.15 13:17 Сейчас в теме
(56) spacecraft, УРААААААААААААААА, ЗАРАБОТАЛООООООООО!!!!!!!!!!!

к (50) добавил настройку ролей по полям остатков и периода.

Финальный полностью рабочий отчёт (для УТ 10.3) в приложении.

spacecraft, спасибо тебе ОГРОМНОЕ!!!!!!!!!!!!!!!
Прикрепленные файлы:
ВнешнийОтчет97_1.erf
44. Ivanovag123 29.09.15 11:11 Сейчас в теме
(41) spacecraft, посмотри скрин
Прикрепленные файлы:
45. spacecraft 29.09.15 11:24 Сейчас в теме
(44) Ivanovag123, не туда посмотрел. Вот исправленный вариант
Прикрепленные файлы:
ВнешнийОтчет95.erf
5. Nitralove 27.09.15 13:48 Сейчас в теме
Может все таки где ошибся в нстройках
18. ditp 91 28.09.15 16:59 Сейчас в теме
20. Ivanovag123 28.09.15 17:27 Сейчас в теме
(18) ditp,
что-то я юмора с кодом не понял... Фрагмент:
ВЫБРАТЬ
"товар1" КАК товар,
"склад1" КАК склад,
"20150901" КАК дата,
10 КАК остаток,
5 КАК приход,
4 КАК расход
ПОМЕСТИТЬ тОстатки

Нужно всё заменить на ссылки?
23. ditp 91 28.09.15 17:45 Сейчас в теме
(20) Ivanovag123, естесно, на ваши таблички заменить нужно.
В остальном, надеюсь, логика понятна.

Фрагмент кода из (19) может пригодиться, если в конфигурации нет регистра с календарем или он не заполнен.
34. Ivanovag123 29.09.15 08:49 Сейчас в теме
(18) ditp,
можете ваш отчёт на реальных регистрах УТ 10 сделать?
Что-то я никак не могу ваши виртуальные таблицы расковырять...
Просто судя по скрину у вас ошибка только в остатке на первую дату (5-4 д/б=1, а не 10), а в остальном нормально всё...
36. ditp 91 29.09.15 09:15 Сейчас в теме
(34) Ivanovag123, нет у меня ут 10 под рукой. да и лень.
Свои таблицы заполняю от балды и для примера, требовать от них каких=то корректных данных странно.
Замена "выбрать хрень объединить выбрать чушь" на реальные регистры вполне тривиальна.
37. Ivanovag123 29.09.15 09:27 Сейчас в теме
(36) ditp,
Могу в облако выложить с уже заполненными данными, + внешний отчёт
19. ditp 91 28.09.15 17:10 Сейчас в теме
Но будут пропуски дней, если не было ни движений, ни заказов.

Тогда действительно, поможет либо таблица с датами типа календаря, либо что-то вроде

ВЫБРАТЬ 0 КАК Х ПОМЕСТИТЬ Регистр1 ОБЪЕДИНИТЬ ВЫБРАТЬ 1;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ Младшие.Х + 2 * Старшие.Х КАК Х ПОМЕСТИТЬ Регистр2 ИЗ Регистр1 КАК Младшие, Регистр1 КАК Старшие;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ	Младшие.Х + 4 * Старшие.Х КАК Х ПОМЕСТИТЬ Регистр4 ИЗ Регистр2 КАК Младшие, Регистр2 КАК Старшие;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ Младшие.Х + 16 * Старшие.Х КАК Х ПОМЕСТИТЬ Регистр8 ИЗ Регистр4 КАК Младшие, Регистр4 КАК Старшие;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ДОБАВИТЬКДАТЕ(&НачДата, ДЕНЬ, Регистр8.Х) КАК Дата
ИЗ
	Регистр8 КАК Регистр 
ГДЕ ДОБАВИТЬКДАТЕ(&НачДата, ДЕНЬ, Регистр8.Х) <= &КонДата
Показать


(используется http://infostart.ru/public/90367/)
Ivanovag123; +1 Ответить
21. Ivanovag123 28.09.15 17:30 Сейчас в теме
(19) ditp,
Это я вообще ни разу не понял...

Ан нет, понял, когда ссылку прочитал.
Только я не уверен, что это лучшее решение.
Но за новую идею ставлю плюс))
22. mymyka 28.09.15 17:44 Сейчас в теме
(21)В (19) код для запроса, генерирующий таблицу дат, состоящую из дней в указанном периоде. Для случая, если нет готового регистра с датами.
Первые 3 пакета генерируют таблицу чисел от 1 до 256, а финальный запрос для каждого из этих чисел вычисляет день, равный НачДата + Число дней, и берет только те строки, в которых полученная Дата меньше КонДата.
27. Ivanovag123 29.09.15 07:59 Сейчас в теме
(22) mymyka, да, я понял, спс. Регистр я нашёл и заполнил.
Но похоже, что проблему это не решает.
25. echo77 1884 28.09.15 19:06 Сейчас в теме
(0) Задачу решили?
Проблема в том что СКД не может правильно рассчитать итоги, из-за того что у вас поля называются одинаково.
Я решал подобную задачу вполне успешно - необходимо в запросе дать разные псевдонимы полям-измерениям. Далее на вкладке вычисляемые поля я переопределял поля - решение не очень, т.к. тераяется возможность наложить отбор на поле в запросе, а не на уровне СКД, но работает.
Если интересно - я готовлю публикацию по отчету для УАТ, в качестве примера выложу схему по вашей задаче - она проще и доступнее
35. Ivanovag123 29.09.15 08:49 Сейчас в теме
(25) echo77, нет, пока не решили
30. Ivanovag123 29.09.15 08:35 Сейчас в теме
Я вот тут подумал...
Может быть объединение делать не в запросе, а на уровне СКД (Первая закладка, - Добавить набор данных объединение...)
Только я так ни разу не делал и не знаю как это сделать... Может кто-нить сбацать?
31. spacecraft 29.09.15 08:39 Сейчас в теме
(30) Ivanovag123, я вчера это попробовал. Тоже самое получается. Тут проблема в самом дополнение средствами СКД.
Да и такое соединение получается левым (или даже внутренним, если на вторую таблицу ограничение делать).
32. Ivanovag123 29.09.15 08:42 Сейчас в теме
(31) spacecraft, так там же ОБЪЕДИНЕНИЕ, а не соединение... Как оно может быть левым/правым, и т.п.??
33. spacecraft 29.09.15 08:46 Сейчас в теме
(32) Ivanovag123, я про соединение 2-х наборов. Объединение не пробовал. Но думаю, что будет то же самое.
39. Ivanovag123 29.09.15 09:39 Сейчас в теме
Попробовал объединить на уровне наборов данных (а не в запросе)...
Абсолютно тот же самый косяк ((((

Достал уже этот отчёт пи-пи-пи-пи.................................
47. Ivanovag123 29.09.15 11:34 Сейчас в теме
Кстати, возьми вот этот отчёт, я там группировку, порядок полей, и т.д. настроил.
Прикрепленные файлы:
ВнешнийОтчет95_2.erf
49. spacecraft 29.09.15 11:43 Сейчас в теме
(47) Ivanovag123, там не окончательный вариант. Предыдущий.
60. Ivanovag123 29.09.15 13:25 Сейчас в теме
Ребят, я за пивом :)) Аж два рабочих варианта)))
61. mymyka 29.09.15 14:11 Сейчас в теме
В аттаче база, с аккуратным решением, без нагромождения наборов данных, временных таблиц, регистра дат и пакетных запросов :Р ВнешнийОтчет1, все данные уже заведены.
63. Ivanovag123 29.09.15 15:09 Сейчас в теме
(61) mymyka,
konstruktiv в (57) уже всё решил (спасибо ему ОГРОМНОЕ), и там действительно всё элементарно (да простит меня spacecraft с его абсолютно рабочим вариантом (58), но вариант konstruktiv понятнее и проще).

Отчёт для УТ 10.3 во вложении. Всё проверено, работает быстро и корректно. Проверено всё, что только можно.

Я там просто немного доработал его код (там только "приукрашки" форматирования):
- Склады теперь по иерархии (у нас так),
- добавил дополнение периодов по дням (не знаю зачем, просто вроде так просили)),
- порядок полей исправил (кон.остаток в конце),
- дата окончания берёт время 23:59:59 (если это не сделать, то обороты по товарам за последний день в отчёт не попадут),
- у всех количеств точность = 0 (мне так надо, т.к. у нас половину пылесоса не продают))),
- период в заголовках сделал без времени (07.09.2015 0:00:00 -> 07.09.2015) и выровнял по центру,
- столбики с кон.остатком закрасил светло-серым для наглядности.
Прикрепленные файлы:
ВнешнийОтчет1_Конструктив.erf
64. Ivanovag123 29.09.15 15:11 Сейчас в теме
65. mymyka 29.09.15 15:23 Сейчас в теме
забыл )
вообщем, задача решается Типом дополнения группировки Период. Остальное скд сделает сама.
Прикрепленные файлы:
1Cv8.dt
66. Ivanovag123 29.09.15 15:42 Сейчас в теме
(65) mymyka, не понял... а дтшник тут при чём? Делать новую конфигурацию? Круто :)
И что такое Тип дополнения группировки Период? Если вы о том, что в скрине, то это ни разу не помогло.
Прикрепленные файлы:
Оставьте свое сообщение

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