Цитата |
---|
Алексей Тестов пишет: Добрый день. Встала необходимость оптимизировать процесс заказа товара поставщикам......
Спасибо. |
Сделано на примере списка заказ нарядов.В форме списка номенклатуры в процедуре СписокПриПолученииДАнных вставлен такой код
Код |
---|
Если ЭлементыФормы.ДействияФормы.Кнопки.ПоказатьМинОст.Пометка=Истина тогда
//МинОст раскрашиваем -будет тупить наверное
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ //ПЕРВЫЕ 1
//| ВЫБРАТЬ
//| ОстаткиТоваровКомпанииОстатки.КоличествоОстаток,
//| ВложенныйЗапрос.МинОст,
| ВложенныйЗапрос.Номенклатура,
| ВЫБОР
| КОГДА Сумма(ВложенныйЗапрос.МинОст) - Сумма(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток) = 0
| ТОГДА ""Розовый""
| КОГДА Сумма(ВложенныйЗапрос.МинОст) - Сумма(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток) > 0
| ТОГДА ""Красный""
| ИНАЧЕ ""Пусто""
| КОНЕЦ КАК Цвет
| ИЗ
| (ВЫБРАТЬ
| ДополнительныеРеквизитыНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
| СУММА(ДополнительныеРеквизитыНоменклатурыСрезПоследних.ЗначениеРеквизита) КАК МинОст,
| ДополнительныеРеквизитыНоменклатурыСрезПоследних.ПодразделениеКомпании КАК Подразделение
| ИЗ
| РегистрСведений.ДополнительныеРеквизитыНоменклатуры.СрезПоследних(&ТД, Номенклатура = &Товар) КАК ДополнительныеРеквизитыНоменклатурыСрезПоследних
| ГДЕ
| НЕ ДополнительныеРеквизитыНоменклатурыСрезПоследних.ЗначениеРеквизита ЕСТЬ NULL
| И ДополнительныеРеквизитыНоменклатурыСрезПоследних.ДополнительныйРеквизит = ЗНАЧЕНИЕ(Перечисление.ДополнительныеРеквизитыНоменклатуры.МинимальныйОСтаток)
| СГРУППИРОВАТЬ ПО
| ДополнительныеРеквизитыНоменклатурыСрезПоследних.Номенклатура,
| ДополнительныеРеквизитыНоменклатурыСрезПоследних.ПодразделениеКомпании) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваровКомпании.Остатки(&ТД, Номенклатура = &Товар) КАК ОстаткиТоваровКомпанииОстатки
| ПО ВложенныйЗапрос.Номенклатура = ОстаткиТоваровКомпанииОстатки.Номенклатура
| И ВложенныйЗапрос.Подразделение = ОстаткиТоваровКомпанииОстатки.СкладКомпании.Подразделение
| ГДЕ
//| ОстаткиТоваровКомпанииОстатки.КоличествоОстаток <= ВложенныйЗапрос.МинОст";
| 0 < ВложенныйЗапрос.МинОст
| СГРУППИРОВАТЬ ПО
| ВложенныйЗапрос.Номенклатура";
Запрос.УстановитьПараметр("ТД",ТекущаяДата());
Запрос.УстановитьПараметр("Товар",ОформлениеСтроки.ДанныеСтроки.Ссылка);
РезультатМинЗАпроса=Запрос.Выполнить();
если НЕ РезультатМинЗАпроса.Пустой() тогда //"Пусто"
Выборка=РезультатМинЗАпроса.Выбрать();
Выборка.Следующий();
если Выборка.Цвет="Пусто" тогда иначе
ОформлениеСтроки.ЦветФона=WebЦвета[Выборка.Цвет];
конецесли;
конецесли;
|
Где ПоказатьМинОст-кнопка на панели командной (для самостоятельного выбора режима работы)
Выглядит это так -см приложение.
Ну а в заказе поставщику прям такой пункт есть (он вообще стандартный) -"Заполнить мин.количеством" -но у меня им пользуются редко.
Как то так,все вроде не сложно