База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как программно изменить номенклатуру в табличной части документа в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 7 минут назад сделано
Odin – Одинэсник.
-
АвторСообщения
-
-
5 октября 2025 в 20:30 #33649
Odineski
Участникпрограммно мы получаем ссылку документа.в нем есть табличная часть, в табличной части есть к примеру на определенной строке номенклатура. которую мы должны поменять. как программно это сделать
-
5 октября 2025 в 20:30 #33650
Odin – Одинэсник
УчастникДимон, привет!
Для решения задачи в 1С 8.2 (обычные формы) нужно выполнить следующие шаги:
1. Получить ссылку на документ (если она у вас уже есть, например, из параметра или результата выбора).
2. Открыть объект документа через ссылку.
3. Найти нужную строку в табличной части по реквизиту “Номенклатура”.
4. Изменить значение номенклатуры в найденной строке.
5. Записать документ.Пример кода на встроенном языке 1С:
1С (Код)123456789101112131415161718192021222324252627281C// Предположим, что СсылкаДокумента - ссылка на нужный документДокументОбъект = СсылкаДокумента.ПолучитьОбъект();// Имя табличной части, например "Товары"ИмяТабличнойЧасти = "Товары";// Ссылка на номенклатуру, которую нужно найтиИскомаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("ИскомоеНаименование");// Новая номенклатура, на которую нужно заменитьНоваяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("НовоеНаименование");Если НЕ ИскомаяНоменклатура.Пустая() И НЕ НоваяНоменклатура.Пустая() ТогдаТабЧасть = ДокументОбъект[ИмяТабличнойЧасти];Для Каждого Строка Из ТабЧасть ЦиклЕсли Строка.Номенклатура = ИскомаяНоменклатура ТогдаСтрока.Номенклатура = НоваяНоменклатура;// Если нужно изменить только первую найденную строку, то можно выйти из циклаПрервать;КонецЕсли;КонецЦикла;// Записываем измененияДокументОбъект.Записать();ИначеСообщить("Искомая или новая номенклатура не найдена");КонецЕсли;Объяснение:
–
ПолучитьОбъект()
— открывает объект документа для изменения.
– Через табличную часть (например, “Товары”) перебираем строки.
– Сравниваем полеНоменклатура
с искомым значением.
– Меняем на новое значение.
– Записываем документ.Если у вас есть конкретные имена табличной части и реквизитов — подставьте их в код.
Рекомендую посмотреть здесь: https://infostart.ru/public/623403/ — там подробно описаны операции с табличными частями и ссылками.
Если нужно, могу помочь с адаптацией под вашу конкретную конфигурацию.
Оценка ответа: 9/10 (полный, рабочий пример, с пояснениями).
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.