Извиняюсь за задержку, были некоторые трудносит с выкладыванием материала и картинок. Но всё преодолено.
В свое время потребовалось каким-то образом выделить позиции бесплатных поставок. В заказах можно было их отделить от закупаемых через соответствующий индикатор (хотя очень не наглядно), а в контрактах для этого приходилось либо проваливаться в позицию подробно, либо ориентироваться на нулевую цену. В общем, все это как-то не наглядно, что приводило к ошибкам. Решили сделать отдельный тип позиции. На этом примере и рассмотрим как это делается.
• Через SE16N открываем содержимое таблицы T163. Нажимаем кнопку «Создать», в поле «Тип позиции» указываем латинскую A (или какую другую), в поле текст пишем «Бесплатная поставка», в поле «Тип позиции в документе закупки» ставим русскую Б (так мы её будем идентифицировать в ЗнП).
Теперь что касается остальных полей:
MATNO Индикатор: указание номера материала обязательно
Вводим '+'обязателен.
KNTZU Индикатор: требуется контировка
Вводим '–' нельзя.
BFKNZ Закупки: индикатор управления запасами
Оставляем пустым
WEPOS Индикатор поступления материала
Вводим 'X'
WEPOV Метка поступления материала обязательна
Вводим 'X'
WEUNB Поступление материала не оценено
Оставляем пустым
WEUNV Поступление материала обязательно и не оценивается
Оставляем пустым
REPOS Метка "Поступление счета"
Оставляем пустым
REPOV Метка: поступление счета по позиции обязательно
Оставляем пустым
STAFO Группа обновления для обновления статистических данных
Вводим SAP или то, что у вас настроено.

Отсутствие значений в полях REPOS и REPOV и определяет, что поставка будет бесплатной.
• Если необходимо, то вводим в таблице T163Y тексты к типу позиции на других языках.
• Далее необходимо разрешить этот тип позиции в заказах и контрактах. В SPRO > УМП > Закупки > Заказ на поставку > Настройка видов документов выделяем необходимый вид заказа и два раза щелкаем на папке «Допустимые типы позиций», выделяем стандартную позицию и нажимаем «Скопировать как…», вводим созданный нами тип Б. В открывшемся окошке нажимаем кнопку «Скопировать все» (легче удалить лишние, чем вводить вручную всё заново).

Тоже самое делаем для заявок и контрактов.
• Необходимо настроить выбор полей. В SPRO > УМП > Закупки > Заказ на поставку >Определение структуры экрана на уровне документа выделяем PT0F и нажимаем «Скопировать как…», указываем код выбора полей PTAF и название «Бесплатная позиция заказа».


Производим настройку, а именно «Тип контировки», «Инд. последнего счета-фактуры», «Контроль счетов по ПМ», «Управление ПМ/ПСч», «Индикатор ПМ/ПСч» делаем только для просмотра.
Тоже самое делаем для заявок и контракта.
Теперь при создании контракта с типом позиции Б, поле «Поступление счета» не заполняется:

Зато в списке позиций наглядно видно, какая позиция бесплатная, а какая нет:
… и в заказе:

Теперь об исключениях и минусах.
• Таким образом нельзя копировать типы позиций 3 «Обработка ДавальчМтр» и 9 «Услуги/работы». Т.е. скопировать можно, но они будут иметь свойства стандартной позиции. Отображение соответствующих полей по работам/услугам жестко привязано к типу 9 и спецификации к типу 3 в коде программы.
• Выпуская периодически ноты, программисты SAP-а допускают ошибки, сравнивая поле PSTYP (тип CHAR) с цифрой. Т.к. все стандартные типы позиций это от нуля до девяти, то соответственно для них такая проверка проходит нормально, а для нашего типа A вываливается в ДАМП.
В таком случае пишем сообщение в SAP и они эти ошибки исправляют, выпуская ноты. Вот например: 1072374, 1227768. Хотя порой от них приходиться слышать, что тип позиции не стандартный, в ответ просто показываем следующий скриншот:

ну и правила программирования никто не отменял.