Как сделать столбец редактируемым в разделе «Внутренние документы»?

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

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

        добавил столбец в раздел «Внутренние документы» через конфигуратор Внутренние документы — реквизиты, столбец добавился в базе, как теперь настроить так, что бы можно было писать в этот столбец что угодно

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

          Если вы добавили новый реквизит в справочник или документ «Внутренние документы» и хотите, чтобы в списке этого раздела можно было редактировать этот столбец прямо в табличном поле (то есть сделать его редактируемым), то нужно сделать следующее:

          1. В форме списка «Внутренних документов» добавить колонку с редактируемым элементом
          — Откройте форму списка в конфигураторе.
          — Найдите добавленную колонку с вашим реквизитом.
          — В свойствах колонки укажите, что она редактируемая (свойство «Редактируемая» = Истина).
          — В качестве элемента управления для колонки выберите подходящий тип (например, «Поле ввода» для текста).

          2. Обеспечить сохранение изменений
          В форме списка по умолчанию редактирование реквизитов в табличном поле не сохраняется автоматически. Чтобы изменения записывались:
          — В модуле формы списка добавьте обработчик события «ПриИзменении» для табличного поля.
          — В обработчике получите текущую строку и изменённое значение, запишите его в объект (справочник или документ) и вызовите метод Записать().

          Пример кода в модуле формы списка:

          |Процедура ТабличноеПолеПриИзменении(Элемент, НовоеЗначение, Отмена)
          | ТекущаяСтрока = Элемент.ТекущиеДанные;
          | Если ТекущаяСтрока <> Неопределено Тогда
          | Объект = ТекущаяСтрока.Ссылка.ПолучитьОбъект();
          | Объект.ВашРеквизит = НовоеЗначение;
          | Объект.Записать();
          | // Обновить строку списка, если нужно
          | Элемент.ОбновитьСтроку();
          | КонецЕсли;
          |КонецПроцедуры

          3. Проверить права доступа
          Убедитесь, что у пользователя есть права на изменение этого реквизита.

          4. Если используется произвольный запрос в форме списка
          При использовании произвольного запроса редактирование в списке не работает напрямую, так как данные берутся из запроса, а не из объектов. В этом случае нужно реализовать отдельную форму редактирования или обработчик двойного клика, который будет открывать форму объекта для редактирования.

          Если хотите, чтобы редактирование было максимально просто — лучше сделать отдельную форму редактирования или использовать стандартную форму объекта.

          Рекомендую посмотреть пример редактирования в списках здесь:
          https://infostart.ru/public/237017/
          там подробно показано, как добавить отбор и редактирование в списках.

          Если нужна помощь с конкретным кодом — приложите форму списка и укажите, какой тип реквизита добавлен.

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