For students who study 1C:Professional course.

#1
People who like this: 0 Yes / 0 No
Just came
1C:Professional
Rating: 0
Joined: May 15, 2015
Company: CloudOffice AB

What order of dimensions in accumulation register is better? For example, for register Materials? 1) Material, 2) warehouse or 1) warehouse, 2) material. Why?

 
#2
People who like this: 0 Yes / 0 No
Moderator
1C:Professional
Rating: 6
Joined: May 8, 2013
Company: 1C Company

The most important requirement here is the following (from the Lesson 2): "You need to have a dimension for every condition in your “WHERE” clause. Or (the same from another perspective) you need to use all dimensions in the query’s “WHERE” clause."

If this requirement is met, the order of dimensions plays no practical role. The only (100% pure theoretical) recommendation could be: place more populated dimensions closer to the top of the list. In our example it would mean placing the Material dimension first because it has more different values than Warehouse dimension (we have very few warehouses and hundreds of materials). That said, we've never seen any practical effect of following this recommendation in any real-world system, so you can just ignore this factor.

Using only some of the dimensions in the WHERE clause is quite a different story.

Let's say you have an accumulation register with five dimensions (Dim1, Dim2, ...). You created these particular dimensions set for a reason - the main (most frequently executed) query uses all of them. But what if you have some peripheral functionality that needs a query with only some of the dimensions (say, 3 and 4)? In order for this query to execute efficiently, you need to place these two dimensions first. I.e, your dimensions set, should be Dim3, Dim4, Dim1, Dim2, Dim5. Not following this rule can cause significant slowing down of this particular query.

OK, but what if you have another peripheral functionality that uses say, Dim5 and Dim2 in its query? Well this problem has no solution with the only register (we cannot place two different pairs of dimensions to the top of the list at the same time), so you are going to need another accumulation register for this.

 
Subscribe
Users browsing this topic (guests: 1, registered: 0, hidden: 0)
Be the first to know tips & tricks on business application development!

A confirmation e-mail has been sent to the e-mail address you provided .

Click the link in the e-mail to confirm and activate the subscription.

/* --- ФИКС ЗАГОЛОВКОВ ДОКУМЕНТАЦИИ (BRUTE FORCE) --- */ /* Цепляемся за все возможные контейнеры Битрикса */ .content h1, #content h1, .workarea h1, .content h2, #content h2, .workarea h2, .content h3, #content h3, .workarea h3, .content h4, #content h4, .workarea h4, .content h5, #content h5, .workarea h5, .content h6, #content h6, .workarea h6 { display: block !important; font-weight: 700 !important; color: #222 !important; text-transform: none !important; margin-top: 1.5em !important; margin-bottom: 0.5em !important; line-height: 1.2 !important; } /* Явно задаем размеры, чтобы перекрыть "font-size: 100%" */ .content h1, #content h1 { font-size: 28px !important; } .content h2, #content h2 { font-size: 24px !important; } .content h3, #content h3 { font-size: 22px !important; } .content h4, #content h4 { font-size: 20px !important; } .content h5, #content h5 { font-size: 18px !important; } /* Ваш случай (5 решеток) */ .content h6, #content h6 { font-size: 16px !important; } /* Если Битрикс или редактор засунули внутрь h5 тег span или font */ .content h5 *, #content h5 *, .workarea h5 * { font-size: inherit !important; color: inherit !important; font-weight: inherit !important; } /* --- СТИЛИЗАЦИЯ ТЕКСТА (Markdown Style) --- */ /* Ссылки в тексте делаем более заметными */ .content a:not([class]) { color: #005aa0; text-decoration: none; border-bottom: 1px solid rgba(0, 90, 160, 0.2); } .content a:not([class]):hover { border-bottom-color: #005aa0; } /* Списки (чтобы не прилипали) */ .content ul, .content ol { margin-bottom: 15px !important; padding-left: 20px !important; } .content li { margin-bottom: 5px !important; }