- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.Заказ,
| ЕСТЬNULL(ВложенныйЗапрос.ВРезерве, 0) + ЕСТЬNULL(СвободныеОстаткиТоваровНаСкладахОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиТоваровНаСкладахОстатки.ВРезервеОстаток, 0) КАК СвободныйОстаток
|ИЗ
| (ВЫБРАТЬ ПЕРВЫЕ 1
| ВложенныйЗапрос.Ссылка КАК Ссылка,
| ВложенныйЗапрос.Заказ КАК Заказ,
| СвободныеОстаткиТоваровНаСкладах.ВРезерве КАК ВРезерве,
| ВложенныйЗапрос.Размер КАК Размер
| ИЗ
| (ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Ссылка КАК Ссылка,
| ЗаказПокупателя.Ссылка КАК Заказ,
| ВЫБОР
| КОГДА &Размер = ЗНАЧЕНИЕ(Справочник.Размер.ПустаяСсылка)
| ТОГДА ЗНАЧЕНИЕ(Справочник.Размер.ПустаяСсылка)
| ИНАЧЕ &Размер
| КОНЕЦ КАК Размер
| ИЗ
| Справочник.Номенклатура КАК Номенклатура,
| Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ГДЕ
| Номенклатура.Ссылка = &Номенклатура
| И ЗаказПокупателя.Ссылка = &Ссылка) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстаткиТоваровНаСкладах КАК СвободныеОстаткиТоваровНаСкладах
| ПО ВложенныйЗапрос.Ссылка = СвободныеОстаткиТоваровНаСкладах.Номенклатура
| И ВложенныйЗапрос.Заказ = СвободныеОстаткиТоваровНаСкладах.Регистратор
| И ВложенныйЗапрос.Размер = СвободныеОстаткиТоваровНаСкладах.Размер
|
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.Заказ,
| СвободныеОстаткиТоваровНаСкладах.ВРезерве,
| ВложенныйЗапрос.Размер) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстаткиТоваровНаСкладах.Остатки(
| ,
| Склад = &Склад
| И Организация = &Организация) КАК СвободныеОстаткиТоваровНаСкладахОстатки
| ПО ВложенныйЗапрос.Размер = СвободныеОстаткиТоваровНаСкладахОстатки.Размер
| И ВложенныйЗапрос.Ссылка = СвободныеОстаткиТоваровНаСкладахОстатки.Номенклатура
|
|СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Ссылка,
| ВложенныйЗапрос.Заказ,
| ЕСТЬNULL(ВложенныйЗапрос.ВРезерве, 0) + ЕСТЬNULL(СвободныеОстаткиТоваровНаСкладахОстатки.ВНаличииОстаток, 0) - ЕСТЬNULL(СвободныеОстаткиТоваровНаСкладахОстатки.ВРезервеОстаток, 0)" );
Запрос.УстановитьПараметр("Номенклатура",ТекущийЭлемент.ТекущаяСтрока.Номенклатура);
Запрос.УстановитьПараметр("Размер",ТекущийЭлемент.ТекущаяСтрока.Размер);
Запрос.УстановитьПараметр("Склад",Склад);
Запрос.УстановитьПараметр("Ссылка",Ссылка);
Запрос.УстановитьПараметр("Организация",Ссылка.Организация);
Выборка = Запрос.Выполнить().Выбрать();
Человек, написавший такой запрос явно был с перепоя. С учетом его двухлетнего опыта программирования в 1С - никогда бы на него не подумал... но факт.