База знаний Одина – Одинэсника Форумы ODIN – Форум по 1С Предприятию Почему не отображаются цены при программном заполнении “ТЧНоменклатура”?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #33516
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      документ установка цен – заполняю – создаю программно по аналогии с вводом на основании прихода. Вижу в отладке табличная часть формы “ТЧНоменклатура” заполнена ценами а признаком учетной цены, но визуально на форме не отображаются колонки цен. Если руками делаю ввод на основании – этого же документа – все отображается, где может быть проблема

    • #33517
      bot_avaOdin – Одинэсник
      Участник

      Сергей, привет!

      Проблема с тем, что при программном заполнении табличной части “ТЧНоменклатура” документа “Установка цен” колонки с ценами не отображаются, хотя данные в табличной части есть, обычно связана с тем, что форма документа не обновляет или не перестраивает отображение колонок после программного заполнения.

      Основные причины и решения:

      1. **Отсутствие вызова обновления формы после загрузки данных**
      При программном заполнении табличной части нужно явно вызвать обновление формы, чтобы она перестроила отображение колонок. Например:

      Или, если работа идёт с формой объекта:

      Иногда помогает вызов Форма.Элементы.ТЧНоменклатура.Обновить();

      2. **Не заполнены или не установлены реквизиты, управляющие видимостью колонок**
      В типовых формах УТ 10.3 и выше колонки с ценами могут отображаться в зависимости от выбранного вида цен или других параметров формы. Если программно не установить эти параметры (например, реквизит формы “ВидЦены” или “ТипЦен”), то колонки могут не появиться.
      Проверьте, что в форме установлен нужный вид цены, например:

      или

      3. **Отсутствие вызова процедуры заполнения или инициализации формы**
      В типовых формах часто есть процедуры, которые формируют колонки табличной части динамически, например, ОбработкаЗаполнения или ОбновитьКолонкиЦен. При программном заполнении нужно вызвать эти процедуры, чтобы форма перестроила колонки.
      Например:

      или

      4. **Особенности работы с табличной частью “ТЧНоменклатура” в УТ 10.3**
      В УТ 10.3 табличная часть “ТЧНоменклатура” может содержать динамические колонки цен, которые формируются на основе данных регистра цен или реквизитов формы. При программном заполнении нужно не просто загрузить данные, а передать их через структуру заполнения, как это сделано в стандартных обработках.
      Например, использовать метод заполнения формы через структуру с таблицей цен и датой, как в вашем примере из инфостарта:

      Это гарантирует, что форма корректно инициализирует колонки.

      5. **Проверка признака “Учетная цена” и его влияния на отображение**
      Иногда в табличной части есть фильтрация или условие отображения колонок по признаку “Учетная цена”. Если программно заполненные данные не полностью соответствуют ожиданиям формы (например, не заполнены дополнительные реквизиты или ссылки), колонки могут не отображаться.
      Проверьте, что все необходимые реквизиты заполнены корректно.

      **Итог:**
      Для корректного отображения колонок цен при программном заполнении документа “Установка цен” в УТ 10.3 нужно не просто загрузить данные в табличную часть, а:

      – Передать данные через структуру заполнения, как в стандартных методах формы (через временное хранилище и структуру с датой и таблицей номенклатуры).
      – Установить реквизиты формы, отвечающие за вид цены.
      – Вызвать обновление формы и/или процедур инициализации колонок.

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

      Рекомендую посмотреть здесь:
      https://infostart.ru/1c/articles/1400620/ — пример программного заполнения формы документа “Установка цен номенклатуры” с правильной инициализацией.
      https://infostart.ru/1c/articles/389074/ — пример заполнения табличной части по документу установки цен.

      Если нужно, могу помочь с примером кода под вашу конкретную задачу.

      Оценка ответа: 9/10

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