Имя: Пароль:
1C
1С v8
Из временной таблицы выбрать как ТЗ (наподобии выборки табличных частей из дока)
0 pirate_
 
04.01.17
18:36
Ребят застрял, переделываю чужой отчет, структуры и т.п. менять не могу. много уже чего переделал, в нем но столкнулся с такой гадостью. В оригинале в отчете используется рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов в ней запрос, получаем довольно долгий запрос в цикле. Причем в глубину 1 выполняется 93% и 7% глубже 1. Чтобы ускорить хочу перенести глубину 1 в верхний общий запрос остальные 7% пускай так и выполняются. И теперь собственно вопрос есть первая временная таблица (Номенклатура, документ оприходования, ......, заказ) и вторая временная (Номенклатура, документоприходования, ......, заказ, НоменклатураДляСвязи,ДокументОприходованияДляСвязи), вторая по полям идентична первой кроме добавленных двух полей в конце. Нужно в результате выбрать первую таблицу и по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи получить вторую таблицу "одним полем" примерно так как формируются табличные части как поле с ТЗ.
1 Джинн
 
04.01.17
18:52
Коллега, ни фига не понял суть вопроса. Поясните подробнее после слов "нужно в результате..".

Кроме того "рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов" на фиг не нужна - периодические значения легко получаются запросом без рекурсии.
2 pirate_
 
04.01.17
19:01
(1) одним из партия образующих документов есть документ сборка в котором в качестве исходника номенклатура которая были также получена из сборки. Нужно получить себестоимость в некой валюте по материалам по датам поступления, если Вы укажете как сделать это не рекурсивно и не изменяя конфу, буду очень рад

Нужно получить примерно такое:
Номенклатура, Документоприходования .... заказ, изчегостостоит(тут ТЗ из второй таблицы по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи, может быть и пустая)
3 Живой Ископаемый
 
04.01.17
19:10
?Пример
4 pirate_
 
04.01.17
19:30
(3)

Таблица1
5 pirate_
 
04.01.17
19:36
(3)
Таблица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 Живой Ископаемый
 
04.01.17
19:40
Да не обращай внимания. Это я пытаюсь написать на форум текст с юникод-символами: Я?
7 Джинн
 
04.01.17
19:40
8 Живой Ископаемый
 
04.01.17
19:40
Но не получается, экранируют
9 pirate_
 
04.01.17
19:53
(7) Причем тут это? Даты откуда получить? Суть вопроса не в этом вообще, мне нужно выбрать поле в котором будет ТЗ из таблицы 2, примерно так выбираются данные из табличных частей документа.
10 Джинн
 
04.01.17
21:23
(9) документ оприходования.Дата
11 pirate_
 
04.01.17
21:42
(10) для тех кто в танке:

одним из партия образующих документов есть документ сборка в котором в качестве исходника номенклатура которая были также получена из сборки. Нужно получить себестоимость в некой валюте по материалам по датам поступления, если Вы укажете как сделать это не рекурсивно и не изменяя конфу, буду очень рад

УРОВЕНЬ ВЛОЖЕННОСТИ НЕ 1, а может быть любой, собираются комплектующие даты во партиям соберете не рекурсивно?.
И я вообще не это спрашивал, это все у меня есть и работает, посмотрите пример в каком виде мне нужно получить данные.
12 Джинн
 
04.01.17
21:54
(11) Для тех, кто занятия по русскому языку прогулял и фразу "рекурсивная конструкция связанная с получение себестоимости по курсам на даты получения материалов" понимает как-то по-своему - рекурсию с произвольной глубиной вложенности запросом не получить. Нужна либо процедурная обработка, либо циклически выполняющийся запрос с параметрами.

Но сама задача какая-то странная. На хрена пересчитывать документы по историческому курсу, если они по этому курсу уже пересчитаны в валюту учета?
13 pirate_
 
04.01.17
21:59
(12) Блин, да мне не нужно получать рекурсию запросом, ВОПРОС НЕ В ЭТОМ. пример что есть и что нужно получить. Не важно для чего, нужно получить в таком виде. Давайте дальше о грамматике поговорим?
14 pirate_
 
04.01.17
22:04
(12) Первоначальный вопрос
И теперь собственно вопрос есть первая временная таблица (Номенклатура, документ оприходования, ......, заказ) и вторая временная (Номенклатура, документоприходования, ......, заказ, НоменклатураДляСвязи,ДокументОприходованияДляСвязи), вторая по полям идентична первой кроме добавленных двух полей в конце. Нужно в результате выбрать первую таблицу и по связи Номенклатура=НоменклатураДляСвязи и документоприходования=ДокументОприходованияДляСвязи получить вторую таблицу "одним полем" примерно так как формируются табличные части как поле с ТЗ.


Вот пример:
Таблица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 Джинн
 
04.01.17
22:42
Что есть "две строчки из таблицы2)"?
16 Либерал
 
04.01.17
23:35
(14) ИТОГИ ПО
дальше выборка по группировкам или выгружай в дерево

(15) он хочет, чтоб запрос вернул примерно как

ВЫБРАТЬ
Д.Дата
Д.Номер
Д.ТабЧастьНапримерТовары
ИЗ МойВолшебныйДокументСТабЧастью КАК Д
17 pirate_
 
05.01.17
00:15
(16) по поводу итоги по, таблицы имеют одинаковые колонки, и должны таким остаться, должна быть вложенная таблица, если бы был бы это МойВолшебныйДокументСТабЧастью все было бы великолепно, но как сделать это из врем таблиц?
18 Либерал
 
05.01.17
00:41
пират, не будь таким кровожадным, сделай уже по человечески - ИТОГИ

при условии (как тебе намекнули уже), что сама постановка задачи методически не оч мудацкая
19 pirate_
 
05.01.17
11:04
(18) Да с удовольствием бы, но отдать данные нужно в таком формате, постановка реально дебильная, и моя часть это оптимизация небольшого куска общей задачи, этот кусок выполнялся 1,5 часа, после оптимизаций 40 мин, дальше при переносе первого уровня рекурсии в "верхний запрос" я получаю данные за 7-10 мин, но они не в том виде в котором нужны, кроме того что получаю там еще куча всего делается и высчитывается по этим данным и это менять я не могу, из-за этого не могу поменять структуру данных получаемых в запросе. Вообще глобально это баланс и финансовые результаты в виртуальной валюте, не спрашиваете для чего, я этого не знаю, моя задача суб-суб подрядная и только ускорить получение данных.