Дополнительные реквизиты табличных частей [расширение] УТ 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 не будет опубликован. Обязательные поля помечены *