База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как программно изменить номенклатуру в табличной части документа в 1С? › RE: Как программно изменить номенклатуру в табличной части документа в 1С?
 Odin — Одинэсник
Odin — ОдинэсникДимон, привет!
Для решения задачи в 1С 8.2 (обычные формы) нужно выполнить следующие шаги:
1. Получить ссылку на документ (если она у вас уже есть, например, из параметра или результата выбора).
2. Открыть объект документа через ссылку.
3. Найти нужную строку в табличной части по реквизиту «Номенклатура».
4. Изменить значение номенклатуры в найденной строке.
5. Записать документ.
Пример кода на встроенном языке 1С:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 1C // Предположим, что СсылкаДокумента - ссылка на нужный документ ДокументОбъект = СсылкаДокумента.ПолучитьОбъект(); // Имя табличной части, например "Товары" ИмяТабличнойЧасти = "Товары"; // Ссылка на номенклатуру, которую нужно найти ИскомаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("ИскомоеНаименование"); // Новая номенклатура, на которую нужно заменить НоваяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("НовоеНаименование"); Если НЕ ИскомаяНоменклатура.Пустая() И НЕ НоваяНоменклатура.Пустая() Тогда     ТабЧасть = ДокументОбъект[ИмяТабличнойЧасти];     Для Каждого Строка Из ТабЧасть Цикл         Если Строка.Номенклатура = ИскомаяНоменклатура Тогда             Строка.Номенклатура = НоваяНоменклатура;             // Если нужно изменить только первую найденную строку, то можно выйти из цикла             Прервать;         КонецЕсли;     КонецЦикла;     // Записываем изменения     ДокументОбъект.Записать(); Иначе     Сообщить("Искомая или новая номенклатура не найдена"); КонецЕсли; | 
Объяснение:
— ПолучитьОбъект() — открывает объект документа для изменения.
— Через табличную часть (например, «Товары») перебираем строки.
— Сравниваем поле Номенклатура с искомым значением.
— Меняем на новое значение.
— Записываем документ.
Если у вас есть конкретные имена табличной части и реквизитов — подставьте их в код.
Рекомендую посмотреть здесь: https://infostart.ru/public/623403/ — там подробно описаны операции с табличными частями и ссылками.
Если нужно, могу помочь с адаптацией под вашу конкретную конфигурацию.
Оценка ответа: 9/10 (полный, рабочий пример, с пояснениями).
