|
"Чудная" скорость работы ERP 2.4 | ☑ | ||
---|---|---|---|---|
0
Marik1274
31.10.18
✎
10:40
|
1с ERP 2.4.5.82 (файловая, тестовая локальная копия) 8.3.12.1529 ОЗУ 16 гб, винт - hdd, cpu - i3 - 4130T 2.9
Ниже запрос из типового общего модуля "УстановкаЦенСервер". Замер его работы: Запрос.Выполнить() - 64 сек. 74 % Ну как так? ВЫБРАТЬ ВременнаяТаблицаТовары.Индекс КАК Индекс, ВременнаяТаблицаТовары.НоменклатураПоставщика КАК НоменклатураПоставщика, ВременнаяТаблицаТовары.Номенклатура КАК Номенклатура, ВременнаяТаблицаТовары.Характеристика КАК Характеристика, ВременнаяТаблицаТовары.ВидЦеныПоставщика КАК ВидЦены, ВременнаяТаблицаТовары.Упаковка КАК Упаковка, ВременнаяТаблицаТовары.Цена КАК Цена ПОМЕСТИТЬ ВременнаяТаблицаТовары ИЗ &Товары КАК ВременнаяТаблицаТовары ИНДЕКСИРОВАТЬ ПО Номенклатура, Характеристика, ВидЦены ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВременнаяТаблицаТовары.Индекс КАК Индекс, ВременнаяТаблицаТовары.НоменклатураПоставщика КАК НоменклатураПоставщика, ВременнаяТаблицаТовары.Номенклатура КАК Номенклатура, ВременнаяТаблицаТовары.Характеристика КАК Характеристика, ВременнаяТаблицаТовары.ВидЦены КАК ВидЦены, ВременнаяТаблицаТовары.Цена КАК Цена, ЛОЖЬ КАК ЦенаИзмененаВручную, ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка = ВременнаяТаблицаТовары.Упаковка ТОГДА ЦеныНоменклатуры.Цена ИНАЧЕ ЦеныНоменклатуры.Цена / ЕСТЬNULL(ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И ЦеныНоменклатуры.Номенклатура.ВесИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ВесЧислитель / ЦеныНоменклатуры.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем) И ЦеныНоменклатуры.Номенклатура.ОбъемИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ОбъемЧислитель / ЦеныНоменклатуры.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь) И ЦеныНоменклатуры.Номенклатура.ПлощадьИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ПлощадьЧислитель / ЦеныНоменклатуры.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина) И ЦеныНоменклатуры.Номенклатура.ДлинаИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ДлинаЧислитель / ЦеныНоменклатуры.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА (ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время)) И ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 ТОГДА (ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель) / (ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.Знаменатель) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка) И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук) ТОГДА 1 ИНАЧЕ NULL КОНЕЦ, 1) * ЕСТЬNULL(ВЫБОР КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И ВременнаяТаблицаТовары.Номенклатура.ВесИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ВесЧислитель / ВременнаяТаблицаТовары.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем) И ВременнаяТаблицаТовары.Номенклатура.ОбъемИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ОбъемЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ОбъемЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ОбъемЧислитель / ВременнаяТаблицаТовары.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь) И ВременнаяТаблицаТовары.Номенклатура.ПлощадьИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЧислитель / ВременнаяТаблицаТовары.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина) И ВременнаяТаблицаТовары.Номенклатура.ДлинаИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ДлинаЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ДлинаЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ДлинаЧислитель / ВременнаяТаблицаТовары.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА (ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность) ИЛИ ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия) ИЛИ ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд) ИЛИ ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время)) И ВременнаяТаблицаТовары.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 ТОГДА (ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель) / (ВременнаяТаблицаТовары.Номенклатура.ЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ЕдиницаИзмерения.Знаменатель) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка) И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7)) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук) ТОГДА 1 ИНАЧЕ NULL КОНЕЦ, 1) КОНЕЦ КАК ДействующаяЦена, ВЫРАЗИТЬ(ВЫБОР КОГДА ЦеныНоменклатуры.Цена <> 0 ТОГДА 100 * (ВременнаяТаблицаТовары.Цена - ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка = ВременнаяТаблицаТовары.Упаковка ТОГДА ЦеныНоменклатуры.Цена ИНАЧЕ ЦеныНоменклатуры.Цена / ЕСТЬNULL(ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И ЦеныНоменклатуры.Номенклатура.ВесИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ВесЧислитель / ЦеныНоменклатуры.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем) И ЦеныНоменклатуры.Номенклатура.ОбъемИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ОбъемЧислитель / ЦеныНоменклатуры.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь) И ЦеныНоменклатуры.Номенклатура.ПлощадьИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ПлощадьЧислитель / ЦеныНоменклатуры.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина) И ЦеныНоменклатуры.Номенклатура.ДлинаИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ДлинаЧислитель / ЦеныНоменклатуры.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА (ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время)) И ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 ТОГДА (ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель) / (ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.Знаменатель) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка) И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук) ТОГДА 1 ИНАЧЕ NULL КОНЕЦ, 1) * ЕСТЬNULL(ВЫБОР КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И ВременнаяТаблицаТовары.Номенклатура.ВесИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ВесЧислитель / ВременнаяТаблицаТовары.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем) И ВременнаяТаблицаТовары.Номенклатура.ОбъемИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ОбъемЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ОбъемЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ОбъемЧислитель / ВременнаяТаблицаТовары.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь) И ВременнаяТаблицаТовары.Номенклатура.ПлощадьИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ПлощадьЧислитель / ВременнаяТаблицаТовары.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина) И ВременнаяТаблицаТовары.Номенклатура.ДлинаИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ДлинаЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ДлинаЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Номенклатура.ДлинаЧислитель / ВременнаяТаблицаТовары.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА (ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность) ИЛИ ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия) ИЛИ ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд) ИЛИ ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время)) И ВременнаяТаблицаТовары.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 ТОГДА (ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель) / (ВременнаяТаблицаТовары.Номенклатура.ЕдиницаИзмерения.Числитель / ВременнаяТаблицаТовары.Номенклатура.ЕдиницаИзмерения.Знаменатель) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка) И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ(ВременнаяТаблицаТовары.Упаковка.Числитель / ВременнаяТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7)) КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук) ТОГДА 1 ИНАЧЕ NULL КОНЕЦ, 1) КОНЕЦ) / ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка = ВременнаяТаблицаТовары.Упаковка ТОГДА ЦеныНоменклатуры.Цена ИНАЧЕ ЦеныНоменклатуры.Цена / ЕСТЬNULL(ВЫБОР КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И ЦеныНоменклатуры.Номенклатура.ВесИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ВесЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ВесЧислитель / ЦеныНоменклатуры.Номенклатура.ВесЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем) И ЦеныНоменклатуры.Номенклатура.ОбъемИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ОбъемЧислитель / ЦеныНоменклатуры.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь) И ЦеныНоменклатуры.Номенклатура.ПлощадьИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ПлощадьЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ПлощадьЧислитель / ЦеныНоменклатуры.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина) И ЦеныНоменклатуры.Номенклатура.ДлинаИспользовать И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЧислитель, 0) <> 0 И ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ДлинаЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ЦеныНоменклатуры.Номенклатура.ДлинаЧислитель / ЦеныНоменклатуры.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7)) КОГДА (ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Мощность) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Энергия) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ЭлектрическийЗаряд) ИЛИ ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Время)) И ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 ТОГДА (ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель) / (ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.Числитель / ЦеныНоменклатуры.Номенклатура.ЕдиницаИзмерения.Знаменатель) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка) И ЕСТЬNULL(ЦеныНоменклатуры.Упаковка.Знаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ(ЦеныНоменклатуры.Упаковка.Числитель / ЦеныНоменклатуры.Упаковка.Знаменатель КАК ЧИСЛО(15, 7)) КОГДА ЦеныНоменклатуры.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук) ТОГДА 1 ИНАЧЕ NULL КОНЕЦ, 1) * ЕСТЬNULL(ВЫБОР КОГДА ВременнаяТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И ВременнаяТаблицаТовары.Номенклатура.ВесИспользовать И ЕСТЬNULL(ВременнаяТаблицаТовары.Упаковка.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЧислитель, 0) <> 0 И ЕСТЬNULL(ВременнаяТаблицаТовары.Номенклатура.ВесЗнаменатель, 0) <> 0 ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ |
|||
1
Marik1274
31.10.18
✎
10:44
|
Собственно из-за этого запроса документ "Регистрация цен номенклатуры поставщиков" открывается больше минуты. Кто-то сталкивался с подобным?
|
|||
2
Hans
31.10.18
✎
10:45
|
Чудные запросы.
|
|||
3
Dmitry1c
31.10.18
✎
10:47
|
(1) что хочешь-то?
|
|||
4
Dmitry1c
31.10.18
✎
10:47
|
жесткий диск не SSD
проц энергосберегающий во народ |
|||
5
Marik1274
31.10.18
✎
10:54
|
(3) См. 1
(4) Сам текст запроса тебя не смущает? |
|||
6
Marik1274
31.10.18
✎
10:55
|
На сервере документ открывается порядка 3-х секунд, разве это нормально?
|
|||
7
мой_ник
31.10.18
✎
10:56
|
(5) мне нравится ЕСТЬNULL(ЦеныНоменклатуры.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0)
это сколько там система соединений должна сделать внутри себя |
|||
8
мой_ник
31.10.18
✎
10:57
|
причем они вроде бы сами говорили, что так не рекомендуется и типа не оптимально.
|
|||
9
Галахад
гуру
31.10.18
✎
10:59
|
(7) Гм. И сколько?
|
|||
10
vis_tmp
31.10.18
✎
11:00
|
(9)Три?
|
|||
11
мой_ник
31.10.18
✎
11:01
|
(9) одно лишнее, как минимум
|
|||
12
Галахад
гуру
31.10.18
✎
11:04
|
Это беда?
|
|||
13
мой_ник
31.10.18
✎
11:05
|
да, если по зернышку получается
Запрос.Выполнить() - 64 сек. 74 % |
|||
14
Marik1274
31.10.18
✎
11:07
|
В параметре в таблице источнике 1 строка.
(12) это флагман 1с ) бест блин практикс |
|||
15
palsergeich
31.10.18
✎
11:08
|
Данунафиг это реально типовой запрос?
|
|||
16
NeoVision
31.10.18
✎
11:19
|
Понятие флагмана у 1с не включает корректности кода и сверхпроизводительности. Делайте как все - железо пожирней в продакшн.
|
|||
17
asady
31.10.18
✎
11:47
|
(0) подтверждаю, установка цен номенклатуры очень тормозной док что в ЕРП что в УТ11
я его стараюсь делать и обслуживать из внешних обработок не юзая форму |
|||
18
Marik1274
31.10.18
✎
11:59
|
(17) Значит не я один мучаюсь )
На счет не юзать форму - хорошая идея. Спасибо! |
|||
19
Вафель
31.10.18
✎
11:59
|
Разве ЕРП вообще в файле работает?
|
|||
20
Fragster
гуру
31.10.18
✎
12:02
|
(19) ну может у разработчика
|
|||
21
Вафель
31.10.18
✎
12:02
|
(20) вряд ли они вообще тестируют ЕРП на файле
|
|||
22
Fragster
гуру
31.10.18
✎
12:02
|
(0) переделай, добавив еще одну промежуточную временную таблицу с явным соединением с единицами
|
|||
23
Fragster
гуру
31.10.18
✎
12:02
|
(21) я говорю про конкретного фикс/франча, который на внедрении/сопровождении
|
|||
24
Marik1274
31.10.18
✎
12:06
|
(19) на сервере тестовых баз не хватает. Порезал до 80 гб и развернул локально. Оказалось работает)
|
|||
25
shuhard
31.10.18
✎
12:31
|
(14)[это флагман 1с ) бест блин практикс]
и флагман и бэст практик в принципиальных моментах |
|||
26
rozer76
31.10.18
✎
12:35
|
(15) ага, 99% тут типовой пересчет упаковок по типу измеряемой величины- он лепится везде где упаковки и в СКД даже запрос модифицируется программно
|
|||
27
PR
31.10.18
✎
12:45
|
(0) После "файловая" дальше не читал, не могу никак просмеяться
|
|||
28
asady
31.10.18
✎
12:48
|
(27) тормозит и скульная - открой установку цен номенклатуры и оцени скорость...
вот тогда и посмеемся |
|||
29
Marik1274
31.10.18
✎
12:54
|
(28) +100500!
|
|||
30
Tonik992
31.10.18
✎
13:14
|
(28) Деньги лежат на поверхности, 1Сники создали пласт для заработка
|
|||
31
Смотрящий
31.10.18
✎
13:30
|
Жрите, жрите кактус!
|
|||
32
Tonik992
31.10.18
✎
13:36
|
(31) Да это не ERP, а целый техас, наполненный кактусов
|
|||
33
palsergeich
31.10.18
✎
13:42
|
И эти люди запрещают мне ковыряться в носу (цитата)
|
|||
34
Garykom
гуру
31.10.18
✎
14:09
|
(0) А какова цель выполнения этого запроса в конфе именно перед/при открытии формы?
|
|||
35
Marik1274
31.10.18
✎
14:12
|
(34)
// Осуществляет загрузку цен для всех строк табличной части товары // Процедура ЗагрузитьТабличнуюЧастьТовары(Форма, КэшДанных) Экспорт |
|||
36
Buster007
31.10.18
✎
14:21
|
что мешает оптимизировать?
|
|||
37
Buster007
31.10.18
✎
14:21
|
+(36) + еще денег с этого заработаете )
|
|||
38
piter3
31.10.18
✎
14:22
|
(36) обычный холивар на тему,что должно все летать из коробки
|
|||
39
PR
31.10.18
✎
14:30
|
Открываю типовую ERP 2.4.5.82, открываю общий модуль "УстановкаЦенСервер", не нахожу там такого текста запроса
Вывод: ТС трындит |
|||
40
0xFFFFFF
31.10.18
✎
14:35
|
(0) руки рубить за такие запросы
|
|||
41
asady
31.10.18
✎
14:39
|
(39) там запрос собирается динамически - ТС привел запрос уже на выходе
а в тексте там вызов двух функций Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки1", Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки( "ЦеныНоменклатуры.Упаковка", "ЦеныНоменклатуры.Номенклатура")); Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки2", Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки( "ВременнаяТаблицаТовары.Упаковка", "ВременнаяТаблицаТовары.Номенклатура")); которые генерят такую простыню |
|||
42
PR
31.10.18
✎
16:56
|
(41) Странно, у меня никаких 64 секунд
Мало данных? |
|||
43
StanislawJack
31.10.18
✎
17:11
|
(36) Денег заработаете, говорите? Хм, как известно: "Денег нет! А Вы - держите"? )) ERP просто покупать перестанут таким образом.
|
|||
44
cons24
31.10.18
✎
18:42
|
(42) скорее всего, да.
На прошлом месте работы было дофига типов цен и номенклатуры. Прайс (типовой отчет) и документы установки цен - тупили безбожно. На данном месте работы - 3 вида цен. Все летает. |
|||
45
cons24
31.10.18
✎
18:44
|
(43) не перестанут. Руководителям не показывают демобазы с миллионами номенклатур и цен - а на обычных демо-базах полупустых все летает.
|
|||
46
Eiffil123
31.10.18
✎
18:54
|
там еще встречались раньше запросы к реальным таблицам с начала времен, вместо таблиц остатков.
Этож ерп, должна жрать много. А иначе не видно, что система работает. |
|||
47
piter3
31.10.18
✎
18:55
|
(43) Ну да,столько лет все не покупают)))
|
|||
48
Лефмихалыч
31.10.18
✎
21:07
|
"ERP 2.4.5.82 (файловая"
все остальное бессмысленно |
|||
49
PR
01.11.18
✎
10:20
|
(44) MS SQL?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |