Из временной таблицы выбрать как ТЗ (наподобии выборки табличных частей из дока) #788411


#0 by pirate_
Ребят застрял, переделываю чужой отчет, структуры и т.п. менять не могу. много уже чего переделал, в нем но столкнулся с такой гадостью. В оригинале в отчете используется рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов в ней запрос, получаем довольно долгий запрос в цикле. Причем в глубину 1 выполняется 93% и 7% глубже 1. Чтобы ускорить хочу перенести глубину 1 в верхний общий запрос остальные 7% пускай так и выполняются. И теперь собственно вопрос есть первая временная таблица (Номенклатура, документ оприходования, ......, заказ) и вторая временная (Номенклатура, документоприходования, ......, заказ, НоменклатураДляСвязи,ДокументОприходованияДляСвязи), вторая по полям идентична первой кроме добавленных двух полей в конце. Нужно в результате выбрать первую таблицу и по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи получить вторую таблицу "одним полем" примерно так как формируются табличные части как поле с ТЗ.
#1 by Джинн
Коллега, ни фига не понял суть вопроса. Поясните подробнее после слов "нужно в результате..". Кроме того "рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов" на фиг не нужна - периодические значения легко получаются запросом без рекурсии.
#2 by pirate_
одним из партия образующих документов есть документ сборка в котором в качестве исходника номенклатура которая были также получена из сборки. Нужно получить себестоимость в некой валюте по материалам по датам поступления, если Вы укажете как сделать это не рекурсивно и не изменяя конфу, буду очень рад Нужно получить примерно такое: Номенклатура, Документоприходования .... заказ, изчегостостоит(тут ТЗ из второй таблицы по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи, может быть и пустая)
#3 by Живой Ископаемый
?Пример
#4 by pirate_
Таблица1
#5 by pirate_
Таблица1 НОменклатура1  Док1,....,заказ1 НОменклатура1  Док2,....,заказ2 НОменклатура1  Док3,....,заказ3 Таблица2 Номенклатура3, Док4,....,Док2,номенклатура1 Номенклатура4, Док5,....,Док2,номенклатура1 На выходе: НОменклатура1  Док1,....,заказ1, (пусто) НОменклатура1  Док2,....,заказ2, (две строчки из таблицы2) НОменклатура1  Док3,....,заказ3, (пустро)
#6 by Живой Ископаемый
Да не обращай внимания. Это я пытаюсь написать на форум текст с юникод-символами: Я?
#7 by Джинн
#8 by Живой Ископаемый
Но не получается, экранируют
#9 by pirate_
Причем тут это? Даты откуда получить? Суть вопроса не в этом вообще, мне нужно выбрать поле в котором будет ТЗ из таблицы 2, примерно так выбираются данные из табличных частей документа.
#10 by Джинн
документ оприходования.Дата
#11 by pirate_
для тех кто в танке: одним из партия образующих документов есть документ сборка в котором в качестве исходника номенклатура которая были также получена из сборки. Нужно получить себестоимость в некой валюте по материалам по датам поступления, если Вы укажете как сделать это не рекурсивно и не изменяя конфу, буду очень рад УРОВЕНЬ ВЛОЖЕННОСТИ НЕ 1, а может быть любой, собираются комплектующие даты во партиям соберете не рекурсивно?. И я вообще не это спрашивал, это все у меня есть и работает, посмотрите пример в каком виде мне нужно получить данные.
#12 by Джинн
Для тех, кто занятия по русскому языку прогулял и фразу "рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов" понимает как-то по-своему - рекурсию с произвольной глубиной вложенности запросом не получить. Нужна либо процедурная обработка, либо циклически выполняющийся запрос с параметрами. Но сама задача какая-то странная. На хрена пересчитывать документы по историческому курсу, если они по этому курсу уже пересчитаны в валюту учета?
#13 by pirate_
Блин, да мне не нужно получать рекурсию запросом, ВОПРОС НЕ В ЭТОМ. пример что есть и что нужно получить. Не важно для чего, нужно получить в таком виде. Давайте дальше о грамматике поговорим?
#14 by pirate_
Первоначальный вопрос И теперь собственно вопрос есть первая временная таблица (Номенклатура, документ оприходования, ......, заказ) и вторая временная (Номенклатура, документоприходования, ......, заказ, НоменклатураДляСвязи,ДокументОприходованияДляСвязи), вторая по полям идентична первой кроме добавленных двух полей в конце. Нужно в результате выбрать первую таблицу и по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи получить вторую таблицу "одним полем" примерно так как формируются табличные части как поле с ТЗ. Вот пример: Таблица1 НОменклатура1  Док1,....,заказ1 НОменклатура1  Док2,....,заказ2 НОменклатура1  Док3,....,заказ3 Таблица2 Номенклатура3, Док4,....,Заказ4,Док2,номенклатура1 Номенклатура4, Док5,....,Заказ5,Док2,номенклатура1 На выходе: НОменклатура1  Док1,....,заказ1, (пусто) НОменклатура1  Док2,....,заказ2, (две строчки из таблицы2) НОменклатура1  Док3,....,заказ3, (пусто)
#15 by Джинн
Что есть "две строчки из таблицы2)"?
#16 by Либерал
ИТОГИ ПО дальше выборка по группировкам или выгружай в дерево он хочет, чтоб запрос вернул примерно как ВЫБРАТЬ Д.Дата Д.Номер Д.ТабЧастьНапримерТовары ИЗ МойВолшебныйДокументСТабЧастью КАК Д
#17 by pirate_
по поводу итоги по, таблицы имеют одинаковые колонки, и должны таким остаться, должна быть вложенная таблица, если бы был бы это МойВолшебныйДокументСТабЧастью все было бы великолепно, но как сделать это из врем таблиц?
#18 by Либерал
пират, не будь таким кровожадным, сделай уже по человечески - ИТОГИ при условии (как тебе намекнули уже), что сама постановка задачи методически не оч мудацкая
#19 by pirate_
Да с удовольствием бы, но отдать данные нужно в таком формате, постановка реально дебильная, и моя часть это оптимизация небольшого куска общей задачи, этот кусок выполнялся 1,5 часа, после оптимизаций 40 мин, дальше при переносе первого уровня рекурсии в "верхний запрос" я получаю данные за 7-10 мин, но они не в том виде в котором нужны, кроме того что получаю там еще куча всего делается и высчитывается по этим данным и это менять я не могу, из-за этого не могу поменять структуру данных получаемых в запросе. Вообще глобально это баланс и финансовые результаты в виртуальной валюте, не спрашиваете для чего, я этого не знаю, моя задача суб-суб подрядная и только ускорить получение данных.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С