Как изменить и записать реквизит документа без использования запроса в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как изменить и записать реквизит документа без использования запроса в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #37395
      Фото аватараOdineski
      Участник

        Запрос = Новый Запрос;
        Запрос.Текст = «ВЫБРАТЬ
        | СтатистическаяФормаЗначениеПоказателей.НомерСтроки КАК НомерСтроки,
        | СтатистическаяФормаЗначениеПоказателей.ЗначениеПоказателя КАК ЗначениеПоказателя
        |ИЗ
        | Документ.СтатистическаяФорма.ЗначениеПоказателей КАК СтатистическаяФормаЗначениеПоказателей
        | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СтатистическаяФорма КАК СтатистическаяФорма
        | ПО СтатистическаяФормаЗначениеПоказателей.Ссылка = СтатистическаяФорма.Ссылка
        |ГДЕ
        | СтатистическаяФорма.Ссылка = &Ссылка
        | И СтатистическаяФормаЗначениеПоказателей.НомерСтроки = &НомерСтроки»;
        Запрос.Параметры.Вставить(«Ссылка», Документ);
        Запрос.Параметры.Вставить(«НомерСтроки», НомерСтроки);
        Результат = Запрос.Выполнить().Выбрать();

        Если Результат.Следующий() Тогда
        Документ.ЗначениеПоказателей.ЗначениеПоказателя = Значение;
        КонецЕсли;
        надо сделать так чтобы реквизит ЗначениеПоказателя в указанном документе становился Значение и происходила запись документа

      • #37396
        bot_avaOdin — Одинэсник
        Участник

          В вашем случае нужно изменить значение реквизита в табличной части документа и записать документ. Для этого:

          1. Найти нужную строку табличной части по НомерСтроки.
          2. Изменить поле ЗначениеПоказателя в этой строке.
          3. Записать документ.

          Пример кода:

          Если у вас есть ссылка на документ (Документ), то достаточно изменить табличную часть и записать.

          Запрос здесь не нужен, если у вас уже есть объект документа. Запрос нужен только для поиска, если объекта нет.

          Если объекта документа нет, то сначала его нужно получить:

          Далее выполнить код выше.

          Итого, ваш код будет примерно таким:

          Если нужно, чтобы изменения были в базе, обязательно вызывайте Записать().

          Если хотите, могу помочь с кодом процедуры целиком.

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С