Вывод строк номенклатура из счета в регистр сведений
Добрый день! Не могу вывести все строки номенклатура из счета. В данный момент у меня выводиться лишь 1 строка номенклатура со счета по индексу а вывести все строки не могу додумать как.....
----------------------------------------------------------------------------------------------------------------------------
&НаСервере
Функция НоменклатураТабличнойЧасти(СчетСсылка)
МассивНоменклатура=Новый Массив;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
| СчетНаОплатуПоставщикаТовары.Номенклатура КАК Номенклатура,
| СчетНаОплатуПоставщикаТовары.Номенклатура.Артикул КАК НоменклатураАртикул,
| СчетНаОплатуПоставщикаТовары.Номенклатура.Код КАК НоменклатураКод
|ИЗ
| Документ.СчетНаОплатуПоставщика.Товары КАК СчетНаОплатуПоставщикаТовары
|ГДЕ
| СчетНаОплатуПоставщикаТовары.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",СчетСсылка);
РезультатЗапроса=Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат МассивНоменклатура;
Иначе
Выборка=РезультатЗапроса.Выбрать();
КонецЕсли;
Пока Выборка.Следующий() Цикл
Если МассивНоменклатура.Найти(Выборка.Номенклатура)=неопределено Тогда
МассивНоменклатура.Добавить(Выборка.Номенклатура);
КонецЕсли;
КонецЦикла;
Возврат МассивНоменклатура;
КонецФункции
Показать----------------------------------------------------------------------------------------------------------------------------
МассивНоменклатура=НоменклатураТабличнойЧасти(СчетСсылка);
Если МассивНоменклатура.Количество()=1 Тогда
МенеджерЗаписи.Номенклатура=СчетСсылка.Товары[0].Номенклатура;
ИначеЕсли МассивНоменклатура.Количество()>1 Тогда
МенеджерЗаписи.Номенклатура= (Вывести все строки номенклатура из счета)????????????
ИначеЕсли МассивНоменклатура.Количество()=0 Тогда
МенеджерЗаписи.Номенклатура=Справочники.Номенклатура.ПустаяСсылка();
Иначе
МенеджерЗаписи.Номенклатура=Справочники.Номенклатура.ПустаяСсылка();
МенеджерЗаписи.Номенклатура=Истина;
КонецЕсли;
ПоказатьПо теме из базы знаний
- Автоматическое заполнение статистической формы учета перемещения товаров при ЭКСПОРТЕ (ФТС) в государства ЕАЭС (Беларусь, Казахстан, Армения и Кыргызская Республика)
- Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.
- Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)
- Распространенные ошибки разработчиков, приводящие к проблемам производительности
- Корректировка остатков номенклатуры, сравнение остатков по регистрам накопления и бухгалтерии (проводкам), отчет и обработка
Найденные решения
(4)
Проблема скорее всего тут. Но написано всё коряво конечно.
(3)В счете могут быть до 5 или больше строк номенклатуры и да они разные, у меня работает вывод из счета 1 строки по индексу а остальные как вывести, не могу додумать..
Проблема скорее всего тут. Но написано всё коряво конечно.
ИначеЕсли МассивНоменклатура.Количество()>1 Тогда
Для каждого строка из МассивНоменклатура цикл
//добавляйте куда хотите из массива
конеццикла;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)
Проблема скорее всего тут. Но написано всё коряво конечно.
(3)В счете могут быть до 5 или больше строк номенклатуры и да они разные, у меня работает вывод из счета 1 строки по индексу а остальные как вывести, не могу додумать..
Проблема скорее всего тут. Но написано всё коряво конечно.
ИначеЕсли МассивНоменклатура.Количество()>1 Тогда
Для каждого строка из МассивНоменклатура цикл
//добавляйте куда хотите из массива
конеццикла;
Для добавления отдельной записи в регистр сведений, не подчиненный регистратору, можно использовать объект РегистрСведенийМенеджерЗаписи.<имя>.
Если требуется добавить несколько записей в регистр сведений, можно использовать объект РегистрСведенийНаборЗаписей.<имя>.
НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(ПолеВводаНоменклатура);
Для Каждого СтрокаТаблицы Из ТаблицаСвойств Цикл
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Объект = ПолеВводаНоменклатура;
НоваяЗапись.Свойство = СтрокаТаблицы.Свойство;
НоваяЗапись.Значение = СтрокаТаблицы.ЗначениеСвойства;
КонецЦикла;
НаборЗаписей.Записать();
ПоказатьПо сути вы запросом получаете все данные и их же можно загружать в регистр из выборки без использования массива.
Взято с ИТС
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот