Дополнительные реквизиты табличных частей [расширение] УТ 11



Расширение позволяет использовать дополнительные реквизиты для табличных частей.

Добавляем доп.реквизит как обычно, только в поле "Для разработчика" необходимо указать, что доп.реквизит является табличным (и для какой табличной части), пример: РТЧ_Товары_МояЦена

где:

РТЧ — Предопределенное значение указывающее на то, что это реквизит табличной части

Товары — Имя табличной части (как задано в конфигураторе)

МояЦена— Имя реквизита (произвольное значение)

 

Результат

 

Ограничения — доп.атрибут табличной части не может быть строкой неограниченной длины.

 

Требования: Платформа 8.3.12

8 Comments

  1. PowerBoy

    Как потом пользоваться данными, на пример в запросе?

    Reply ↓
  2. noprogrammer

    (2) Доп.реквизиты храняться в табличной части «ДополнительныеРеквизиты», для идентификации строки используется реквизит «ТекстоваяСтрока» (именно поэтому не получиться хранить строки неограниченной длины)- в ней храниться идентификатор строки, соответственно работа с доп.реквизитами идет как обычно, вся разница лишь в том, что необходимо будет соединить по идентификатору строки: Просто для примера

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

    Показать

    Reply ↓
  3. olik49

    Скажите, пожалуйста, разработка имеет ограничение по документам? Когда создаешь доп. реквизит в документе реализации все срабатывает нормально. А если создать реквизит в заказе клиента выводит ошибку: ОбщийМодуль.ДополнительныРеквизиты_Сервер.Модуль(221)}: Поле объекта не обнаружено (ИдентификаторСтроки) СтрокаТабличнойЧастиДопАтрибута=Результат.Значение.Найти(СтрокаТабличнойЧасти.ИдентификаторСтроки, «Ключ»); . При записи объекта данные не сохраняются.

    Reply ↓
  4. noprogrammer

    (4) Ограничение не по документам а по реквизиту «ИдентификаторСтроки» т.е. работает в тех документах в которых этот реквизит есть. Пробежался бегло по документам типовых конфигураций — так и не смог понять логику по которой этот реквизит добавляют в документы (примерно в 50% документах он есть)

    Reply ↓
  5. user1028119

    Чем это решение лучше расширения?

    Reply ↓
  6. noprogrammer

    (6) Учитывая, что «это решение» является расширением то правильнее будет сказать «чем это расширение лучше любого другого», ответ — ничем. Хотя… учитывая, что данное расширение использует встроенный механизм доп.реквизитов, значит, что по умолчанию (в дин.списках, отчетах) будут доступны отборы,группировки,оформления.

    Reply ↓
  7. ellavs

    Как бы вот так сделать, чтобы в зависимости от выбранного товара были свои доп.реквизиты (т.е. в каждой строке разные реквизиты). Нужно для другой цели (документ с таблицей показателей, а у каждого показателя свой набор реквизитов).

    Reply ↓
  8. noprogrammer

    (8) С реализацией проблем нет, есть проблемы с восприятием такого отображения.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *