Загрузка данных



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