УТ 11. Как добавить колонку в список номенклатуры

Иногда хочется видеть в списке номенклатуры дополнительные колонки, например цены, по указанному типу цен, остатки.

Авторские права на предоставленный материал принадлежат автору сайта http://you1c.ru/

Рассмотрим как это можно в конфигурации Управление Торговлей, редакция 11

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

Список номенклатуры формируется динамически

Если открыть запрос, то увидим:

ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК Ссылка,
СпрНоменклатура.Код КАК Код,
СпрНоменклатура.Наименование КАК Наименование,
СпрНоменклатура.Артикул КАК Артикул,
СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
СпрНоменклатура.Родитель,
ВЫБОР
КОГДА СпрНоменклатура.ЕстьТоварыДругогоКачества
ТОГДА 4 + ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ + ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА 0
ИНАЧЕ 2
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА СпрНоменклатура.ПометкаУдаления
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ
+ ВЫБОР
КОГДА СпрНоменклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать)
ТОГДА 0
ИНАЧЕ 2
КОНЕЦ

КОНЕЦ КАК ИндексКартинки
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ГДЕ
НЕ СпрНоменклатура.ЭтоГруппа
{ГДЕ
(СпрНоменклатура.Ссылка В
(ВЫБРАТЬ
Сегменты.Номенклатура
ИЗ
РегистрСведений.НоменклатураСегмента КАК Сегменты
ГДЕ
Сегменты.Сегмент = &СегментНоменклатуры))}

Из запроса видно, что выборка идет из справочника «Номенклатура».

Для того, чтобы добавить новые колонки в список номенклатуры нам нужно изменить запрос.

Например, нам необходимо добавить колонки «Остаток», «Цена1», «Цена2», где цены — соответствуют каким-то типам цен.

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

ВЫБРАТЬ
СпрНоменклатура.Ссылка КАК ссылка,
СпрНоменклатура.Код КАК Код,
СпрНоменклатура.Наименование КАК Наименование,
СпрНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
СпрНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
СпрНоменклатура.Артикул КАК Артикул,
СпрНоменклатура.СтавкаНДС КАК СтавкаНДС,
ВложенныйЗапрос.Цена КАК Цена1,
ВложенныйЗапрос1.Цена КАК Цена2,
ВложенныйЗапрос2.КоличествоОстаток
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
ЦеныНоменклатурыСрезПоследних.ВидЦены = &Цена1) КАК ВложенныйЗапрос
ПО СпрНоменклатура.Ссылка = ВложенныйЗапрос.Номенклатура
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
ЦеныНоменклатурыСрезПоследних.ВидЦены = &Цена2) КАК ВложенныйЗапрос1
ПО СпрНоменклатура.Ссылка = ВложенныйЗапрос1.Номенклатура
ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура,
ТоварыОрганизацийОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.Остатки КАК ТоварыОрганизацийОстатки) КАК ВложенныйЗапрос2
ПО СпрНоменклатура.Ссылка = ВложенныйЗапрос2.Номенклатура
ГДЕ
СпрНоменклатура.ЭтоГруппа = ЛОЖЬ
{ГДЕ
(СпрНоменклатура.Ссылка В
(ВЫБРАТЬ
Сегменты.Номенклатура
ИЗ
РегистрСведений.НоменклатураСегмента КАК Сегменты
ГДЕ
Сегменты.Сегмент = &СегментНоменклатуры)) КАК Поле2}

Далее, добавляем дополнительные реквизиты «Цена1» и «Цена2», выводим их на форму, чтобы пользователь мог в ручную указывать какие цены необходимо видеть.

Типы цен в списке номенклатуры

И в модуль, также, необходимо вставить установку параметров для пересчета цен при изменении типов

&НаСервере
Процедура УстановитьОтборПоЦенаНаСервере()
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена1), Цена1, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, «Цена1», ЗначениеОтбора, ЗначениеЗаполнено(Цена1));
ЗначениеОтбора = ?(ЗначениеЗаполнено(Цена2), Цена2, Неопределено);
ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Список, «Цена2», ЗначениеОтбора, ЗначениеЗаполнено(Цена2));
КонецПроцедуры

Добавьте статью в социальные сети или закладки:

Т 11 / 1с 8.2Управляемые формы

http://you1c.ru/1c82/ut11/ut-11-kak-dobavit-kolonku-v-spisok-nomenklatury

Вам также может понравиться

About the Author: petr