Вывод строк номенклатура из счета в регистр сведений

1. user1582372 26.04.21 09:00 Сейчас в теме
Добрый день! Не могу вывести все строки номенклатура из счета. В данный момент у меня выводиться лишь 1 строка номенклатура со счета по индексу а вывести все строки не могу додумать как.....
&НаСервере
Функция НоменклатураТабличнойЧасти(СчетСсылка)
	МассивНоменклатура=Новый Массив;
		
	Запрос=Новый Запрос;
	Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
	             |	СчетНаОплатуПоставщикаТовары.Номенклатура КАК Номенклатура,
	             |	СчетНаОплатуПоставщикаТовары.Номенклатура.Артикул КАК НоменклатураАртикул,
	             |	СчетНаОплатуПоставщикаТовары.Номенклатура.Код КАК НоменклатураКод
	             |ИЗ
	             |	Документ.СчетНаОплатуПоставщика.Товары КАК СчетНаОплатуПоставщикаТовары
	             |ГДЕ
	             |	СчетНаОплатуПоставщикаТовары.Ссылка = &Ссылка";
	Запрос.УстановитьПараметр("Ссылка",СчетСсылка);
	РезультатЗапроса=Запрос.Выполнить();

	Если РезультатЗапроса.Пустой() Тогда
		Возврат МассивНоменклатура;
	Иначе
		Выборка=РезультатЗапроса.Выбрать(); 
	КонецЕсли;
	
	Пока Выборка.Следующий() Цикл
		Если МассивНоменклатура.Найти(Выборка.Номенклатура)=неопределено Тогда
		МассивНоменклатура.Добавить(Выборка.Номенклатура);
		КонецЕсли;
	КонецЦикла;
	Возврат МассивНоменклатура;	
КонецФункции
Показать


----------------------------------------------------------------------------------------------------------------------------

МассивНоменклатура=НоменклатураТабличнойЧасти(СчетСсылка);
			   			
Если МассивНоменклатура.Количество()=1 Тогда
	 МенеджерЗаписи.Номенклатура=СчетСсылка.Товары[0].Номенклатура;

ИначеЕсли МассивНоменклатура.Количество()>1 Тогда
		     МенеджерЗаписи.Номенклатура= (Вывести все строки номенклатура из счета)????????????	
				 
ИначеЕсли МассивНоменклатура.Количество()=0 Тогда
		    МенеджерЗаписи.Номенклатура=Справочники.Номенклатура.ПустаяСсылка();
Иначе
		    МенеджерЗаписи.Номенклатура=Справочники.Номенклатура.ПустаяСсылка();
		    МенеджерЗаписи.Номенклатура=Истина;						
КонецЕсли;
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
7. tkv44 26.04.21 10:29 Сейчас в теме +0.1 $m
(4)
(3)В счете могут быть до 5 или больше строк номенклатуры и да они разные, у меня работает вывод из счета 1 строки по индексу а остальные как вывести, не могу додумать..


Проблема скорее всего тут. Но написано всё коряво конечно.

ИначеЕсли МассивНоменклатура.Количество()>1 Тогда
Для каждого строка из МассивНоменклатура цикл
//добавляйте куда хотите из массива
конеццикла;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. DenisVol 3 26.04.21 11:00 Сейчас в теме
(1) возьмите мою обработку и там через набор записей пишите себе в регистр. Я Вам дал шаблон,как получить все строки из документа. А Вы далее уже используйте их как Вам заблагорассудится
2. DenisVol 3 26.04.21 09:55 Сейчас в теме
Посмотрите обработку набросал свой вариант
Прикрепленные файлы:
ВнешняяОбработка1.epf
6. user1582372 26.04.21 10:29 Сейчас в теме
(2) Это хороший код, но мне нужно вывод не в макет а в Регистр сведений
3. tkv44 26.04.21 10:10 Сейчас в теме
Что-то у вас тут нагорожено. В счете сколько строк? Там разные номенклатуры?
4. user1582372 26.04.21 10:13 Сейчас в теме
(3)В счете могут быть до 5 или больше строк номенклатуры и да они разные, у меня работает вывод из счета 1 строки по индексу а остальные как вывести, не могу додумать..
7. tkv44 26.04.21 10:29 Сейчас в теме +0.1 $m
(4)
(3)В счете могут быть до 5 или больше строк номенклатуры и да они разные, у меня работает вывод из счета 1 строки по индексу а остальные как вывести, не могу додумать..


Проблема скорее всего тут. Но написано всё коряво конечно.

ИначеЕсли МассивНоменклатура.Количество()>1 Тогда
Для каждого строка из МассивНоменклатура цикл
//добавляйте куда хотите из массива
конеццикла;
5. hillia 26.04.21 10:23 Сейчас в теме
Для добавления отдельной записи в регистр сведений, не подчиненный регистратору, можно использовать объект РегистрСведенийМенеджерЗаписи.<имя>.


Если требуется добавить несколько записей в регистр сведений, можно использовать объект РегистрСведенийНаборЗаписей.<имя>.


НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Объект.Установить(ПолеВводаНоменклатура); 

Для Каждого СтрокаТаблицы Из ТаблицаСвойств Цикл 
   
   НоваяЗапись = НаборЗаписей.Добавить(); 
   
   НоваяЗапись.Объект = ПолеВводаНоменклатура; 
   НоваяЗапись.Свойство = СтрокаТаблицы.Свойство; 
   НоваяЗапись.Значение = СтрокаТаблицы.ЗначениеСвойства; 
КонецЦикла; 

НаборЗаписей.Записать(); 
Показать



По сути вы запросом получаете все данные и их же можно загружать в регистр из выборки без использования массива.

Взято с ИТС
https://its.1c.ru/db/metod8dev/content/2486/hdoc
9. DenisVol 3 26.04.21 11:01 Сейчас в теме
Возьмите мою обработку уберите вывод в макет на запись в регистр.Через набор записей пишите себе в регистр. Я Вам дал шаблон,как получить все строки из документа. А Вы далее уже используйте их как Вам заблагорассудится
Оставьте свое сообщение

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