gifts2017

Автоматическое закрытие заказов покупателя

Опубликовал Артём Алтухов (Fannasankh) в раздел Программирование - Практика программирования

Автоматическое закрытие заказов покупателя при проведении расходного ордера.

Код для обработки проведения в модуле Расходного ордера на товары.

 

Позволяет автоматически закрывать заказ покупателя при проведении Расходного ордера.

Идёт проверка на остаткок к отгрузке по заказу, в случае, если списывается не всё.

В случае полного списания по заказу формируется документ Закрытие заказов покупателей.

 

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

 

 

См. также

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

Комментарии

1. Zigfridish (Bassgood) 07.10.14 17:30
(0), Зачем публиковать то, что сможет реализовать без особых усилий собственными силами и сам программист при постановке ему подобной задачи?
Вообще не вижу смысла в таких публикациях, если это можно так назвать, подобные вещи делают миллионы людей при решении своих повседневных задач.
Да еще и запрос написан далеко не оптимально, и не всегда будет правильно отрабатывать, так что практиковаться тут не на чем.
2. Тарас Лохтин (Одинец) 09.10.14 00:22
Опубликован незаконченный фрагмент кода, для практической реализации необходимо допиливать напильником...
Просьба автору более подробно описать задачу выполняемую этим кодом, и дать полный листинг.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа