Добрый день, коллеги. Хочу поделиться некоторым опытом. Не обессудьте, если статья покажется "детской", но при поиске своего вопроса "... можно ли в конструкторе схемы компоновки справочника Сегменты номенклатуры использовать другие справочники и регистры" не нашел. Ответ: можно! Когда начал разбираться, то увидел, что есть макеты не только "основная схема". Немножко предыстории: у нас в организации появилась новая торговая точка (1С:Розница). Туда переместили товар (много). Соответственно на этом магазине в регистре Себестоимость нет записей по этому перемещению товаров - так настроено! Соответственно с помощью документа Расчеты и установки себестоимости надо было создать эти записи. Один из методов заполнения ТЧ - с помощью Сегмента номенклатуры. Так родилась мысль создать Сегмент номенклатуры с ненулевыми остатками на этом магазине с "нулевыми" значениями себестоимости (отсутствие записей в соответствующем регистр). Я понимаю, что можно было сделать обработку для программного создания такого же документа! Но захотелось это сделать на пользовательском уровне!
Создал новую запись справочника Сегменты номенклатуры. Зашел в Настройки и редактирование схемы компоновки и модернизировал запрос:
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад.Ссылка КАК СкладСсылка,
ВложенныйЗапрос.ЭлементСписка КАК ЭлементСписка,
ВложенныйЗапрос.ХарактеристикаЭлемента КАК ХарактеристикаЭлемента
ПОМЕСТИТЬ Врем_1
ИЗ
(ВЫБРАТЬ
Номенклатура.Ссылка КАК ЭлементСписка,
ХарактеристикиНоменклатуры.Ссылка КАК ХарактеристикаЭлемента
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
ПО (ХарактеристикиНоменклатуры.Владелец = Номенклатура.Ссылка)
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
Номенклатура.Ссылка,
ХарактеристикиНоменклатуры.Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
ПО (ХарактеристикиНоменклатуры.Владелец = Номенклатура.ВидНоменклатуры)) КАК ВложенныйЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ПО ВложенныйЗапрос.ЭлементСписка.Ссылка = ТоварыНаСкладахОстатки.Номенклатура.Ссылка
ГДЕ
ВЫБОР
КОГДА ВложенныйЗапрос.ЭлементСписка.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.НеИспользовать)
ТОГДА ИСТИНА
КОНЕЦ
И ТоварыНаСкладахОстатки.КоличествоОстаток > 0
И ТоварыНаСкладахОстатки.Склад = &Склад
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Врем_1.ЭлементСписка КАК ЭлементСписка,
Врем_1.ХарактеристикаЭлемента КАК ХарактеристикаЭлемента
ИЗ
Врем_1 КАК Врем_1
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СебестоимостьНоменклатуры.СрезПоследних КАК СебестоимостьНоменклатурыСрезПоследних
ПО Врем_1.СкладСсылка.Ссылка = СебестоимостьНоменклатурыСрезПоследних.Магазин.СкладПродажи.Ссылка
И Врем_1.ЭлементСписка.Ссылка = СебестоимостьНоменклатурыСрезПоследних.Номенклатура.Ссылка
ГДЕ
СебестоимостьНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
Плюс в отборах добавил выбор нужного мне склада.
Пользователю в документ загрузился весь список - не надо было заполнять вручную.
Применял на Рознице 2.2 версии платформы 8.3 (8.3.15.1656), но думаю, работать будет везде, где есть Сегменты номенклатуры и документы, в которые надо загрузить какой-то список.
Возникла еще одна мысль. Кто в теме, знает что Сегменты используются при расчете скидок. Такой "модернизацией" Сегментов, я думаю, можно упростить/усложнить расчет скидок - так как в Сегменте уже будет какой-то список, отвечающий каким-то наперед заданным отборам: по остаткам, по цене, по объему продаж, по дате прихода, по срокам реализации и т.п.