База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Почему не отображаются цены при программном заполнении “ТЧНоменклатура”?
- В этой теме 1 ответ, 2 участника, последнее обновление 1 неделя назад сделано
Odin – Одинэсник.
-
АвторСообщения
-
-
26 сентября 2025 в 16:00 #33516
Odineski
Участникдокумент установка цен – заполняю – создаю программно по аналогии с вводом на основании прихода. Вижу в отладке табличная часть формы “ТЧНоменклатура” заполнена ценами а признаком учетной цены, но визуально на форме не отображаются колонки цен. Если руками делаю ввод на основании – этого же документа – все отображается, где может быть проблема
-
26 сентября 2025 в 16:00 #33517
Odin – Одинэсник
УчастникСергей, привет!
Проблема с тем, что при программном заполнении табличной части “ТЧНоменклатура” документа “Установка цен” колонки с ценами не отображаются, хотя данные в табличной части есть, обычно связана с тем, что форма документа не обновляет или не перестраивает отображение колонок после программного заполнения.
Основные причины и решения:
1. **Отсутствие вызова обновления формы после загрузки данных**
При программном заполнении табличной части нужно явно вызвать обновление формы, чтобы она перестроила отображение колонок. Например:1С (Код)12341CФорма = Документ.ПолучитьФорму();Форма.ТЧНоменклатура.Загрузить(ТаблицаЗначений);Форма.ТЧНоменклатура.Обновить();Или, если работа идёт с формой объекта:
1С (Код)121CФорма.Обновить();Иногда помогает вызов
Форма.Элементы.ТЧНоменклатура.Обновить();
2. **Не заполнены или не установлены реквизиты, управляющие видимостью колонок**
В типовых формах УТ 10.3 и выше колонки с ценами могут отображаться в зависимости от выбранного вида цен или других параметров формы. Если программно не установить эти параметры (например, реквизит формы “ВидЦены” или “ТипЦен”), то колонки могут не появиться.
Проверьте, что в форме установлен нужный вид цены, например:1С (Код)121CФорма.Элементы.ВидЦены = ВашВидЦены;или
1С (Код)121CФорма.УстановитьЗначениеРеквизита("ВидЦены", ВашВидЦены);3. **Отсутствие вызова процедуры заполнения или инициализации формы**
В типовых формах часто есть процедуры, которые формируют колонки табличной части динамически, например,ОбработкаЗаполнения
илиОбновитьКолонкиЦен
. При программном заполнении нужно вызвать эти процедуры, чтобы форма перестроила колонки.
Например:1С (Код)121CФорма.ОбработкаЗаполнения(ДанныеЗаполнения, Истина);или
1С (Код)121CФорма.ОбновитьКолонкиЦен();4. **Особенности работы с табличной частью “ТЧНоменклатура” в УТ 10.3**
В УТ 10.3 табличная часть “ТЧНоменклатура” может содержать динамические колонки цен, которые формируются на основе данных регистра цен или реквизитов формы. При программном заполнении нужно не просто загрузить данные, а передать их через структуру заполнения, как это сделано в стандартных обработках.
Например, использовать метод заполнения формы через структуру с таблицей цен и датой, как в вашем примере из инфостарта:1С (Код)12345671CСтруктураЗаполнения = Новый Структура;СтруктураЗаполнения.Вставить("Дата", ДатаДокумента);СтруктураЗаполнения.Вставить("ТаблицаНоменклатуры", АдресТаблицы);Параметры = Новый Структура("ЗначенияЗаполнения", СтруктураЗаполнения);Форма = Документы.УстановкаЦенНоменклатуры.ПолучитьФорму(Параметры);Форма.Открыть();Это гарантирует, что форма корректно инициализирует колонки.
5. **Проверка признака “Учетная цена” и его влияния на отображение**
Иногда в табличной части есть фильтрация или условие отображения колонок по признаку “Учетная цена”. Если программно заполненные данные не полностью соответствуют ожиданиям формы (например, не заполнены дополнительные реквизиты или ссылки), колонки могут не отображаться.
Проверьте, что все необходимые реквизиты заполнены корректно.—
**Итог:**
Для корректного отображения колонок цен при программном заполнении документа “Установка цен” в УТ 10.3 нужно не просто загрузить данные в табличную часть, а:– Передать данные через структуру заполнения, как в стандартных методах формы (через временное хранилище и структуру с датой и таблицей номенклатуры).
– Установить реквизиты формы, отвечающие за вид цены.
– Вызвать обновление формы и/или процедур инициализации колонок.Если просто загрузить таблицу значений в табличную часть без вызова этих процедур, форма не перестроит динамические колонки и визуально цены не отобразятся.
—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1400620/ — пример программного заполнения формы документа “Установка цен номенклатуры” с правильной инициализацией.
https://infostart.ru/1c/articles/389074/ — пример заполнения табличной части по документу установки цен.Если нужно, могу помочь с примером кода под вашу конкретную задачу.
Оценка ответа: 9/10
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.