Имя: Пароль:
1C
1С v8
Оптимизация запроса (УПП)
0 miklenew
 
20.01.12
09:18
Может у кого то есть мысли, как можно оптимизировать этот запрос?

ВЫБРАТЬ
   АналитикаУчетаЗатрат.Ссылка КАК УчетЗатрат,
   НоменклатураВся.Ссылка КАК Номенклатура
ПОМЕСТИТЬ ТЗ
ИЗ
   Справочник.Номенклатура КАК НоменклатураВся
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат
       ПО НоменклатураВся.Ссылка = АналитикаУчетаЗатрат.Затрата
ГДЕ
   НоменклатураВся.ЭтоГруппа = ЛОЖЬ
   И НоменклатураВся.ПометкаУдаления = ЛОЖЬ
   И НоменклатураВся.ВидНоменклатуры = &ВидНоменклатуры
;

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

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

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

СГРУППИРОВАТЬ ПО
   ТЗ.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Остатки.Номенклатура,
   Остатки.Период,
   Остатки.Остаток,
   Обороты.Оборот
ИЗ
   Остатки КАК Остатки
       ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
       ПО Остатки.Номенклатура = Обороты.Номенклатура

УПОРЯДОЧИТЬ ПО
   Остатки.Номенклатура.Наименование,
   Остатки.Номенклатура,
   Остатки.Период
1 Healer
 
20.01.12
09:26
Для начала запустите замер производительности в конфе и определите самые тормозные места, чтобы понять, что нужно оптимизировать в первую очередь.
2 Рэйв
 
20.01.12
09:26
1.Вы веди запросы, участвующие в соединениях в ВТ  и проиндексируй их по соединяемым полям
2.Проиндексируй ВТ Обороты по полю Номенклатура
3 Рэйв
 
20.01.12
09:26
запросы= подзапросы
4 Healer
 
20.01.12
09:28
Да, обязательно обратите внимание, чтобы соединялось по индексируемым полям, этточно.
5 Maxus43
 
20.01.12
09:30
я много запросов к РАУЗу писал, всегда делал штуки вида "ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ)" - не в соединении а в отдельную ВТ аналитику вида учета с этим отбором + индексация. Работало всё шустро на крупном производстве. Имхо в соединении не кошерно условие ставить
6 miklenew
 
20.01.12
09:35
(1) Меня интересует токо запрос. Что даст мне замер? Проблема в запросе
7 Maxus43
 
20.01.12
09:37
и от вложеного запроса есно отказывайся, соединение с ним - ЗЛО, написано в библии 1с
8 miklenew
 
20.01.12
09:38
(2) Тех журнал не получается пока настроить. Не знаю точно какие запросы уходят.
Если токо попытатся через профайлер отловить, но не хочу отдельно сервер ms sql поднимать для  этих целей
По п.2 упустил. Но заметно думаю не даст. Номенклатуры не много порядка 16 тыс. А вот записей в учёте затрат дофига
9 Maxus43
 
20.01.12
09:39
в этом случае не бойся делать много ВТ, у меня частенько их штук по 10 было и норм. индексируй только по тем полям которые участвуют в соединениях и условиях
10 ДемонМаксвелла
 
20.01.12
09:39
Третий запрос мне не нравится. Например "Где" и вложенный запрос. Попробуй в третьем запросе вместо УчетЗатрат использовал бы виртуальную таблицу ОстаткиИОбороты, и параметры виртуальной таблицы.
(6) замер даст, сколько выполняется запрос. можно сравнивать разные варианты запроса
11 Maxus43
 
20.01.12
09:39
почти наверняка более 50% времени уходит на соединение с вложеным запросом. убрать навеки его
12 Maxus43
 
20.01.12
09:40
(10) в вирт таблицах нет реквизитов регистра
13 miklenew
 
20.01.12
09:41
(5) Пробывал сначала отбирать Номенклатура, АналитикаВида, КорАналитикаВида и АналитикаУчётаЗатрат. Значительно дольше работало. Т.к. их вытаскивать приходилось левым соединением. Т.е. все возможные комбинации удовлетворяющие моим условиям. Очень много выходило их.
14 ДемонМаксвелла
 
20.01.12
09:42
(12) не вижу там реквизитов
15 Maxus43
 
20.01.12
09:42
(13) вытаскиваеш отдельные виды аналитики (вида учета, затрат и т.д.) в разные ВТ и соединяеш внутренним соединением с учетом затрат, откуда левое взялось?
16 miklenew
 
20.01.12
09:42
(7) То же так думал. Сам удивился когда понял что сначало обрезать регист по времени а потом соединять оказалось выгоднее по времени. Первый вариант был без вложенного запроса. Отрабатывал раза в 3 дольше.
17 Maxus43
 
20.01.12
09:43
(14) кор аналитика реквизиты
18 1с-кин
 
20.01.12
09:44
(2) что значит проиндексиовать поле ВИРТУАЛЬНОЙ ТАБЛИЦЫ??
19 miklenew
 
20.01.12
09:45
(10) в 12 ответили мне нужно КорАналитикаВидаУчета. А её нет в вирт таблицах
20 Maxus43
 
20.01.12
09:45
(18) закладка Индекс в конструкторе запросов, появляется при создании ВТ. ВТ = Временная Таблица, не виртуальные таблицы регистров
21 1с-кин
 
20.01.12
09:46
(16) так вы не соединяете по времени, а условие накладываете на результат. Лучше его убрать в параметры ВТ - они как раз есть для такого случая.
22 Рэйв
 
20.01.12
09:46
(18)
ВЫБРАТЬ
   ТЗ.Номенклатура КАК Номенклатура,
   СУММА(ВложенныйЗапрос.Стоимость) КАК Оборот
ПОМЕСТИТЬ Обороты
ИНДЕКСИРОВАТЬ ПО Номенклатура
23 Рэйв
 
20.01.12
09:47
ну там еще ИЗ...
24 Maxus43
 
20.01.12
09:48
фишка запросов к Учету затрат - редко можно пользоваться вирт таблицами регистра, в них нет Реквизитов, а они необходимы для построения отчетов и т.д.
25 miklenew
 
20.01.12
09:50
(15) Щас попробую ещё раз так сделать. Заодно проиндексировать эти поля. На самом учёте затрат они не проиндексированы, вот долго и отрабатывает. Если проиндексирую их во временно может чё то и даст
26 miklenew
 
20.01.12
10:19
(15) Вот так получилось. токо система падает уже на первом запросе. Не хватает памяти
ВЫБРАТЬ
   АналитикаУчетаЗатрат.Ссылка КАК УчетЗатрат,
   НоменклатураВся.Ссылка КАК Номенклатура,
   АналитикаВида.Ссылка КАК ВидУчета,
   КорАналитикаВида.Ссылка КАК КорВидУчета
ПОМЕСТИТЬ ТЗ
ИЗ
   Справочник.Номенклатура КАК НоменклатураВся
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат
       ПО НоменклатураВся.Ссылка = АналитикаУчетаЗатрат.Затрата
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК АналитикаВида
       ПО (АналитикаВида.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Затраты))
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК КорАналитикаВида
       ПО (КорАналитикаВида.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ))
ГДЕ
   НоменклатураВся.ЭтоГруппа = ЛОЖЬ
   И НоменклатураВся.ПометкаУдаления = ЛОЖЬ
   И НоменклатураВся.ВидНоменклатуры = &ВидНоменклатуры

ИНДЕКСИРОВАТЬ ПО
   Номенклатура,
   УчетЗатрат,
   ВидУчета,
   КорВидУчета
;

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

СГРУППИРОВАТЬ ПО
   ТЗ.Номенклатура,
   УчетЗатратРеглОстаткиИОбороты.Период

ИНДЕКСИРОВАТЬ ПО
   Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТЗ.Номенклатура КАК Номенклатура,
   СУММА(ВложенныйЗапрос.Стоимость) КАК Оборот
ПОМЕСТИТЬ Обороты
ИЗ
   ТЗ КАК ТЗ
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           УчетЗатратРегл.КорАналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат,
           СУММА(УчетЗатратРегл.Стоимость) КАК Стоимость,
           УчетЗатратРегл.АналитикаВидаУчета КАК КорАналитикаВидаУчета,
           УчетЗатратРегл.КорАналитикаВидаУчета КАК АналитикаВидаУчета
       ИЗ
           РегистрНакопления.УчетЗатратРегл КАК УчетЗатратРегл
       ГДЕ
           УчетЗатратРегл.Период >= &ДатаНач
           И УчетЗатратРегл.Период < &ДатаОкон
       
       СГРУППИРОВАТЬ ПО
           УчетЗатратРегл.КорАналитикаУчетаЗатрат,
           УчетЗатратРегл.АналитикаВидаУчета,
           УчетЗатратРегл.КорАналитикаВидаУчета) КАК ВложенныйЗапрос
       ПО ТЗ.УчетЗатрат = ВложенныйЗапрос.АналитикаУчетаЗатрат
           И ТЗ.ВидУчета = ВложенныйЗапрос.АналитикаВидаУчета
           И ТЗ.КорВидУчета = ВложенныйЗапрос.КорАналитикаВидаУчета

СГРУППИРОВАТЬ ПО
   ТЗ.Номенклатура

ИНДЕКСИРОВАТЬ ПО
   Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Остатки.Номенклатура,
   Остатки.Период,
   Остатки.Остаток,
   Обороты.Оборот
ИЗ
   Остатки КАК Остатки
       ЛЕВОЕ СОЕДИНЕНИЕ Обороты КАК Обороты
       ПО Остатки.Номенклатура = Обороты.Номенклатура

УПОРЯДОЧИТЬ ПО
   Остатки.Номенклатура.Наименование,
   Остатки.Номенклатура,
   Остатки.Период
27 1с-кин
 
20.01.12
10:22
(26) еще какое-нибудь условие добавьте - а то слишком много записей попадает...
28 Maxus43
 
20.01.12
10:24
видимо плохо читал что я писал...
говорил же - ПО (АналитикаВида.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Затраты)) - нет.
не в одной таблице аналитики храни, в каждой своё.
например делаеш втВидУчета, там отбираеш и индексируеш Ссылку из АналитикаВидаУчета.
Для каждого измерения РАУЗа свою ВТ с водним полем Ссылка. У меня работает так на ура на крупном производстве
29 miklenew
 
20.01.12
11:04
(28) Убрал остатки из запроса, чтоб не усложнять. 90% потерь на оборотах.
Старый запрос без остатков и новый отрабатывают щас одинаково. (50 секунд где то)
Вот новый запрос. Может есть ещё мысли.
ВЫБРАТЬ
   НоменклатураВся.Ссылка КАК Ссылка
ПОМЕСТИТЬ НоменклатураВся
ИЗ
   Справочник.Номенклатура КАК НоменклатураВся
ГДЕ
   НоменклатураВся.ЭтоГруппа = ЛОЖЬ
   И НоменклатураВся.ПометкаУдаления = ЛОЖЬ
   И НоменклатураВся.ВидНоменклатуры = &ВидНоменклатуры

ИНДЕКСИРОВАТЬ ПО
   Ссылка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   АналитикаУчетаЗатрат.Ссылка КАК УчетЗатрат,
   НоменклатураВся.Ссылка КАК Номенклатура
ПОМЕСТИТЬ ТЗ_УчетЗатрат
ИЗ
   НоменклатураВся КАК НоменклатураВся
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат
       ПО НоменклатураВся.Ссылка = АналитикаУчетаЗатрат.Затрата

ИНДЕКСИРОВАТЬ ПО
   Номенклатура,
   УчетЗатрат
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   АналитикаВида.Ссылка КАК ВидУчета
ПОМЕСТИТЬ ТЗ_ВидУчета
ИЗ
   РегистрСведений.АналитикаВидаУчета КАК АналитикаВида
ГДЕ
   АналитикаВида.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.Затраты)

ИНДЕКСИРОВАТЬ ПО
   ВидУчета
;

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

СГРУППИРОВАТЬ ПО
   ТЗ.Номенклатура,
   УчетЗатратРеглОстаткиИОбороты.Период

ИНДЕКСИРОВАТЬ ПО
   Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   НоменклатураВся.Ссылка КАК Номенклатура,
   ЕСТЬNULL(Остатки.Период, 0) КАК Период,
   ЕСТЬNULL(Остатки.Остаток, 0) КАК Остаток
ИЗ
   НоменклатураВся КАК НоменклатураВся
       ЛЕВОЕ СОЕДИНЕНИЕ Остатки КАК Остатки
       ПО (Остатки.Номенклатура = НоменклатураВся.Ссылка)

УПОРЯДОЧИТЬ ПО
   НоменклатураВся.Ссылка.Наименование,
   НоменклатураВся.Ссылка,
   Остатки.Период
30 Maxus43
 
20.01.12
11:30
на кой для остатокв используеш ОстаткиИОбороты?
Номенклатуру отсеивай в АналитикаУчетаЗатрат (добавь поле номенклатура и индексируй)
и соединяй внутренним соединением в конце остатки и Аналитику затрат
31 miklenew
 
20.01.12
11:38
(30) 1) Мне нужно разбивка по месяцам. т.е. периодичность месяц. В остатков такого нет.
2) Ну так в ТЗ_УчетЗатрат уже отсеял по номенклатуре и индексы есть. А дальше уже с ней соединяю
3) Если имелось ввиду 5-ый запрос. То мне нужен весь список номенклатур даже по котором остатков нет. А в 4-м запросе всё по внутреннему
32 Maxus43
 
20.01.12
11:54
(Остатки.Период, 0) - ну тут надо дату пустую вместо 0 ставить.
А вобще - просто данных очень много, по всей номенклатуре да ещё и остатки помесячно... нет идей как ещё ускорить
33 Maxus43
 
20.01.12
12:00
ну и тут что-то не так
УПОРЯДОЧИТЬ ПО
   НоменклатураВся.Ссылка.Наименование,
   НоменклатураВся.Ссылка,
34 miklenew
 
20.01.12
12:07
(32) Ну а какая разница 0 или пустая дата. Я потом эти данные дальше обрабатываю.
Данные я беру за год (с промежутком в месяц). т.е. остатки на конец каждого месяца (12 остатков по каждой номенклатуре).
(33) Если так не ставить то можно получить ситуацию
Наименование1 ссылка1
Наименование1 ссылка2
Наименование1 ссылка1
Наименование1 ссылка2
А мне надо
Наименование1 ссылка1
Наименование1 ссылка1
Наименование1 ссылка2
Наименование1 ссылка2
У нас в базе есть номенклатуры с одинаковыми названиями, но с разными артикулами.
35 Maxus43
 
20.01.12
12:56
короче тормозит запрос из-за большого периода (за год же, едрить к таблице ОстаткиОбороты), сильней не ускорить, имхо
36 1с-кин
 
21.01.12
22:58
(11) на мисте все время пишут, какие типовые прекрасные.
И как по ним надо учиться и учиться.
А я вот переделываю запросы всякие тормозные потом.
Вот пример по вложенному запросу в соединении (УПП, КА, зарплата):

   "ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    ДокументыОрганизации.Номер
   |ИЗ
   |    (ВЫБРАТЬ
   |        ГОД(КадровоеПеремещениеОрганизаций.Дата) КАК Год,
   |        КадровоеПеремещениеОрганизаций.Номер КАК Номер,
   |        КадровоеПеремещениеОрганизаций.Ссылка КАК Ссылка
   |    ИЗ
   |        Документ.КадровоеПеремещениеОрганизаций КАК КадровоеПеремещениеОрганизаций
   |    ГДЕ
   |        КадровоеПеремещениеОрганизаций.Организация = &Организация
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        ГОД(ПриемНаРаботуВОрганизацию.Дата),
   |        ПриемНаРаботуВОрганизацию.Номер,
   |        ПриемНаРаботуВОрганизацию.Ссылка
   |    ИЗ
   |        Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
   |    ГДЕ
   |        ПриемНаРаботуВОрганизацию.Организация = &Организация
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        ГОД(УвольнениеИзОрганизаций.Дата),
   |        УвольнениеИзОрганизаций.Номер,
   |        УвольнениеИзОрганизаций.Ссылка
   |    ИЗ
   |        Документ.УвольнениеИзОрганизаций КАК УвольнениеИзОрганизаций
   |    ГДЕ
   |        УвольнениеИзОрганизаций.Организация = &Организация) КАК ДокументыОрганизации
   |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   |            ГОД(КадровоеПеремещениеОрганизаций.Дата) КАК Год,
   |            КадровоеПеремещениеОрганизаций.Номер КАК Номер,
   |            КадровоеПеремещениеОрганизаций.Ссылка КАК Ссылка
   |        ИЗ
   |            Документ.КадровоеПеремещениеОрганизаций КАК КадровоеПеремещениеОрганизаций
   |        
   |        ОБЪЕДИНИТЬ ВСЕ
   |        
   |        ВЫБРАТЬ
   |            ГОД(ПриемНаРаботуВОрганизацию.Дата),
   |            ПриемНаРаботуВОрганизацию.Номер,
   |            ПриемНаРаботуВОрганизацию.Ссылка
   |        ИЗ
   |            Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
   |        
   |        ОБЪЕДИНИТЬ ВСЕ
   |        
   |        ВЫБРАТЬ
   |            ГОД(УвольнениеИзОрганизаций.Дата),
   |            УвольнениеИзОрганизаций.Номер,
   |            УвольнениеИзОрганизаций.Ссылка
   |        ИЗ
   |            Документ.УвольнениеИзОрганизаций КАК УвольнениеИзОрганизаций) КАК ВсеКадровыеДокументы
   |        ПО ДокументыОрганизации.Год = ВсеКадровыеДокументы.Год
   |            И ДокументыОрганизации.Номер = ВсеКадровыеДокументы.Номер
   |            И ДокументыОрганизации.Ссылка <> ВсеКадровыеДокументы.Ссылка";

так на что ориентироваться? это же типовые, "1С-совместимо" и вообще стандарт...
37 Dethmont
 
21.01.12
23:36
До появления платформы 8.1 не было ВТ пользовались только вложенными запросами, 1С постепенно все переделывали на Врем. таблицы(пакетные запросы). Наверное не все еще переделали, да может и не собирались переделывать все.
38 Kirill
 
22.01.12
01:08
По моему опыту
1. Во временную таблицу надо ключи аналитик писать с учетом нужных отборов естественно с индексом по ключу.
2. Из регистра учета затрат выборку делать по обороту с учетом отбора по ключу.
РегистрНакопления.УчетЗатратРегл.Обороты(,,Ключ в (ВЫБРАТЬ Ключ Из ВремТаблица))
С регистрами РУАЗа, всегда делаю так летает.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан