Программное создание колонки и заполнение данными из регистра накопления

1. mishwey 27.09.23 12:01 Сейчас в теме
Необходимо в документе "Расходная накладная" написать команду, которая через нажатие на кнопку добавит колонку с указанием значения остатков по товару из регистра накопления.

При попытке заполнения колонки через запрос выводится ошибка:



Поле объекта не обнаружено (Остаток)
{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(54)}: Объект.Товары.Остаток.Загрузить(РезультатЗапроса);
{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(61)}: КомандаПересчитатьНаСервере();



&НаСервере
Процедура КомандаПересчитатьНаСервере()
		
	МассивРеквизитов = Новый Массив;
	МассивРеквизитов.Добавить(Новый РеквизитФормы("Остаток", Новый ОписаниеТипов("Число"),"Объект.Товары","Остаток",Ложь));
	ИзменитьРеквизиты(МассивРеквизитов );
	
	Эл = Элементы.Добавить("Колонка1", Тип("ПолеФормы"), Элементы.Товары);
	Эл.Вид = ВидПоляФормы.ПолеВвода;
	Эл.ПутьКДанным = "Объект.Товары.Остаток";

	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПоступлениеТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток
		|ИЗ
		|	РегистрНакопления.ПоступлениеТоваров.Остатки КАК ПоступлениеТоваровОстатки";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	
	Объект.Товары.Остаток.Загрузить(РезультатЗапроса);

КонецПроцедуры


&НаКлиенте
Процедура КомандаПересчитать(Команда)
	КомандаПересчитатьНаСервере();
КонецПроцедуры


Показать
Прикрепленные файлы:
1Cv8.dt
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 33 27.09.23 12:37 Сейчас в теме
(1) 1.
Объект.Товары.Остаток.Загрузить(РезультатЗапроса);

Так делать нельзя.
2. По какой номенклатуре остаток-не важно. К черту уточнения, загружаем все что есть. *сарказм*
3. Кнопка у вас одноразовая получится - при повторном нажатии будет ошибка. Перед созданием реквизита и колонки надо проверять, не создана ли она ранее.
3. mishwey 27.09.23 13:23 Сейчас в теме
(2)
Я только начал изучать 1С понимаю, что возможно сделал полную ахинею. Поэтому и хочу узнать как будет лучше сделать. Может необходимо совершенно другой подход применить.
4. Sashares 33 27.09.23 13:25 Сейчас в теме
(3)Подход +- такой.
1 - перед созданием колонки/поля надо добавить проверку на наличие такого поля. Если уже есть, не создавать.
2 - в запрос добавить отбор по номенклатуре, которая есть в тч, и в выборку добавить номенклатуру.
3 - обойти выборку в цикле и заполнить в ТЧ колонку.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот