Начальные условия:
По условиям задачи введены две номенклатуры на один склад
Выводятся первые 10 записей для подбора
ВЫБРАТЬ
0 КАК Цифра
ПОМЕСТИТЬ Цифры
ОБЪЕДИНИТЬ
ВЫБРАТЬ
1
ОБЪЕДИНИТЬ
ВЫБРАТЬ
2
ОБЪЕДИНИТЬ
ВЫБРАТЬ
3
ОБЪЕДИНИТЬ
ВЫБРАТЬ
4
ОБЪЕДИНИТЬ
ВЫБРАТЬ
5
ОБЪЕДИНИТЬ
ВЫБРАТЬ
6
ОБЪЕДИНИТЬ
ВЫБРАТЬ
7
ОБЪЕДИНИТЬ
ВЫБРАТЬ
8
ОБЪЕДИНИТЬ
ВЫБРАТЬ
9
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Цифры.Цифра + Цифры1.Цифра * 10 + Цифры2.Цифра * 100 + Цифры3.Цифра * 1000 КАК Поле1
ПОМЕСТИТЬ Тысяча
ИЗ
Цифры КАК Цифры,
Цифры КАК Цифры1,
Цифры КАК Цифры2,
Цифры КАК Цифры3
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток
ПОМЕСТИТЬ Бобины30
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(
&Дата,
Склад = &Склад
И Номенклатура = &Бобины30) КАК ТоварыНаСкладахОстатки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток
ПОМЕСТИТЬ Бобины70
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(
&Дата,
Склад = &Склад
И Номенклатура = &Бобины70) КАК ТоварыНаСкладахОстатки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 70
30 * ВЫБОР
КОГДА Тысяча.Поле1 <= 70
ТОГДА Тысяча.Поле1
ИНАЧЕ 0
КОНЕЦ КАК СуммыПо30,
ВЫБОР
КОГДА Тысяча.Поле1 <= 70
ТОГДА Тысяча.Поле1
ИНАЧЕ 0
КОНЕЦ КАК КоличествоБобинПо30м,
Бобины30.Номенклатура
ПОМЕСТИТЬ БобиныПо30
ИЗ
Тысяча КАК Тысяча,
Бобины30 КАК Бобины30
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 30
70 * ВЫБОР
КОГДА Тысяча.Поле1 <= 30
ТОГДА Тысяча.Поле1
ИНАЧЕ 0
КОНЕЦ КАК СуммыПо70,
ВЫБОР
КОГДА Тысяча.Поле1 <= 30
ТОГДА Тысяча.Поле1
ИНАЧЕ 0
КОНЕЦ КАК КоличествоБобинПо70м,
Бобины70.Номенклатура
ПОМЕСТИТЬ БобиныПо70
ИЗ
Тысяча КАК Тысяча,
Бобины70 КАК Бобины70
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
БобиныПо30.СуммыПо30 + БобиныПо70.СуммыПо70 КАК Сумма,
БобиныПо30.Номенклатура КАК БобиныПо30Метров,
БобиныПо30.КоличествоБобинПо30м КАК КоличествоБобинПо30м,
БобиныПо70.Номенклатура КАК БобиныПо70Метров,
БобиныПо70.КоличествоБобинПо70м КАК КоличествоБобинПо70м
ПОМЕСТИТЬ ВыборкаВсехВариантов
ИЗ
БобиныПо30 КАК БобиныПо30,
БобиныПо70 КАК БобиныПо70
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 10
МИНИМУМ(ВыборкаВсехВариантов.Сумма - &ДлинаЗаказчика) КАК МинимальноеОтклонение,
ВыборкаВсехВариантов.КоличествоБобинПо30м,
ВыборкаВсехВариантов.КоличествоБобинПо70м
ИЗ
ВыборкаВсехВариантов КАК ВыборкаВсехВариантов
ГДЕ
ВыборкаВсехВариантов.Сумма - &ДлинаЗаказчика >= 0
СГРУППИРОВАТЬ ПО
ВыборкаВсехВариантов.КоличествоБобинПо30м,
ВыборкаВсехВариантов.КоличествоБобинПо70м
УПОРЯДОЧИТЬ ПО
МинимальноеОтклонение