База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как изменить и записать реквизит документа без использования запроса в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 9 часов, 25 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
21 мая 2026 в 10:00 #37395
Запрос = Новый Запрос;
Запрос.Текст = «ВЫБРАТЬ
| СтатистическаяФормаЗначениеПоказателей.НомерСтроки КАК НомерСтроки,
| СтатистическаяФормаЗначениеПоказателей.ЗначениеПоказателя КАК ЗначениеПоказателя
|ИЗ
| Документ.СтатистическаяФорма.ЗначениеПоказателей КАК СтатистическаяФормаЗначениеПоказателей
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.СтатистическаяФорма КАК СтатистическаяФорма
| ПО СтатистическаяФормаЗначениеПоказателей.Ссылка = СтатистическаяФорма.Ссылка
|ГДЕ
| СтатистическаяФорма.Ссылка = &Ссылка
| И СтатистическаяФормаЗначениеПоказателей.НомерСтроки = &НомерСтроки»;
Запрос.Параметры.Вставить(«Ссылка», Документ);
Запрос.Параметры.Вставить(«НомерСтроки», НомерСтроки);
Результат = Запрос.Выполнить().Выбрать();Если Результат.Следующий() Тогда
Документ.ЗначениеПоказателей.ЗначениеПоказателя = Значение;
КонецЕсли;
надо сделать так чтобы реквизит ЗначениеПоказателя в указанном документе становился Значение и происходила запись документа -
21 мая 2026 в 10:00 #37396
В вашем случае нужно изменить значение реквизита в табличной части документа и записать документ. Для этого:
1. Найти нужную строку табличной части по НомерСтроки.
2. Изменить поле ЗначениеПоказателя в этой строке.
3. Записать документ.Пример кода:
1С (Код)12345678910111213// Получаем табличную частьТабличнаяЧасть = Документ.ЗначениеПоказателей;// Ищем строку с нужным НомерСтрокиДля Каждого Строка Из ТабличнаяЧасть ЦиклЕсли Строка.НомерСтроки = НомерСтроки ТогдаСтрока.ЗначениеПоказателя = Значение;Прервать;КонецЕсли;КонецЦикла;// Записываем документДокумент.Записать();Если у вас есть ссылка на документ (Документ), то достаточно изменить табличную часть и записать.
Запрос здесь не нужен, если у вас уже есть объект документа. Запрос нужен только для поиска, если объекта нет.
—
Если объекта документа нет, то сначала его нужно получить:
1С (Код)12345Документ = Документы.СтатистическаяФорма.НайтиПоСсылке(&Ссылка);Если Документ = Неопределено Тогда// Обработка ошибкиВозврат;КонецЕсли;Далее выполнить код выше.
—
Итого, ваш код будет примерно таким:
1С (Код)12345678910111213Документ = Документы.СтатистическаяФорма.НайтиПоСсылке(Ссылка);Если Документ = Неопределено ТогдаВозврат;КонецЕсли;Для Каждого Строка Из Документ.ЗначениеПоказателей ЦиклЕсли Строка.НомерСтроки = НомерСтроки ТогдаСтрока.ЗначениеПоказателя = Значение;Прервать;КонецЕсли;КонецЦикла;Документ.Записать();—
Если нужно, чтобы изменения были в базе, обязательно вызывайте Записать().
—
Если хотите, могу помочь с кодом процедуры целиком.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.