pozitr0n/1C-Project-Automation-of-the-Company

Moving into one "Номенклатура"

Closed this issue · 4 comments

Do the moving data from all the lists "Номенклатуры" into one list.

The request of this document.

Движения.Записать();

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

         //НовыйЗапрос.УстановитьПараметр("Склад",Склад);
         //                  
         РезультатЗапроса = НовыйЗапрос.Выполнить();

Incorrect request!!!

Change the link!

КомплектацияКомплектующиее.Ссылка = &Ссылка

Fixed the code-error

Процедура ДобавитьДвиженияПоРегистрам()

    Для Каждого ТекСтрокаКомплектующиее Из Комплектующиее Цикл
        Движение = Движения.ОстаткиМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ТекСтрокаКомплектующиее.Материал;
        Движение.Склад = Склад;
        Движение.Количество = ТекСтрокаКомплектующиее.Количество;

    // регистр СтоимостьМатериалов Расход
        Движение = Движения.СтоимостьМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Материал = ТекСтрокаКомплектующиее.Материал;
        Движение.Стоимость = Число(ТекСтрокаКомплектующиее.Цена) * ТекСтрокаКомплектующиее.Количество;
    КонецЦикла;

    // регистр ОстаткиМатериалов Приход
        Движение = Движения.ОстаткиМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Материал = НоваяНоменклатура;
        Движение.Склад = Склад;
        Движение.Количество = Количество;           

    // регистр СтоимостьМатериалов Приход
        Движение = Движения.СтоимостьМатериалов.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
        Движение.Период = Дата;
        Движение.Материал = НоваяНоменклатура;
        Движение.Стоимость = ТекСтрокаКомплектующиее.Цена * Количество;

    Движения.Записать();
КонецПроцедуры;

2 OnChanging procedures

&НаКлиенте
Процедура КомплектующиееМатериалПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Комплектующиее.ТекущиеДанные;

        //проверка даты на актуальность
        АктуальнаяДата = ?( Объект.Ссылка.Пустая(), ТекущаяДата(), Объект.Дата );

    СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена( АктуальнаяДата, СтрокаТабличнойЧасти.Материал );
    КонецПроцедуры

&НаКлиенте
Процедура КомплектующиееКоличествоПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Комплектующиее.ТекущиеДанные;
    РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры