Имя: Пароль:
1C
1С v8
Как оптимизировать запрос по полю составного типа
0 Serega103
 
28.11.14
09:41
Здравствуйте, у меня есть регистр в котором одно из измерений имеет составной тип (Номенклатура, Строка). Заметил что после того как я поменял тип реквизита на составной стал сильно тормозить запрос по остаткам этого регистра. И было бы еще ничего, но запрос выполняется в форме списка номенклатуры, что сильно нервирует пользователей.
причем строковые значения в справочнике номенклатура не используются, они нужны для другого отчета,
Помогите оптимизировать, пожалуйста. Вот текст запроса

ВЫБРАТЬ
    РезервыОстатки.Номенклатура,
    0,
    ВЫБОР
        КОГДА ЕСТЬNULL(РезервыОстатки.КоличествоОстаток, 0) > 0
            ТОГДА ЕСТЬNULL(РезервыОстатки.КоличествоОстаток, 0)
        ИНАЧЕ 0
    КОНЕЦ,
    РезервыОстатки.ЗаказНаряд
ИЗ
    РегистрНакопления.Резервы.Остатки(, Номенклатура В (&СпНом)) КАК РезервыОстатки
1 Wobland
 
28.11.14
09:42
>регистр в котором одно из измерений имеет составной тип (Номенклатура, Строка)
дальше читать или предложить перепроектирование?
2 Serega103
 
28.11.14
09:42
Если я меняю тип на НЕсоставной, то запрос взлетает, может можно как то наложить ограничение в запросе
3 Cube
 
28.11.14
09:43
(0) "я поменял тип реквизита на составной"
"строковые значения в справочнике номенклатура не используются, они нужны для другого отчета"

Коленку себе прострелить не пробовал? :)
Верни всё взад.
4 Serega103
 
28.11.14
09:43
(1)Про перепроектирование я уже подумывал, но может обойдется малой кровью))
5 Wobland
 
28.11.14
09:43
(3) а я не дочитал ;)
6 Cube
 
28.11.14
09:43
(2) Может решить задачу "другого отчета" по-человечески?
7 Wobland
 
28.11.14
09:44
(4) нет. только сэппуку
8 Dmitry1c
 
28.11.14
09:44
(0) Измерение строкой вообще быть не должно

Это скорее даже не из-за составного типа, а из-за строки.
9 Федя Тяпкин
 
28.11.14
09:44
ВЫРАЗИТЬ(
10 Ненавижу 1С
 
гуру
28.11.14
09:45
составные типы, у которых один из подтипов не ссылочной - зло
если еще и строка - страшное зло
если строка неограниченной длины - гореть в аду
11 Wobland
 
28.11.14
09:45
(9) пропал ТС
12 butterbean
 
28.11.14
09:46
(10) платформа вроде неограниченную строку и не даст поставить
13 Serega103
 
28.11.14
09:46
(11) я тут, вникаю в посты
14 Федя Тяпкин
 
28.11.14
09:46
(10)
1. иногда никуда не деться
2. ну пару лишних колонок в таблице можно пережить
3. +100500
15 Ненавижу 1С
 
гуру
28.11.14
09:46
+(10) к счастью неограниченная недоступно сделать
16 Ненавижу 1С
 
гуру
28.11.14
09:47
(14) иногда приходится терпеть зло, но все таки, а когда это надо то?
17 Reaper_1c
 
28.11.14
09:48
Пистолет, патрон, колено
18 Maxus43
 
28.11.14
09:49
вернуть в зад уже предлагали?

На остаточный регистр делать измерение со строкой - ахтунг.
Перепроектируй, доп регистр замути или ещё что... Задача неясна
19 Cube
 
28.11.14
09:50
(13) Ответь на (6)
20 Федя Тяпкин
 
28.11.14
09:50
(16) зачем у ТС в РЕГИСТРЕ составной типа представить не могу. у ссылочных объектов встречалось, что реквизит либо ссылка либо простой тип, например тот же самый механизм свойств в типовых.
21 Ненавижу 1С
 
гуру
28.11.14
09:51
(20) да, но это не измерение вроде как
22 break
 
28.11.14
09:51
да никто не сказал почему тормозит? я так понимаю из-за неиспользования индексов?
23 Serega103
 
28.11.14
09:51
(6) как вариант
24 Федя Тяпкин
 
28.11.14
09:53
(21) я это и написал
(22) не сочтите за рекламу )))Оптимизация 1С и подготовка на 1С:Эксперт — запускаем набор на новый тренинг!
курс реально крутой!
25 Reaper_1c
 
28.11.14
09:54
(22) Ясен пень. Он у виртуальной таблицы остатков отрезал ноги, и теперь недоумевает: "Почему раньше на велосипеде быстро ездила, а теперь на руках еле ползет???"
26 Serega103
 
28.11.14
09:54
короче задача такая:
конструктор делает спецификацию, в которой есть как номенклатура, так и разделы (они же полуфабрикаты, которых миллион разновидностей), указываемые строкой.
Так вот я хотел чтобы при проведении документа резерв ставился как по номенклатуре так и по этим полуфабрикатам.
А потом с ними работать.
27 Serega103
 
28.11.14
09:55
Теперь понял что лучше измерения разделить, гемороя меньше будет
28 Федя Тяпкин
 
28.11.14
09:55
(26) ты (9) попробывал?
29 Serega103
 
28.11.14
09:56
(17) да и колено простреливать не придется))
30 Федя Тяпкин
 
28.11.14
09:56
хотя регистр в любом случае надо перепроектировать
31 Йохохо
 
28.11.14
09:57
(26) резерв по строке? " да и колено простреливать не придется))" не угадал
32 Reaper_1c
 
28.11.14
09:58
(26) Ага, конструктор в офисе пишет "менсола", а кладовщик в цеху (парень простой, 9 классов и ПТУ) пишет "минсола". И резервы твои идут ровным строем прямо в задницу
33 DmitriyDI
 
28.11.14
09:59
(26) все равно лучше сделать справочник полуфабрикаты
34 Reaper_1c
 
28.11.14
10:00
(33) О да, особенно при живом справочнике номенклатуры. Вы откуда лезете такие?
35 Serega103
 
28.11.14
10:00
(31) ну а как поступить если конструктор создает очень много разных деталей, которые используются один раз, ну максимум два.
Один раз в спецификации, второй раз когда это выпускается, чтобы закрыть потребность.
36 Serega103
 
28.11.14
10:01
Функционал работает на ура, единственный минус это то что указано в ТС
37 Федя Тяпкин
 
28.11.14
10:01
Группу "полуфабрикаты" в номенклатуре и не надо огород городить.
38 Федя Тяпкин
 
28.11.14
10:03
(35) характеристики, серии есть в конфе?
39 Serega103
 
28.11.14
10:03
Многие пользователи пользуются вводом по строке. при выборе номенклатуре. и что они увидят при вводе строки поиска? Выбрано более 50 элементов, попробуйте найти вручную?
40 Cube
 
28.11.14
10:03
(26) Пусть создают полуфабрикаты в номенклатуре. Не занимайся ерундой.
41 Cube
 
28.11.14
10:04
(39) Конфа? Релиз? Название регистра?
42 Serega103
 
28.11.14
10:05
Конфа самописная полностью, релиз 1.1))
43 Федя Тяпкин
 
28.11.14
10:05
(39) пусть все полуфабрикаты начинаются например с "_"
44 Федя Тяпкин
 
28.11.14
10:06
либо характеристики либо серии используй если есть.
45 Cube
 
28.11.14
10:07
(42) Назначение регистра?
Вид регистра? (Сведений, накопления, бухгалтерии, расчетов)
Регистратор есть?
46 Maxus43
 
28.11.14
10:09
>>Функционал работает на ура, единственный минус это то что указано в ТС
ага, ага... таблицы итогов потом посмотри и прочие хрени
47 Serega103
 
28.11.14
10:12
(45)
Регистр накопления "Резервы"
Назначение - хранить потребность в номенклатуре и полуфабрикатах.
Потребность в номенклатуре формирует график закупок, а потребность в полуфабрикатах формирует график производства.

Регистраторы есть конечно.
спецификация - делает плюс. а выдача со склада или выполнение произв. задания делают минус.
48 Serega103
 
28.11.14
10:15
(46)Дело в том, что итоги по строкам закрываются. не просто вводом с клавы , а выбором из того что уже стоит в регистре.
49 Cube
 
28.11.14
10:16
(47) Тогда вместо строки пусть будет какой-нибудь "заказ на производство", который потом и в производстве можно будет использовать... Посмотри, как сделан заказ на производство в УПП.
50 Serega103
 
28.11.14
10:17
Ладно, я для себя уже сделал вывод как поступить (распилю регистр пополам и всё), просто хотелось услышать отзывы авторитетных людей.
Спасибо всем за советы.
51 Maxus43
 
28.11.14
10:18
короче ссылочный тип надо, вместо строки. Отдельный справочник лучше замутить с этими "одноразовыми", чем строковый тип
52 Cube
 
28.11.14
10:18
(47) И потребность закупок нужно отделить от потребностей производства, мне кажется...
53 Гёдза
 
28.11.14
10:22
(0) В этом куске нет ошибки вроде
54 Гёдза
 
28.11.14
10:25
(53) хотя можно сделать через объединить: отдельно номенклатуру, отдельно строки
55 Serega103
 
28.11.14
10:30
ФЕДЯ ТЯПКИН, респект.
Сделал через ВЫРАЗИТЬ, всё взлетело.
Огромное спасибо.
56 Cube
 
28.11.14
10:31
(55) Пропал ТС (c) Wobland (11)
57 Serega103
 
28.11.14
10:36
(56) столько постов было, что главное пропустил))
58 Зеленый пень
 
28.11.14
10:38
Советую почитать статью "Составные типы — бесплатный сыр мышеловки производительности".
Ну и вернуть всё как было. Да, сейчас ты может и выкрутился, но оно того не стоит.
59 Cube
 
28.11.14
10:40
(57) Во во, я и вижу, что главное-то ты и не усвоил: не надо тебе ВЫРАЗИТЬ(), тебе надо менять логику...
Иди прострели себе коленку.
60 Serega103
 
28.11.14
10:47
(59) на будущее я урок усвоил про составные поля (честно говоря не думал об этом пока на грабли не наступил), но в этом случае логику оставлю как есть, лень всё менять.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.