Резерв товара по складу и организации?

1. yurowski 33 28.05.15 14:19 Сейчас в теме
Всем привет.

Никто не знает, почему до сих пор не организован резерв товаров на складах и организаций?
Мы уже замахались. Резервирование идет по складу заказом с одной организации, а списать его могут с другой организации и для заказа ничего не останется. Вроде товар есть на складе в том кол-ве которое резервировали но уже не на той организации, что указана в заказе.

Никто ничего не придумал для этого контроля ещё ?

P.S. Перепродажи не устраивают.

Если кому нужно, вот сам написал контроль. Но тут нужно учесть один момент, что заказы всегда резервируют товар иначе работать не будет.

Процедура КонтрольРезервовТоваровПоОрганизации(СтруктураШапкиДокумента, Отказ, Заголовок) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ЗаказПокупателяТовары.Номенклатура,
	|	ЗаказПокупателя.Организация,
	|	ЗаказПокупателя.СкладГруппа,
	|	СУММА(ЗаказПокупателяТовары.Количество) КАК Количество,
	|	ЗаказПокупателяТовары.ЕдиницаИзмерения
	|ПОМЕСТИТЬ ДокТЧ
	|ИЗ
	|	Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
	|		ПО ЗаказПокупателяТовары.Ссылка = ЗаказПокупателя.Ссылка
	|ГДЕ
	|	ЗаказПокупателяТовары.Ссылка = &Ссылка
	|
	|СГРУППИРОВАТЬ ПО
	|	ЗаказПокупателяТовары.Номенклатура,
	|	ЗаказПокупателя.Организация,
	|	ЗаказПокупателя.СкладГруппа,
	|	ЗаказПокупателяТовары.ЕдиницаИзмерения
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	СУММА(ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0)) КАК КоличествоВРезерве,
	|	ДокТЧ.Номенклатура,
	|	ДокТЧ.Организация,
	|	ДокТЧ.СкладГруппа,
	|	ЕСТЬNULL(ДокТЧ.Количество, 0) КАК Количество,
	|	ДокТЧ.ЕдиницаИзмерения
	|ПОМЕСТИТЬ ТоварыВРезерве
	|ИЗ
	|	ДокТЧ КАК ДокТЧ
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
	|				КОНЕЦПЕРИОДА(&Дата, ДЕНЬ),
	|				Номенклатура В
	|					(ВЫБРАТЬ
	|						ДокТЧ.Номенклатура
	|					ИЗ
	|						ДокТЧ КАК ДокТЧ)) КАК ТоварыВРезервеНаСкладахОстатки
	|		ПО ДокТЧ.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура
	|			И ДокТЧ.Организация = ТоварыВРезервеНаСкладахОстатки.ДокументРезерва.Организация
	|			И ДокТЧ.СкладГруппа = ТоварыВРезервеНаСкладахОстатки.Склад
	|
	|СГРУППИРОВАТЬ ПО
	|	ДокТЧ.Номенклатура,
	|	ДокТЧ.Организация,
	|	ДокТЧ.СкладГруппа,
	|	ДокТЧ.ЕдиницаИзмерения,
	|	ЕСТЬNULL(ДокТЧ.Количество, 0)
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	СУММА(ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0)) КАК КоличествоОстаток,
	|	ЕСТЬNULL(ТоварыВРезерве.КоличествоВРезерве, 0) КАК КоличествоВРезерве,
	|	ТоварыВРезерве.Номенклатура КАК Номенклатура,
	|	ТоварыВРезерве.Организация КАК Организация,
	|	ТоварыВРезерве.СкладГруппа КАК Склад,
	|	ЕСТЬNULL(ТоварыВРезерве.Количество, 0) КАК Количество,
	|	ТоварыВРезерве.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	|	СУММА(ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезерве.КоличествоВРезерве, 0)) КАК СвободныйОстаток
	|ИЗ
	|	ТоварыВРезерве КАК ТоварыВРезерве
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(
	|				КОНЕЦПЕРИОДА(&Дата, ДЕНЬ),
	|				Номенклатура В
	|					(ВЫБРАТЬ
	|						ТоварыВРезерве.Номенклатура
	|					ИЗ
	|						ТоварыВРезерве КАК ТоварыВРезерве)) КАК ТоварыОрганизацийОстатки
	|		ПО ТоварыВРезерве.Номенклатура = ТоварыОрганизацийОстатки.Номенклатура
	|			И ТоварыВРезерве.Организация = ТоварыОрганизацийОстатки.Организация
	|			И ТоварыВРезерве.СкладГруппа = ТоварыОрганизацийОстатки.Склад
	|ГДЕ
	|	ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезерве.КоличествоВРезерве, 0) < ЕСТЬNULL(ТоварыВРезерве.Количество, 0)
	|
	|СГРУППИРОВАТЬ ПО
	|	ТоварыВРезерве.Организация,
	|	ТоварыВРезерве.СкладГруппа,
	|	ТоварыВРезерве.Номенклатура,
	|	ТоварыВРезерве.ЕдиницаИзмерения,
	|	ЕСТЬNULL(ТоварыВРезерве.КоличествоВРезерве, 0),
	|	ЕСТЬNULL(ТоварыВРезерве.Количество, 0)";
	
	Запрос.УстановитьПараметр("Дата", СтруктураШапкиДокумента.Дата);
	Запрос.УстановитьПараметр("Организация", СтруктураШапкиДокумента.Организация);
	Запрос.УстановитьПараметр("Склад",СтруктураШапкиДокумента.СкладГруппа);
	Запрос.УстановитьПараметр("Ссылка",СтруктураШапкиДокумента.Ссылка);

	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл

		//КоличествоКПередачеПоДокументу = 0;//?(Выборка.ОстатокКПередачеПоДокументу = NULL, 0, Выборка.ОстатокКПередачеПоДокументу);

		СтрокаСообщения = "Остатка по организации: " + СтруктураШапкиДокумента.Организация +
		" по складу: " + Выборка.Склад +
		" товара " +  
		УправлениеЗапасами.ПредставлениеНоменклатуры(Выборка.Номенклатура)  +
		" недостаточно для установки в резерв. <<КОНТРОЛЬ РЕЗЕРВА НЕ ПРОЙДЕН>>";
		
		СвободныйОстаток = Выборка.СвободныйОстаток;

		УправлениеЗапасами.ОшибкаНетОстатка(
			СтрокаСообщения, 
			СвободныйОстаток, 
			Выборка.Количество,
			Выборка.ЕдиницаИзмерения, 
			Отказ, 
			Заголовок);
		
	КонецЦикла;

	

КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. pavel06 2 28.05.15 17:36 Сейчас в теме
У меня в базе КА одна организация и резервирование нормально работает, только дату запрета редактирования надо менеджерам выставлять до сегодняшнего дня (может у Вас по обеим огранизациям не выставлено?)
С двумя организациями Вы что-то напутали. Вообще-то по моим наблюдениям склады к организациям не привязываются и как-бы общие, поэтому конфликты по резервированию может могут быть, если 2 огранизации.
Товар же не может принадлежать сразу двум организациям, только одной.
Поэтому 2 организации отгружающие один и тот же товар, надо разнести по разным базам со своими складами и организовывать обмен товаром.

Отчет Запасы-Товары в резерве на складах показывает, что есть в резерве и под какие заказы покупателей. Резервирование производится из заказов покупателей документами Резервирование.
3. yurowski 33 29.05.15 09:14 Сейчас в теме
(2) pavel06, у нас 4 организации и 6 складов, и всё в одной базе. Причем организации и на УСН и ОСН. Вот такая система. В шапке я написал уже запрос по контролю. Сейчас помогает.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот