База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно выбрать и перенести реализации товаров по контрагенту в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 час, 53 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
26 мая 2026 в 14:15 #37476
как программно вывести список реализаций товаров и услуг с отбором по контрагенту и после выбора нескольких реализаций перенести их в табличную часть произвольного документа
-
26 мая 2026 в 14:15 #37477
Чтобы программно вывести список документов «Реализация товаров и услуг» с отбором по контрагенту, дать пользователю возможность выбрать несколько документов, а затем перенести выбранные документы (их табличные части) в табличную часть произвольного документа, можно сделать так:
1. Создать форму выбора с использованием стандартного механизма выбора элементов (например, через форму списка или форму выбора).
2. В форме выбора задать отбор по контрагенту.
3. Позволить множественный выбор.
4. После выбора получить выбранные документы и перенести их табличные части в табличную часть вашего документа.
Пример кода (упрощённый):
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738// Процедура вызова формы выбора реализаций с отбором по контрагентуПроцедура ВыбратьРеализации(Контрагент, ДокументПриемник)// Создаем объект выбора документов Реализация товаров и услугВыбор = Справочники.Документы.РеализацияТоваровИУслуг.СоздатьФормуВыбора();// Устанавливаем отбор по контрагентуВыбор.УстановитьОтбор("Контрагент", Контрагент);// Разрешаем множественный выборВыбор.МножественныйВыбор = Истина;// Открываем форму выбораЕсли Выбор.Открыть() Тогда// Получаем выбранные документыВыбранныеДокументы = Выбор.ПолучитьВыбранныеЭлементы();// Переносим табличные части выбранных документов в табличную часть нашего документаДля Каждого ДокументИзРеализации Из ВыбранныеДокументы Цикл// Загружаем табличную часть "Товары" из документа реализацииТоварыРеализации = ДокументИзРеализации.Товары;// Перебираем строки табличной части реализацииДля Каждого СтрокаРеализации Из ТоварыРеализации Цикл// Добавляем строку в табличную часть документа-приемникаНоваяСтрока = ДокументПриемник.Товары.Добавить();НоваяСтрока.Номенклатура = СтрокаРеализации.Номенклатура;НоваяСтрока.Количество = СтрокаРеализации.Количество;НоваяСтрока.Цена = СтрокаРеализации.Цена;// и другие необходимые реквизитыКонецЦикла;КонецЦикла;// Обновляем форму документа-приемника, если нужноДокументПриемник.Обновить();КонецЕсли;КонецПроцедурыОбъяснения:
—
Справочники.Документы.РеализацияТоваровИУслуг.СоздатьФормуВыбора()— пример, в реальной конфигурации может быть другой путь к форме выбора документа реализации.— Отбор по контрагенту задается через метод
УстановитьОтбор.— Множественный выбор включается через свойство
МножественныйВыбор.— После выбора перебираем выбранные документы, берем их табличную часть «Товары» и копируем строки в табличную часть вашего документа.
— Важно, чтобы табличные части были совместимы по структуре (реквизиты).
Если в вашей конфигурации нет стандартной формы выбора с множественным выбором, можно сделать собственную форму на базе списка документов с отбором по контрагенту и кнопкой «Выбрать».
—
Если нужна более универсальная реализация с использованием запроса и динамического списка, то можно:
— Сформировать запрос по документам реализации с отбором по контрагенту.
— Вывести результат в форму с возможностью множественного выбора.
— По выбору получить ссылки на документы и загрузить табличные части.
—
—
Если нужна помощь с конкретной конфигурацией — укажите её, чтобы дать точный код.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.