|
КАК запросить остатки склада с хитрым параметром количество | ☑ | ||
---|---|---|---|---|
0
aptomilov
19.09.13
✎
15:30
|
Ребят привет, есть такая вот проблему не могу сообразить.
У меня есть некий регистр сведений в котором лежат сведения не снижаемых остатках на том или ином складе. Хочется сделать не два запроса : сначала за остатками потом за не снижаемыми и сравнивать из в таблицах, а поизящнее как то внутри запроса прям поставить условия по номенклатуре и количеству неснижаемого остатка что бы запрос выдал в результате только те записи которые совпадают с регистром неснижамых остатков по полю номенклатура и меньше поля количество. |
|||
1
aptomilov
19.09.13
✎
15:31
|
Что было с чем играть приведу два запроса
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НеснижаемыеОстаткиНоменклатуры.Номенклатура, | НеснижаемыеОстаткиНоменклатуры.Количество |ИЗ | РегистрСведений.НеснижаемыеОстаткиНоменклатуры КАК НеснижаемыеОстаткиНоменклатуры |ГДЕ | НеснижаемыеОстаткиНоменклатуры.Контролировать = &КонтрольВключен | И НеснижаемыеОстаткиНоменклатуры.Уведомлять = &УведомлениеВключено | И НеснижаемыеОстаткиНоменклатуры.Количество>0 | И НеснижаемыеОстаткиНоменклатуры.Склад = &Склад"; Запрос.УстановитьПараметр("КонтрольВключен", Истина); Запрос.УстановитьПараметр("УведомлениеВключено", Истина); Запрос.УстановитьПараметр("Склад", Склад); ТабНеСнижаемыхОстатков = Запрос.Выполнить().Выгрузить(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(Номенклатура В(&СписокНоменклатуры) ) КАК ТоварыНаСкладахОстатки |ГДЕ | ТоварыНаСкладахОстатки.Склад = &Склад | И ТоварыНаСкладахОстатки.Номенклатура В(&СписокНоменклатуры)"; Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("СписокНоменклатуры", СписокНоменклатуры); Результат = Запрос.Выполнить(); |
|||
2
shadowfiend10
19.09.13
✎
15:32
|
GANR в соседней ветке только привел пример, что на собеседовании с таким вопросом у него провалились
|
|||
3
ИС-2
naïve
19.09.13
✎
15:32
|
оба завпроса во временные таблицы (что не пихать все в условия) и связь между таблицами по номенклатуре и сравнению полей
|
|||
4
catena
19.09.13
✎
15:33
|
Ну и свяжи два запроса по номенклатуре.
|
|||
5
aptomilov
19.09.13
✎
15:40
|
Как то так получилось
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НеснижаемыеОстаткиНоменклатуры КАК НеснижаемыеОстаткиНоменклатуры | ПО НеснижаемыеОстаткиНоменклатуры.Количество > ТоварыНаСкладахОстатки.КоличествоОстаток | И НеснижаемыеОстаткиНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура |ГДЕ | НеснижаемыеОстаткиНоменклатуры.Уведомлять = &Уведомлять | И НеснижаемыеОстаткиНоменклатуры.Контролировать = &Контролировать | И НеснижаемыеОстаткиНоменклатуры.Количество > &0 | И НеснижаемыеОстаткиНоменклатуры.Склад = &Склад"; Запрос.УстановитьПараметр("Контролировать", Контролировать); Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("Уведомлять", Уведомлять); Результат = Запрос.Выполнить(); |
|||
6
France
19.09.13
✎
15:41
|
ВЫБРАТЬ
Товары.Ссылка, ПлановыеОстаткиТоваровСрезПоследних.Количество, ТоварыОрганизацийОстатки.Качество ИЗ Справочник.Номенклатура КАК Товары ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки ПО Товары.Ссылка = ТоварыОрганизацийОстатки.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПлановыеОстаткиТоваров.СрезПоследних КАК ПлановыеОстаткиТоваровСрезПоследних ПО Товары.Ссылка = ПлановыеОстаткиТоваровСрезПоследних |
|||
7
aptomilov
19.09.13
✎
16:29
|
(6) спасибо это самое то )
|
|||
8
aptomilov
19.09.13
✎
16:30
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | НеснижаемыеОстаткиНоменклатуры.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток Как КоличествоНаСкладе, | НеснижаемыеОстаткиНоменклатуры.Количество Как НеобходимыйОстаток |ИЗ | РегистрСведений.НеснижаемыеОстаткиНоменклатуры КАК НеснижаемыеОстаткиНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад В (&Склад)) КАК ТоварыНаСкладахОстатки | ПО (НеснижаемыеОстаткиНоменклатуры.Количество > ТоварыНаСкладахОстатки.КоличествоОстаток) | И (НеснижаемыеОстаткиНоменклатуры.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура) |ГДЕ | НеснижаемыеОстаткиНоменклатуры.Уведомлять = &Уведомлять | И НеснижаемыеОстаткиНоменклатуры.Контролировать = &Контролировать | И НеснижаемыеОстаткиНоменклатуры.Количество > 0"; Запрос.УстановитьПараметр("Контролировать", Истина); Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("Уведомлять", Истина); Результат = Запрос.Выполнить().Выгрузить(); |
|||
9
France
19.09.13
✎
18:50
|
(8) для булевых достаточно указать "
|ГДЕ | НеснижаемыеОстаткиНоменклатуры.Уведомлять | И НеснижаемыеОстаткиНоменклатуры.Контролировать | И НеснижаемыеОстаткиНоменклатуры.Количество > 0"; и тогда будет полное вуаля.. вызывает сомнение необходимость " | И НеснижаемыеОстаткиНоменклатуры.Количество > 0" |
|||
10
aptomilov
20.09.13
✎
07:42
|
ну фиг знает вдруг лицо ответственное забудет указать количество
|
|||
11
Dmitry1c
20.09.13
✎
07:51
|
Кажется, кто-то сдает спеца по УТ или БП...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |