- 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
- 56
- 57
- 58
- 59
- 60
- 61
"ВЫБРАТЬ
| СчетСписокНоменклатуры.Номенклатура,
| СУММА(СчетСписокНоменклатуры.Количество) КАК Количество
|ПОМЕСТИТЬ ВТ
|ИЗ
| Документ.СчетНаОплатуПокупателю.Товары КАК СчетСписокНоменклатуры
|ГДЕ
| СчетСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СчетСписокНоменклатуры.Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОстаткиНоменклатурыОстатки.Номенклатура КАК Товар,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК Свободныйостаток,
| ВТ.Количество,
| ОстаткиНоменклатурыОстатки.Номенклатура.Код КАК Код,
| ОстаткиНоменклатурыОстатки.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдиницаИзмерения
|ИЗ
| ВТ КАК ВТ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
| &Дата,
| Номенклатура В
| (ВЫБРАТЬ
| ВТ.Номенклатура
| ИЗ
| ВТ)
| И Склад = &Склад) КАК ОстаткиНоменклатурыОстатки
| ПО ВТ.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
| ПО ВТ.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура";
Запрос.УстановитьПараметр("Дата", НаДату);
Запрос.УстановитьПараметр("Ссылка", СсылкаДок);
Запрос.УстановитьПараметр("Склад", Склад);
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
ЗаменаНоменклатуры = РегистрыСведений.ЗаменаНоменклатуры.СоздатьМенеджерЗаписи();
ЗаменаНоменклатуры.Номенклатура = Результат.Товар;
ЗаменаНоменклатуры.Прочитать();
Если ЗаменаНоменклатуры.Выбран() Тогда
Если Результат.СвободныйОстаток < Результат.Количество Тогда
Сообщить("Недостаточно номенклатуры """+Результат.Товар+"""" + " ("+СокрП(Результат.Код)+") требуется "+Результат.Количество+" "+Результат.ЕдиницаИзмерения+" осталось на складе "+Результат.СвободныйОстаток+" "+Результат.ЕдиницаИзмерения+"!", СтатусСообщения.Внимание);
Возврат Истина;
Иначе
Возврат Ложь;
КонецЕсли;
// Если Результат.СвободныйОстаток = 0 Тогда
// Сообщить("Не хватает "+Результат.Номенклатура+" требуется "+Результат.Количество+" осталось на складе "+Результат.СвободныйОстаток);
// Возврат Истина;
// Иначе
// Возврат Ложь;
// КонецЕсли;
КонецЕсли;
КонецЦикла;