Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 09:17

Как получить Остатки из Регистра накопления в объект Документа

Автор 애부개니 김, 22 дек 2019, 15:47

0 Пользователей и 1 гость просматривают эту тему.

애부개니 김

Здравствуйте друзья!!!
Помогите пожалуйста разобраться я уже все перерыл примеры что есть в интернете и литературе не очень сильно та указано.
Суть дела в том что у меня никак не выходит вытащить остатки из регистра накопления в реквизит документа внизу я отсылаю Вам код и выгрузку самой базы.

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

&НаКлиенте
Процедура МодельПриИзменении(Элемент)
МодельПриИзмененииНаСервере();
КонецПроцедуры


&НаКлиенте
Процедура КоличествоДеталейПриИзменении(Элемент)
// Вставить содержимое обработчика.
МодельПриИзмененииНаСервере();
КонецПроцедуры

Заранее благодарю Вас

bsn-chita

А как оно должно работать "правильно"? Так как табличная часть хоть как то заполняется предположу что с этим условно все хорошо. Значит проблема в строке

Объект.ОбщийОстаток=РезультатНаименование.ТекущийОстатокОстаток;

Но и эта строка работает и делает то что вы написали. Вы в регистр ни чего кроме Количества не сохраняете и поэтому получаете 0 как остаток. В ПриходМатериалов добавьте следующий код и получите хоть какой то результат визуальный(документы перепроведите).

Движение.ТекущийОстаток = 1;


애부개니 김

bsn-chita, Можно по подробнее все сделал как вы написали. В модуле документа добавил
Движение.ТекущийОстаток = 1;
Провел документ при создании нового документа все также по нулям.

Norfolk

Блин, вот понаписано-то...
Для начала у регистра накопления поменяйте типы значений, у документа у вас на модель и серию тип - "СправочникСсылка", в у регистра накопления - "Строка".
У вас документ приход материалов не делает записи по полю "Текущий остаток". Документ "Лайн АС" не имеет реквизита "Вид материала", соответственно в регистр по этому полю ничего не пишется (программно вы тоже ничего не добавляете в регистр в это поле). Тем не менее остатки получаете по виду материала, таким образом у вас в выборе всегда будут только документы "Приход материалов".
п.с.
наведите порядок в структуре метаданных... 

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск