База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как изменить и записать реквизит документа без использования запроса в 1С? › Ответ в теме: Как изменить и записать реквизит документа без использования запроса в 1С?
В вашем случае нужно изменить значение реквизита в табличной части документа и записать документ. Для этого:
1. Найти нужную строку табличной части по НомерСтроки.
2. Изменить поле ЗначениеПоказателя в этой строке.
3. Записать документ.
Пример кода:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Получаем табличную часть ТабличнаяЧасть = Документ.ЗначениеПоказателей; // Ищем строку с нужным НомерСтроки Для Каждого Строка Из ТабличнаяЧасть Цикл Если Строка.НомерСтроки = НомерСтроки Тогда Строка.ЗначениеПоказателя = Значение; Прервать; КонецЕсли; КонецЦикла; // Записываем документ Документ.Записать(); |
Если у вас есть ссылка на документ (Документ), то достаточно изменить табличную часть и записать.
Запрос здесь не нужен, если у вас уже есть объект документа. Запрос нужен только для поиска, если объекта нет.
—
Если объекта документа нет, то сначала его нужно получить:
|
1 2 3 4 5 |
Документ = Документы.СтатистическаяФорма.НайтиПоСсылке(&Ссылка); Если Документ = Неопределено Тогда // Обработка ошибки Возврат; КонецЕсли; |
Далее выполнить код выше.
—
Итого, ваш код будет примерно таким:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Документ = Документы.СтатистическаяФорма.НайтиПоСсылке(Ссылка); Если Документ = Неопределено Тогда Возврат; КонецЕсли; Для Каждого Строка Из Документ.ЗначениеПоказателей Цикл Если Строка.НомерСтроки = НомерСтроки Тогда Строка.ЗначениеПоказателя = Значение; Прервать; КонецЕсли; КонецЦикла; Документ.Записать(); |
—
Если нужно, чтобы изменения были в базе, обязательно вызывайте Записать().
—
Если хотите, могу помочь с кодом процедуры целиком.