Moving into one "Номенклатура"
Closed this issue · 4 comments
pozitr0n commented
Do the moving data from all the lists "Номенклатуры" into one list.
pozitr0n commented
The request of this document.
Движения.Записать();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
//проверить отрицательные остатки
НовыйЗапрос = Новый Запрос;
НовыйЗапрос.МенеджерВременныхТаблиц = МенеджерВТ;
НовыйЗапрос.Текст = "ВЫБРАТЬ
| КомплектацияКомплектующиее.Материал КАК Материал,
| СУММА(КомплектацияКомплектующиее.Количество) КАК Количество
|ПОМЕСТИТЬ ВТ_НоменклатураДокумента
|ИЗ
| Документ.Комплектация.Комплектующиее КАК КомплектацияКомплектующиее
|ГДЕ
| КомплектацияКомплектующиее.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| КомплектацияКомплектующиее.Материал
|
|ИНДЕКСИРОВАТЬ ПО
| Материал
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_НоменклатураДокумента.Материал,
| ВТ_НоменклатураДокумента.Количество КАК КоличествоВДокументе,
| ОстаткиМатериаловОстатки.КоличествоОстаток
|ИЗ
| ВТ_НоменклатураДокумента КАК ВТ_НоменклатураДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
| &Дата,
| Материал В
| (ВЫБРАТЬ
| ВТ_НоменклатураДокумента.Материал
| ИЗ
| ВТ_НоменклатураДокумента КАК ВТ_НоменклатураДокумента)
| И Склад = &Склад) КАК ОстаткиМатериаловОстатки
| ПО ВТ_НоменклатураДокумента.Материал = ОстаткиМатериаловОстатки.Материал";
//НовыйЗапрос.УстановитьПараметр("Склад",Склад);
//
РезультатЗапроса = НовыйЗапрос.Выполнить();
pozitr0n commented
Incorrect request!!!
Change the link!
КомплектацияКомплектующиее.Ссылка = &Ссылка
pozitr0n commented
Fixed the code-error
Процедура ДобавитьДвиженияПоРегистрам()
Для Каждого ТекСтрокаКомплектующиее Из Комплектующиее Цикл
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаКомплектующиее.Материал;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаКомплектующиее.Количество;
// регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаКомплектующиее.Материал;
Движение.Стоимость = Число(ТекСтрокаКомплектующиее.Цена) * ТекСтрокаКомплектующиее.Количество;
КонецЦикла;
// регистр ОстаткиМатериалов Приход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = НоваяНоменклатура;
Движение.Склад = Склад;
Движение.Количество = Количество;
// регистр СтоимостьМатериалов Приход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Материал = НоваяНоменклатура;
Движение.Стоимость = ТекСтрокаКомплектующиее.Цена * Количество;
Движения.Записать();
КонецПроцедуры;
pozitr0n commented
2 OnChanging procedures
&НаКлиенте
Процедура КомплектующиееМатериалПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Комплектующиее.ТекущиеДанные;
//проверка даты на актуальность
АктуальнаяДата = ?( Объект.Ссылка.Пустая(), ТекущаяДата(), Объект.Дата );
СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена( АктуальнаяДата, СтрокаТабличнойЧасти.Материал );
КонецПроцедуры
&НаКлиенте
Процедура КомплектующиееКоличествоПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Комплектующиее.ТекущиеДанные;
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры