Версия для печати темы (https://pro1c.org.ua/index.php?s=558b1cdafeafa576561c55df07cb66c4&showtopic=41545)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ СКД комплексный отчет по нескольким метаданным

Автор: bizisoft 02.11.17, 11:34

Здравствуйте.
Альфа-Авто 4.1
Есть внешняя обработка, которая выполняет несколько запросов по Номенклатура, Партии, Цены(срез последних), Продажи.
В качестве параметра:
а) Номенклатура - как единичный товар, группа товаров, табличная часть документа.
б) список складов
в) список типов цен
Результаты выполнения запросов потом в цикле сводятся в общую таблицу по столбцам (остатки по складам, цены по типам цен, продажи по складам).
Теперь еще требуется добавить информацию по продажам каждого товара за период(ы) и информацию по ценам поставщиков (прайс-листы контрагентов).

Добавлять очередные запросы и циклы для обработки результатов в общую таблицу будет не по феншую, как в прочем и сама обработка, т.к. выполнение "отчета" и так занимает значительное время.

Подскажите пожалуйста, как правильно в СКД объединить это все в одно целое.
Изначально я попробовал в конструкторе запросов добавить в набор данных сразу все необходимые объекты, но при запуске процесс сразу откушал 4Гб оперативки - пришлось рубить.
Потом попробовал для каждого объекта добавить свой набор данных и установить связи, но и тут не получилось разобраться что с чем связывать.

Помогите разобраться, как в СКД сделать такой сложный отчет.

Автор: bizisoft 13.02.18, 11:32

bizisoft @ 02.11.17, 12:34 * ,

И вновь продолжается бой, и сердцу тревожно в груди, и снова отчет СДК никак не может срастись...

Вроде с "простым" отчетом получается (один объект метаданных например РегистрВзаиморасчеты или ПартииОбороты), а вот с множеством объектов метаданных не выходит каменный цветок - ума не приложу как их тут свести в одно.

Пробовал в запросе добавлять несколько объектов: Номенклатура, ПартииТоваров, ЦеныСрезПоследних, Продажи, ПрайсыПоставщиков, ЗаказыПоставщиков, СчетОтПоставщика.
Но при попытке эти объекты связать например по Номенклатуре не дает результатов и ругается.
Может разные объекты нужно формировать каждый в своем наборе данных, а потом эти наборы данных связывать, но и здесь у меня проблема - как это все связать воедино, не получается.

Пока сделал все через внешнюю обработку через функции.
В процедуре последовательно вызываю функции, которые выполняют запросы по каждому объекту отдельно, потом пробегаю циклом по ТЗ и "преобразую/переношу" необходимые данные из строк в столбцы.
После чего функция возвращает результирующую ТЗ.
После каждой функции вызывается функция объединения полученной ТЗ с итоговой.
Все это настолько топорно получилось, что самому противно, но это нужно было сделать быстро, чтобы хоть что-то было, пока это не реализуется в СКД.
И этот монстр работает очень медленно

Но со временем требуют добавить еще объекты, чтобы в результате было больше информации и это наверное не предел., то ли еще будет.

Может нужно делать запросы по каждому объекту, как в обработке и помещать результирующие ТЗ в объекты, а потом в СКД их связывать и выводить в общий отчет?

Помогите советом пожалуйста, наставьте на путь истинный, как правильно это сделать.

Автор: Vofka 13.02.18, 13:13

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

Автор: sava1 13.02.18, 13:38

Для начала освойте Консоль запросов, получите в ней результат, а потом "внедряйтесь" в СКД

Автор: bizisoft 13.02.18, 14:11

Цитата(Vofka @ 13.02.18, 14:13) *
Покажите на примере двух объектов что вы делаете и что не получается.

Добавляю НаборДанных1 нажимаю КонструкторЗапросов добавляю Номенклатура и ПартииТоваровКомпанииОстатки, для них указываю нужные поля Далее Связи.
Там уже автоматом установилась связь
ПартииТоваровКомпанииОстатки - Номенклатура --- ПартииТоваровКомпанииОстатки.Номенклатура = Номенклатура.Ссылка

Жму Ок - и получаю по голове {(14,50)} Неоднозначное поле "Номенклатура.Ссылка" ПО ПартииТоваровКомпанииОстатки.Номенклатура = <<?>>Номенклатура.Ссылка


Второй вариант Добавляю два набора данных - 1.Номенклатура, 2. ПартииТоваровОстаток
Связку указываю ИсточникСвязи - Номенклатура, ПриемникСвязи - ПартииТоваровОстаток;
ВыражениеИсточник - Ссылка, Выражение приемник - Номенклатура
Остальные параметры не заполняю

Ресурсы указываю Количество и Суммы
Настройки формирую мастером.

Ошибки не выдает, но и ничего не показывает.


Цитата(sava1 @ 13.02.18, 14:38) *
Для начала освойте Консоль запросов

Вы имеете ввиду изначально отладить запрос в консоле? А если запрос будет составным или с объединениями это не отразится на СКД отчете ?

Автор: sava1 13.02.18, 14:14

Цитата(bizisoft @ 13.02.18, 14:11) *
это не отразится на СКД отчете ?

никак

Автор: Vofka 13.02.18, 14:14

Цитата(bizisoft @ 13.02.18, 14:11) *
Жму Ок - и получаю по голове {(14,50)} Неоднозначное поле "Номенклатура.Ссылка"

После того, как вы добавляете таблицу справочника Номенклатура в конструкторе запросов, она появляется в области Таблица с именем Номенклатура. Клацните там правой кнопкой, нажмите переименовать и введите имя СпрНоменклатура.

Автор: bizisoft 13.02.18, 15:28

Vofka @ Сегодня, 15:14 * ,
Благодарю, ошибки теперь не возникает.
Получается коллизия из-за этого возникала, система думала, что это поле неуказанного регистра/документа?

А как правильно сделать, чтобы например склады и цены выводились не строками, а столбцами?
Я в настройках (там где строки, колонки, таблицы) их указал в столбцах, но они все равно строками.

Автор: podcast 13.02.18, 15:58

bizisoft @ Сегодня, 15:28 * ,
Сделайте таблицу и в колонках укажите Склады и цены.

Автор: bizisoft 14.02.18, 12:38

podcast @ Вчера, 16:58 * ,
Прошу прощения, а можно уточнить, а то не совсем уяснил где это нужно.

Автор: podcast 14.02.18, 14:10

bizisoft @ Сегодня, 12:38 * ,

Автор: bizisoft 14.02.18, 14:55

podcast @ Сегодня, 15:10 * ,
Добавляю еще одну таблицу.
В результате появляется еще одна таблица, но требуется немножко другое - нужна одна таблица, некоторые данные из строк нужно перенести в колонки.

Например
Выводит что-то в таком виде
Номенклатура Склад Остаток ТипЦены Цена
Товар1 Скл1 2 ОПТ 1,2
Товар1 Скл2 4 ОПТ 1,2
Товар1 Скл3 5 ОПТ 1,2

Товар1 Скл1 2 ОПТ1 1,5
Товар1 Скл2 4 ОПТ1 1,5
Товар1 Скл3 5 ОПТ1 1,5

Товар1 Скл1 2 РОЗН 2
Товар1 Скл2 4 РОЗН 2
Товар1 Скл3 5 РОЗН 2

А нужно получить что-то похожее, но в одной таблице
Номенклатура Скл1 Скл2 Скл3 ОПТ ОПТ1 РОЗН
Товар1 2 4 5 1,2 1,5 2

Такое возможно это сделать?

Автор: podcast 14.02.18, 16:31

bizisoft @ Сегодня, 14:55 * ,
Добавьте Склад и Тип цены в колонку, а Номенклатуру и цену в строки, должно получиться.

Автор: bizisoft 15.02.18, 14:10

podcast @ Вчера, 17:31 * ,
Скажите пожалуйста, а "Другие настройки" нужно что-то изменять?
Все равно не получается.
Добавил Остаток и Цену в строки, так оно их дополнительными (отдельными) строками выводит.
Пробовал объединять в группы и настройках ставил Выводить реквизиты отдельно.



Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua