Skip to content

Instantly share code, notes, and snippets.

@JohnyDeath
Last active November 27, 2017 11:54
Show Gist options
  • Save JohnyDeath/53336f4faf41f34474e332f6b52498ea to your computer and use it in GitHub Desktop.
Save JohnyDeath/53336f4faf41f34474e332f6b52498ea to your computer and use it in GitHub Desktop.
Определение коэф-та пересчета для упаковок
Если Не ЗначениеЗаполнено(ИсточникНоменклатуры) Тогда
ТекстЗапроса =
"ВЫБОР КОГДА ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель,1) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Ссылка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ВЫРАЗИТЬ(ЕСТЬNULL(ТаблицаТовары.Упаковка.Числитель,1) / ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель,1) КАК ЧИСЛО(20,10))
| ИНАЧЕ NULL
|КОНЕЦ";
Иначе
ТекстЗапроса =
"ВЫБОР
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес) И ТаблицаТовары.Номенклатура.ВесИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЧислитель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЗнаменатель,0) <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель / (ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) / (ТаблицаТовары.Номенклатура.ВесЧислитель / ТаблицаТовары.Номенклатура.ВесЗнаменатель)
// © r.koryukin@assino.net 20.03.2017 // biocad [Задача № 5913] - начало
//КАК ЧИСЛО(20,10))
| КАК ЧИСЛО(30,10))
// © r.koryukin@assino.net 20.03.2017 // biocad [Задача № 5913] - конец
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем) И ТаблицаТовары.Номенклатура.ОбъемИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ОбъемЧислитель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ОбъемЗнаменатель,0) <> 0
// АйТи План - Задача № 12840 25.08.2017 - Начало
// Расширяем разрядность для пересчета объемных единиц измерения
//| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель / (ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель) / (ТаблицаТовары.Номенклатура.ОбъемЧислитель / ТаблицаТовары.Номенклатура.ОбъемЗнаменатель) КАК ЧИСЛО(20,10))
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель / (ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель) / (ТаблицаТовары.Номенклатура.ОбъемЧислитель / ТаблицаТовары.Номенклатура.ОбъемЗнаменатель) КАК ЧИСЛО(30,10))
// АйТи План - Задача № 12840 25.08.2017 - Окончание
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь) И ТаблицаТовары.Номенклатура.ПлощадьИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ПлощадьЧислитель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ПлощадьЗнаменатель,0) <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель / (ТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель) / (ТаблицаТовары.Номенклатура.ПлощадьЧислитель / ТаблицаТовары.Номенклатура.ПлощадьЗнаменатель) КАК ЧИСЛО(20,10))
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина) И ТаблицаТовары.Номенклатура.ДлинаИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ДлинаЧислитель,0) <> 0 И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ДлинаЗнаменатель,0) <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель / (ТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель) / (ТаблицаТовары.Номенклатура.ДлинаЧислитель / ТаблицаТовары.Номенклатура.ДлинаЗнаменатель) КАК ЧИСЛО(20,10))
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель,0) <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(20,10))
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
| ТОГДА 1
| ИНАЧЕ NULL
|КОНЕЦ";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment