gifts2017

Отчет "Планирование Закупок" для УТ 11.x (управляемый)

Опубликовал А Р (p1l1gr1m) в раздел Отчеты - Управленческие

Отчет "Планирование Закупок" для УТ 11.x

Отчет "Планирование Закупок" для УТ 11.x (управляемая форма) - рассчитывает необходимое количество товара для закупки исходя из продаж прошлых периодов и с учетом текущих остатков на складах, заказов покупателей, заказов поставщикам.

Позволяет создавать документ "Заказ покупателю" заполняя его данными из отчета.

     Описание:

Отчет формирует данные по необходимому объему закупки номенклатуры.

Остаток на начало периода прогнозирования: если выбран вид остатка "Остаток по организации на складах", тогда значение в данном поле равно остатку номенклатуры по организации по всем складам (без учета резервов) на начало даты "Начало периода прогнозирования (закупок)"; если вид остатка "Минимальный остаток (из товарных ограничений, используемый)", тогда значение в данном поле равно установленому значению минимального остатка для номенклатуры (задается в Товарных ограничениях, в группе значений "Используемое") (суммарно по всем складам), значение минимального остатка проверяется с учетом характеристики номенклатуры, если же по некой характеристике номенклатуры товарного ограчения нет, то проверяется установленное товарное ограничение по данной номенклатуре с пустой (не установленной) характеристикой.

Заказано клиентами: анализируются документы "Заказ клента" со статусом отличным от "Не согласован"

Заказано поставщику: анализируются документы "Заказ поставщику" со статусом равным "К поступлению" или "Закрыт"

Планируемый объем продаж = Количество рабочих дней в периоде прогнозирования (закупки) * Средняя продажа за 1 день

Необходимый объем закупки = Планируемый объем продаж + Заказано клиентами - Заказано поставщику - Остаток на начало периода прогнозирования

Количество Дней продажи и дней в периоде прогнозирования (закупки) вычисляется соотвественно выбранному числу рабочих дней в неделе (учет рабочих дней ведётся с понедельника, праздники не учитываются).

Возможна настройка порядка округления для полей "Необходимый объем закупки", "Планируемый объем продаж" - округление либо арифметическое (0.01, до второго знака после запятой) либо округление "вверх" до соответствующего выбранного в настройке порядке округления значения.

По кнопке "Создать заказ" в командной панели документа, создаётся и записывается новый документ "Заказ поставщику" с данными из отчета (если нужно чтобы в создаваемом заказе были только товары для которых "Необходимый объем закупки" > 0, то необходимо сформировать отчет с параметром "Только необходимые закупки" = "Да").

Скачать файлы

Наименование Файл Версия Размер
ПланированиеЗакупок.erf 225
.erf 17,58Kb
09.03.12
225
.erf 17,58Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Дмитрий Утенков (automatizator) 14.03.12 05:09
Если все работает, от меня 7 плюсов! :D
2. А Р (p1l1gr1m) 14.03.12 09:48
(1) automatizator, Должно всё работать) По крайней мере, жду от вас замечаний чтобы исправить недочёты.
3. Baza (pbazeliuk) 19.11.12 21:48
Хорошая задумка, но вот было бы отлично если бы считалась оборачиваемость и средний запас товара на складе за период, а при планировании учитывалась сезонность, например прошлогодняя, если не по определенному товару то по видам номенклатуры.
4. Seeker Seeker (Seeker) 19.08.13 14:25
Добрый день,
мы через обработку "управление запасами" создаем документы "заказ на перемещение" (для перемещения товаров в магазин).
Необходимо учесть учесть сезонность продажи (зимой пиво продается хуже чем летом, по этому заказы пива зимой должны быть уменьшены на...)
Ваша обработка может такое?
5. Сергей Сергеев (Progresiv43) 16.09.13 15:43
Добрый день.
Выдает ошибку (во вложении). Нужна помощь.
Прикрепленные файлы:
Ошибка.docx
6. Дмитрий Вас (proces7777) 19.01.14 07:08
7. Дмитрий Вас (proces7777) 19.01.14 13:55
Идея светлая, но продукт очень сырой требует доработок и исправления ошибок
8. А Р (p1l1gr1m) 21.01.14 12:11
(7) proces7777, подскажите, в чем ошибки и сырость?
9. Дмитрий Вас (proces7777) 09.02.14 00:14
Есть проблема если позиция есть в заказах у клиентов то ее несколько раз дублирует.
Было бы неплохо обновить обработачку, сделать разбивку по складам (опционально).
10. ruslan (prog007) 14.07.14 17:07
На УТ 11.1 не работает. Надо переписывать.
11. Maxim Kolkin (the1) 02.04.15 23:52
(10) prog007, переписал заменой Номенклатуры и Характеристики на АналитикаУчетаНоменклатуры, вроде заработало но правильность под вопросом

ВЫБРАТЬ
	ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура как Номенклатура,
	ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика как Характеристика,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоНачальныйОстаток,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
	НАЧАЛОПЕРИОДА(ТоварыОрганизацийОстаткиИОбороты.Период, ДЕНЬ) КАК _День,
	ТоварыОрганизацийОстаткиИОбороты.Регистратор,
	ТоварыОрганизацийОстаткиИОбороты.КоличествоРасход,
	ТоварыОрганизацийОстаткиИОбороты.Организация
ПОМЕСТИТЬ времПродажи
ИЗ
	РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты({(&НачалоПериода)}, {(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ))}, Регистратор, , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
	(ТоварыОрганизацийОстаткиИОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг
			ИЛИ ТоварыОрганизацийОстаткиИОбороты.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	МаксимумМинимумПоРегистраторам._День,
	МаксимумМинимумПоРегистраторам.КоличествоРасход,
	времПродажи_Минимум.КоличествоНачальныйОстаток,
	МаксимумМинимумПоРегистраторам.Номенклатура,
	МаксимумМинимумПоРегистраторам.Характеристика,
	времПродажи_Максимум.КоличествоКонечныйОстаток,
	МаксимумМинимумПоРегистраторам.Организация
ПОМЕСТИТЬ времПродажиПоДням
ИЗ
	(ВЫБРАТЬ
		времПродажи._День КАК _День,
		МИНИМУМ(времПродажи.Регистратор) КАК РегистраторМинимальный,
		МАКСИМУМ(времПродажи.Регистратор) КАК РегистраторМаксимальный,
		СУММА(времПродажи.КоличествоРасход) КАК КоличествоРасход,
		времПродажи.Номенклатура КАК Номенклатура,
		времПродажи.Характеристика КАК Характеристика,
		времПродажи.Организация КАК Организация
	ИЗ
		времПродажи КАК времПродажи
	
	СГРУППИРОВАТЬ ПО
		времПродажи._День,
		времПродажи.Номенклатура,
		времПродажи.Характеристика,
		времПродажи.Организация) КАК МаксимумМинимумПоРегистраторам
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ времПродажи КАК времПродажи_Минимум
		ПО МаксимумМинимумПоРегистраторам.Номенклатура = времПродажи_Минимум.Номенклатура
			И МаксимумМинимумПоРегистраторам.Характеристика = времПродажи_Минимум.Характеристика
			И МаксимумМинимумПоРегистраторам.РегистраторМинимальный = времПродажи_Минимум.Регистратор
			И МаксимумМинимумПоРегистраторам.Организация = времПродажи_Минимум.Организация
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ времПродажи КАК времПродажи_Максимум
		ПО МаксимумМинимумПоРегистраторам.РегистраторМаксимальный = времПродажи_Максимум.Регистратор
			И МаксимумМинимумПоРегистраторам.Номенклатура = времПродажи_Максимум.Номенклатура
			И МаксимумМинимумПоРегистраторам.Характеристика = времПродажи_Максимум.Характеристика
			И МаксимумМинимумПоРегистраторам.Организация = времПродажи_Максимум.Организация
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВЫБОР
		КОГДА МАКСИМУМ(ЕСТЬNULL(НачальныеДаты._День, ДАТАВРЕМЯ(1, 1, 1))) = ДАТАВРЕМЯ(1, 1, 1)
			ТОГДА КонечныеДаты._День
		ИНАЧЕ МАКСИМУМ(ЕСТЬNULL(НачальныеДаты._День, ДАТАВРЕМЯ(1, 1, 1)))
	КОНЕЦ КАК ПредыдущийДень,
	КонечныеДаты._День КАК _День,
	КонечныеДаты.Номенклатура,
	КонечныеДаты.Характеристика,
	КонечныеДаты.Организация
ПОМЕСТИТЬ времПериоды
ИЗ
	(ВЫБРАТЬ
		времПродажиПоДням._День КАК _День,
		времПродажиПоДням.Номенклатура КАК Номенклатура,
		времПродажиПоДням.Характеристика КАК Характеристика,
		времПродажиПоДням.Организация КАК Организация
	ИЗ
		времПродажиПоДням КАК времПродажиПоДням
	
	ОБЪЕДИНИТЬ ВСЕ
	
	ВЫБРАТЬ
		&КонецПериода,
		ВложенныйЗапрос.Номенклатура,
		ВложенныйЗапрос.Характеристика,
		ВложенныйЗапрос.Организация
	ИЗ
		(ВЫБРАТЬ РАЗЛИЧНЫЕ
			времПродажиПоДням.Номенклатура КАК Номенклатура,
			времПродажиПоДням.Характеристика КАК Характеристика,
			времПродажиПоДням.Организация КАК Организация
		ИЗ
			времПродажиПоДням КАК времПродажиПоДням) КАК ВложенныйЗапрос) КАК КонечныеДаты
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			&НачалоПериода КАК _День,
			ВложенныйЗапрос.Номенклатура КАК Номенклатура,
			ВложенныйЗапрос.Характеристика КАК Характеристика,
			ВложенныйЗапрос.Организация КАК Организация
		ИЗ
			(ВЫБРАТЬ РАЗЛИЧНЫЕ
				времПродажи.Номенклатура КАК Номенклатура,
				времПродажи.Характеристика КАК Характеристика,
				времПродажи.Организация КАК Организация
			ИЗ
				времПродажи КАК времПродажи) КАК ВложенныйЗапрос
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			времПродажиПоДням._День,
			времПродажиПоДням.Номенклатура,
			времПродажиПоДням.Характеристика,
			времПродажиПоДням.Организация
		ИЗ
			времПродажиПоДням КАК времПродажиПоДням) КАК НачальныеДаты
		ПО (НачальныеДаты._День < КонечныеДаты._День)
			И (НачальныеДаты.Номенклатура = КонечныеДаты.Номенклатура)
			И (НачальныеДаты.Характеристика = КонечныеДаты.Характеристика)
			И (НачальныеДаты.Организация = КонечныеДаты.Организация)

СГРУППИРОВАТЬ ПО
	КонечныеДаты._День,
	КонечныеДаты.Характеристика,
	КонечныеДаты.Номенклатура,
	КонечныеДаты.Организация
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЕСТЬNULL(времПериоды.ПредыдущийДень, ДАТАВРЕМЯ(1, 1, 1)) КАК ПредыдущийДень,
	времПериоды._День,
	времПериоды.Номенклатура,
	времПериоды.Характеристика,
	ВЫБОР
		КОГДА времПериоды._День = &КонецПериода
			ТОГДА ЕСТЬNULL(времПродажиПоДням_Предыдущие.КоличествоКонечныйОстаток, 0)
		ИНАЧЕ ЕСТЬNULL(времПродажиПоДням.КоличествоНачальныйОстаток, 0)
	КОНЕЦ КАК Остаток,
	ЕСТЬNULL(времПродажиПоДням.КоличествоРасход, 0) КАК КоличествоПродаж,
	времПериоды.Организация
ПОМЕСТИТЬ времПродажиОстатки
ИЗ
	времПериоды КАК времПериоды
		ЛЕВОЕ СОЕДИНЕНИЕ времПродажиПоДням КАК времПродажиПоДням
		ПО времПериоды._День = времПродажиПоДням._День
			И времПериоды.Номенклатура = времПродажиПоДням.Номенклатура
			И времПериоды.Характеристика = времПродажиПоДням.Характеристика
			И времПериоды.Организация = времПродажиПоДням.Организация
		ЛЕВОЕ СОЕДИНЕНИЕ времПродажиПоДням КАК времПродажиПоДням_Предыдущие
		ПО времПериоды.ПредыдущийДень = времПродажиПоДням_Предыдущие._День
			И времПериоды.Номенклатура = времПродажиПоДням_Предыдущие.Номенклатура
			И времПериоды.Характеристика = времПродажиПоДням_Предыдущие.Характеристика
			И времПериоды.Организация = времПродажиПоДням_Предыдущие.Организация
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	времПродажиОстатки.Номенклатура КАК Номенклатура,
	времПродажиОстатки.Характеристика КАК Характеристика,
	СУММА(времПродажиОстатки.КоличествоПродаж) КАК КоличествоПродаж,
	СУММА(ВЫБОР
			КОГДА времПродажиОстатки._День = времПродажиОстатки.ПредыдущийДень
				ТОГДА 1
			ИНАЧЕ ВЫБОР
					КОГДА времПродажиОстатки.Остаток > 0
						ТОГДА ВЫБОР
								КОГДА времПродажиОстатки.ПредыдущийДень = ДАТАВРЕМЯ(1, 1, 1)
									ТОГДА 1
								ИНАЧЕ ВЫБОР
										КОГДА времПродажиОстатки.ПредыдущийДень >= времПродажиОстатки._День
											ТОГДА 0
										КОГДА РАЗНОСТЬДАТ(времПродажиОстатки.ПредыдущийДень, времПродажиОстатки._День, ДЕНЬ) < 7
												И ДЕНЬНЕДЕЛИ(времПродажиОстатки.ПредыдущийДень) < ДЕНЬНЕДЕЛИ(времПродажиОстатки._День)
											ТОГДА ВЫБОР
													КОГДА ДЕНЬНЕДЕЛИ(времПродажиОстатки.ПредыдущийДень) > &РабочихДнейВНеделе
														ТОГДА 0
													ИНАЧЕ ВЫБОР
															КОГДА ДЕНЬНЕДЕЛИ(времПродажиОстатки._День) > &РабочихДнейВНеделе
																ТОГДА &РабочихДнейВНеделе + 1
															ИНАЧЕ ДЕНЬНЕДЕЛИ(времПродажиОстатки._День)
														КОНЕЦ - ДЕНЬНЕДЕЛИ(времПродажиОстатки.ПредыдущийДень)
												КОНЕЦ
										ИНАЧЕ ВЫБОР
												КОГДА ДЕНЬНЕДЕЛИ(времПродажиОстатки.ПредыдущийДень) > &РабочихДнейВНеделе
													ТОГДА 0
												ИНАЧЕ &РабочихДнейВНеделе - ДЕНЬНЕДЕЛИ(времПродажиОстатки.ПредыдущийДень) + 1
											КОНЕЦ + (РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(времПродажиОстатки.ПредыдущийДень, ДЕНЬ, 7 - ДЕНЬНЕДЕЛИ(времПродажиОстатки.ПредыдущийДень)), ДОБАВИТЬКДАТЕ(времПродажиОстатки._День, ДЕНЬ, -ДЕНЬНЕДЕЛИ(времПродажиОстатки._День) + 1), ДЕНЬ) - 1) / 7 * &РабочихДнейВНеделе + ВЫБОР
												КОГДА ДЕНЬНЕДЕЛИ(времПродажиОстатки._День) > &РабочихДнейВНеделе
													ТОГДА &РабочихДнейВНеделе
												ИНАЧЕ ДЕНЬНЕДЕЛИ(времПродажиОстатки._День) - 1
											КОНЕЦ
									КОНЕЦ
							КОНЕЦ
					ИНАЧЕ 0
				КОНЕЦ
		КОНЕЦ) КАК ДнейПродаж,
	МАКСИМУМ(ВЫБОР
			КОГДА &НачалоПериодаПрогнозирования >= &КонецПериодаПрогнозирования
				ТОГДА 0
			КОГДА РАЗНОСТЬДАТ(&НачалоПериодаПрогнозирования, &КонецПериодаПрогнозирования, ДЕНЬ) < 7
					И ДЕНЬНЕДЕЛИ(&НачалоПериодаПрогнозирования) < ДЕНЬНЕДЕЛИ(&КонецПериодаПрогнозирования)
				ТОГДА ВЫБОР
						КОГДА ДЕНЬНЕДЕЛИ(&НачалоПериодаПрогнозирования) > &РабочихДнейВНеделе
							ТОГДА 0
						ИНАЧЕ ВЫБОР
								КОГДА ДЕНЬНЕДЕЛИ(&КонецПериодаПрогнозирования) > &РабочихДнейВНеделе
									ТОГДА &РабочихДнейВНеделе + 1
								ИНАЧЕ ДЕНЬНЕДЕЛИ(&КонецПериодаПрогнозирования)
							КОНЕЦ - ДЕНЬНЕДЕЛИ(&НачалоПериодаПрогнозирования)
					КОНЕЦ
			ИНАЧЕ ВЫБОР
					КОГДА ДЕНЬНЕДЕЛИ(&НачалоПериодаПрогнозирования) > &РабочихДнейВНеделе
						ТОГДА 0
					ИНАЧЕ &РабочихДнейВНеделе - ДЕНЬНЕДЕЛИ(&НачалоПериодаПрогнозирования) + 1
				КОНЕЦ + (РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(&НачалоПериодаПрогнозирования, ДЕНЬ, 7 - ДЕНЬНЕДЕЛИ(&НачалоПериодаПрогнозирования)), ДОБАВИТЬКДАТЕ(&КонецПериодаПрогнозирования, ДЕНЬ, -ДЕНЬНЕДЕЛИ(&КонецПериодаПрогнозирования) + 1), ДЕНЬ) - 1) / 7 * &РабочихДнейВНеделе + ВЫБОР
					КОГДА ДЕНЬНЕДЕЛИ(&КонецПериодаПрогнозирования) > &РабочихДнейВНеделе
						ТОГДА &РабочихДнейВНеделе
					ИНАЧЕ ДЕНЬНЕДЕЛИ(&КонецПериодаПрогнозирования) - 1
				КОНЕЦ
		КОНЕЦ) КАК КоличествоРабочихДнейПериодаПрогнозирования,
	времПродажиОстатки.Организация
ПОМЕСТИТЬ времПродажиИтоговые
ИЗ
	времПродажиОстатки КАК времПродажиОстатки

СГРУППИРОВАТЬ ПО
	времПродажиОстатки.Номенклатура,
	времПродажиОстатки.Характеристика,
	времПродажиОстатки.Организация

ИНДЕКСИРОВАТЬ ПО
	Номенклатура,
	Характеристика
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	времПродажиИтоговые.Номенклатура,
	времПродажиИтоговые.Характеристика,
	времПродажиИтоговые.КоличествоПродаж,
	времПродажиИтоговые.ДнейПродаж,
	ЕСТЬNULL(ОстаткиНаНачалоПериодаПрогнозирования.ОстатокНаНачалоПериодаПрогнозирования, 0) КАК ОстатокНаНачалоПериодаПрогнозирования,
	ВЫБОР
		КОГДА времПродажиИтоговые.ДнейПродаж = 0
			ТОГДА 0
		ИНАЧЕ времПродажиИтоговые.КоличествоПродаж / времПродажиИтоговые.ДнейПродаж
	КОНЕЦ КАК СредняяПродажаДневная,
	времПродажиИтоговые.КоличествоРабочихДнейПериодаПрогнозирования * ВЫБОР
		КОГДА времПродажиИтоговые.ДнейПродаж = 0
			ТОГДА 0
		ИНАЧЕ времПродажиИтоговые.КоличествоПродаж / времПродажиИтоговые.ДнейПродаж
	КОНЕЦ КАК ПланируемыйОбъемПродаж,
	времПродажиИтоговые.КоличествоРабочихДнейПериодаПрогнозирования * ВЫБОР
		КОГДА времПродажиИтоговые.ДнейПродаж = 0
			ТОГДА 0
		ИНАЧЕ времПродажиИтоговые.КоличествоПродаж / времПродажиИтоговые.ДнейПродаж
	КОНЕЦ + ЕСТЬNULL(ЗаказыКлиентовОстатки.ЗаказаноОстаток, 0) - ЕСТЬNULL(ОстаткиНаНачалоПериодаПрогнозирования.ОстатокНаНачалоПериодаПрогнозирования, 0) - ЕСТЬNULL(ЗаказыПоставщикамОстатки.КОформлениюОстаток, 0) КАК НеобходимыйОбъемЗакупки,
	времПродажиИтоговые.КоличествоРабочихДнейПериодаПрогнозирования,
	времПродажиИтоговые.Организация,
	ЕСТЬNULL(ЗаказыПоставщикамОстатки.КОформлениюОстаток, 0) КАК ЗаказаноПоставщику,
	ЕСТЬNULL(ЗаказыКлиентовОстатки.ЗаказаноОстаток, 0) КАК ЗаказаноКлиентами
ПОМЕСТИТЬ времИтоговыеДанные
ИЗ
	времПродажиИтоговые КАК времПродажиИтоговые
		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
			ТоварыОрганизацийОстатки.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
			ТоварыОрганизацийОстатки.КоличествоОстаток КАК ОстатокНаНачалоПериодаПрогнозирования,
			ТоварыОрганизацийОстатки.Организация КАК Организация
		ИЗ
			РегистрНакопления.ТоварыОрганизаций.Остатки(
					{(&НачалоПериодаПрогнозирования)},
					ВЫБОР
						КОГДА &ВидОстатка = 1
							ТОГДА (АналитикаУчетаНоменклатуры.Номенклатура, АналитикаУчетаНоменклатуры.Характеристика, Организация) В
									(ВЫБРАТЬ РАЗЛИЧНЫЕ
										времПродажиИтоговые.Номенклатура,
										времПродажиИтоговые.Характеристика,
										времПродажиИтоговые.Организация
									ИЗ
										времПродажиИтоговые)
						ИНАЧЕ ЛОЖЬ
					КОНЕЦ) КАК ТоварыОрганизацийОстатки
		
		ОБЪЕДИНИТЬ ВСЕ
		
		ВЫБРАТЬ
			ТоварныеОграничения.Номенклатура,
			ВозможныеХарактеристикиНоменклатурыТоварныхОграничений.Характеристика,
			СУММА(ТоварныеОграничения.МинимальноеКоличествоЗапаса),
			ВозможныеХарактеристикиНоменклатурыТоварныхОграничений.Организация
		ИЗ
			РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
				ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
					ВозможныеХарактеристикиТоварныхОграничений.Номенклатура КАК Номенклатура,
					ВозможныеХарактеристикиТоварныхОграничений.Характеристика КАК Характеристика,
					ВозможныеХарактеристикиТоварныхОграничений.Организация КАК Организация,
					МАКСИМУМ(ВозможныеХарактеристикиТоварныхОграничений.ХарактеристикаСоответствия) КАК ХарактеристикаСоответствия
				ИЗ
					(ВЫБРАТЬ РАЗЛИЧНЫЕ
						времПродажиИтоговые.Номенклатура КАК Номенклатура,
						времПродажиИтоговые.Характеристика КАК Характеристика,
						ТоварныеОграничения.Характеристика КАК ХарактеристикаСоответствия,
						времПродажиИтоговые.Организация КАК Организация
					ИЗ
						времПродажиИтоговые КАК времПродажиИтоговые
							ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
							ПО времПродажиИтоговые.Номенклатура = ТоварныеОграничения.Номенклатура
								И времПродажиИтоговые.Характеристика = ТоварныеОграничения.Характеристика
					
					ОБЪЕДИНИТЬ ВСЕ
					
					ВЫБРАТЬ РАЗЛИЧНЫЕ
						времПродажиИтоговые.Номенклатура,
						времПродажиИтоговые.Характеристика,
						ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка),
						времПродажиИтоговые.Организация
					ИЗ
						времПродажиИтоговые КАК времПродажиИтоговые
							ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТоварныеОграничения КАК ТоварныеОграничения
							ПО времПродажиИтоговые.Номенклатура = ТоварныеОграничения.Номенклатура
								И (ТоварныеОграничения.Характеристика = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))) КАК ВозможныеХарактеристикиТоварныхОграничений
				
				СГРУППИРОВАТЬ ПО
					ВозможныеХарактеристикиТоварныхОграничений.Номенклатура,
					ВозможныеХарактеристикиТоварныхОграничений.Характеристика,
					ВозможныеХарактеристикиТоварныхОграничений.Организация) КАК ВозможныеХарактеристикиНоменклатурыТоварныхОграничений
				ПО ТоварныеОграничения.Номенклатура = ВозможныеХарактеристикиНоменклатурыТоварныхОграничений.Номенклатура
					И (&ВидОстатка = 2)
					И ТоварныеОграничения.Характеристика = ВозможныеХарактеристикиНоменклатурыТоварныхОграничений.ХарактеристикаСоответствия
		
		СГРУППИРОВАТЬ ПО
			ТоварныеОграничения.Номенклатура,
			ВозможныеХарактеристикиНоменклатурыТоварныхОграничений.Организация,
			ВозможныеХарактеристикиНоменклатурыТоварныхОграничений.Характеристика) КАК ОстаткиНаНачалоПериодаПрогнозирования
		ПО времПродажиИтоговые.Номенклатура = ОстаткиНаНачалоПериодаПрогнозирования.Номенклатура
			И времПродажиИтоговые.Организация = ОстаткиНаНачалоПериодаПрогнозирования.Организация
			И времПродажиИтоговые.Характеристика = ОстаткиНаНачалоПериодаПрогнозирования.Характеристика
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(
				{(&НачалоПериодаПрогнозирования)},
				(Номенклатура, Характеристика, ЗаказПоставщику.Организация) В
					(ВЫБРАТЬ РАЗЛИЧНЫЕ
						времПродажиИтоговые.Номенклатура,
						времПродажиИтоговые.Характеристика,
						времПродажиИтоговые.Организация
					ИЗ
						времПродажиИтоговые)) КАК ЗаказыПоставщикамОстатки
		ПО времПродажиИтоговые.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура
			И времПродажиИтоговые.Характеристика = ЗаказыПоставщикамОстатки.Характеристика
			И времПродажиИтоговые.Организация = ЗаказыПоставщикамОстатки.ЗаказПоставщику.Организация
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыКлиентов.Остатки(
				{(&НачалоПериодаПрогнозирования)},
				ЗаказКлиента ССЫЛКА Документ.ЗаказКлиента
					И ЗаказКлиента.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗаказовКлиентов.НеСогласован)
					И (Номенклатура, Характеристика, ЗаказКлиента.Организация) В
						(ВЫБРАТЬ РАЗЛИЧНЫЕ
							времПродажиИтоговые.Номенклатура,
							времПродажиИтоговые.Характеристика,
							времПродажиИтоговые.Организация
						ИЗ
							времПродажиИтоговые)) КАК ЗаказыКлиентовОстатки
		ПО времПродажиИтоговые.Номенклатура = ЗаказыКлиентовОстатки.Номенклатура
			И времПродажиИтоговые.Характеристика = ЗаказыКлиентовОстатки.Характеристика
			И времПродажиИтоговые.Организация = ЗаказыКлиентовОстатки.ЗаказКлиента.Организация
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	времИтоговыеДанные.Номенклатура,
	времИтоговыеДанные.Характеристика,
	времИтоговыеДанные.КоличествоПродаж,
	времИтоговыеДанные.ДнейПродаж,
	времИтоговыеДанные.ОстатокНаНачалоПериодаПрогнозирования,
	времИтоговыеДанные.СредняяПродажаДневная,
	ВЫБОР
		КОГДА &ПорядокОкругления = 0
			ТОГДА ВЫРАЗИТЬ(времИтоговыеДанные.ПланируемыйОбъемПродаж КАК ЧИСЛО(15, 2))
		КОГДА времИтоговыеДанные.ПланируемыйОбъемПродаж = 0
			ТОГДА 0
		ИНАЧЕ ((ВЫРАЗИТЬ(времИтоговыеДанные.ПланируемыйОбъемПродаж / &ПорядокОкругления КАК ЧИСЛО(15, 0))) - ВЫБОР
				КОГДА (ВЫРАЗИТЬ(времИтоговыеДанные.ПланируемыйОбъемПродаж / &ПорядокОкругления КАК ЧИСЛО(15, 0))) - времИтоговыеДанные.ПланируемыйОбъемПродаж / &ПорядокОкругления > 0
					ТОГДА 1
				ИНАЧЕ 0
			КОНЕЦ + 1) * &ПорядокОкругления
	КОНЕЦ КАК ПланируемыйОбъемПродаж,
	ВЫБОР
		КОГДА времИтоговыеДанные.НеобходимыйОбъемЗакупки <= 0
			ТОГДА 0
		КОГДА &ПорядокОкругления = 0
			ТОГДА ВЫРАЗИТЬ(времИтоговыеДанные.НеобходимыйОбъемЗакупки КАК ЧИСЛО(15, 2))
		ИНАЧЕ ((ВЫРАЗИТЬ(времИтоговыеДанные.НеобходимыйОбъемЗакупки / &ПорядокОкругления КАК ЧИСЛО(15, 0))) - ВЫБОР
				КОГДА (ВЫРАЗИТЬ(времИтоговыеДанные.НеобходимыйОбъемЗакупки / &ПорядокОкругления КАК ЧИСЛО(15, 0))) - времИтоговыеДанные.НеобходимыйОбъемЗакупки / &ПорядокОкругления > 0
					ТОГДА 1
				ИНАЧЕ 0
			КОНЕЦ + 1) * &ПорядокОкругления
	КОНЕЦ КАК НеобходимыйОбъемЗакупки,
	времИтоговыеДанные.КоличествоРабочихДнейПериодаПрогнозирования,
	времИтоговыеДанные.Организация,
	времИтоговыеДанные.ЗаказаноПоставщику,
	времИтоговыеДанные.ЗаказаноКлиентами
ИЗ
	времИтоговыеДанные КАК времИтоговыеДанные
ГДЕ
	(НЕ &ТолькоНеобходимыеЗакупки
			ИЛИ времИтоговыеДанные.НеобходимыйОбъемЗакупки > 0)
...Показать Скрыть
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа