==== Регистр сведений "eComm_ОстаткиПоставщиков" ====
Добавляем непериодический независимый регистр сведений "eComm_ОстаткиПоставщиков"
Измерения: Номенклатура, Характеристика
Ресурс: Наличие (Булево)
==== Общий модуль "eCommСерверДоработки" ====
=== Добавим метод "ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки" ===
Процедура ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки(СтруктураНастроек, ТекстЗапроса) Экспорт
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВрТабТаблицаТоваров.КоличествоОстаток ", "	ВЫБОР
																			|		КОГДА ВрТабТаблицаТоваров.КоличествоОстаток > 0
																			|			ТОГДА ВрТабТаблицаТоваров.КоличествоОстаток
																			|		КОГДА ЕСТЬNULL(eComm_ОстаткиПоставщиков.Наличие, ЛОЖЬ) = ИСТИНА
																			|			ТОГДА 1
																			|		ИНАЧЕ 0
																			|	КОНЕЦ ");
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДОПОЛНИТЕЛЬНЫЕ СОЕДИНЕНИЯ", "	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.eComm_ОстаткиПоставщиков КАК eComm_ОстаткиПоставщиков
																			|	ПО ВрТабТаблицаТоваров.Номенклатура = eComm_ОстаткиПоставщиков.Номенклатура
																			|		И ВрТабТаблицаТоваров.ХарактеристикаНоменклатуры = eComm_ОстаткиПоставщиков.Характеристика");
	
КонецПроцедуры
=== Добавим метод "ВернутьНаличиеТоваровПоставщика" ===
Функция ВернутьНаличиеТоваровПоставщика(Номенклатура) Экспорт
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВрТабНоменклатура.Ссылка КАК Номенклатура,
		|	ЕСТЬNULL(СпрХарактеристикиНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК Характеристика
		|ПОМЕСТИТЬ ВрТабНоменклатураХарактеристии
		|ИЗ
		|	Справочник.Номенклатура КАК ВрТабНоменклатура
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристикиНоменклатуры
		|		ПО (ВрТабНоменклатура.Ссылка = СпрХарактеристикиНоменклатуры.Владелец
		|				ИЛИ ВрТабНоменклатура.ВидНоменклатуры = СпрХарактеристикиНоменклатуры.Владелец)
		|			И (ВрТабНоменклатура.ВидНоменклатуры.ИспользоватьХарактеристики)
		|			И (СпрХарактеристикиНоменклатуры.ПометкаУдаления = ЛОЖЬ)
		|ГДЕ
		|	ВрТабНоменклатура.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ВрТабНоменклатураХарактеристии.Номенклатура,
		|	ВрТабНоменклатураХарактеристии.Характеристика,
		|	eComm_ОстаткиПоставщиков.Наличие
		|ИЗ
		|	ВрТабНоменклатураХарактеристии КАК ВрТабНоменклатураХарактеристии
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.eComm_ОстаткиПоставщиков КАК eComm_ОстаткиПоставщиков
		|		ПО ВрТабНоменклатураХарактеристии.Номенклатура = eComm_ОстаткиПоставщиков.Номенклатура
		|			И ВрТабНоменклатураХарактеристии.Характеристика = eComm_ОстаткиПоставщиков.Характеристика";
	
	Запрос.УстановитьПараметр("Ссылка", Номенклатура);
	
	Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
==== Общий модуль "eCommСерверПереопределяемый" ====
=== Переопределим метод "ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки" ===
Процедура ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки(СтруктураНастроек, ТекстЗапроса) Экспорт
	eCommСерверДоработки.ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки(СтруктураНастроек, ТекстЗапроса);
КонецПроцедуры
==== Форма элемента справочника "Номенклатура" ====
Добавим реквизиты и элементы на форму: https://prnt.sc/ul6nzz
В конце метода "ПриСозданииЧтенииНаСервере" добавим:
	
	//++
	eComm_ИспользоватьХарактеристики = НЕ Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать;
	
	Элементы.eComm_ОстаткиНоменклатура.Видимость = НЕ eComm_ИспользоватьХарактеристики;
	Элементы.eComm_ОстаткиХарактеристика.Видимость = eComm_ИспользоватьХарактеристики;
		
	Набор = РегистрыСведений.eComm_ОстаткиПоставщиков.СоздатьНаборЗаписей();
	Набор.Загрузить(eCommСерверДоработки.ВернутьНаличиеТоваровПоставщика(Объект.Ссылка));
	ЗначениеВДанныеФормы(Набор,eComm_ОстаткиПоставщиков);
	//--
Метод "ИменаСворачиваемыхГрупп" приведем к виду:
	ИменаСворачиваемыхГрупп.Добавить("Цены");
	ИменаСворачиваемыхГрупп.Добавить("Шаблоны");
	
	ИменаСворачиваемыхГрупп.Добавить("eComm_ОстаткиПоставщиков");       //++ eComm
	Возврат ИменаСворачиваемыхГрупп;
Добавим метод "ПриЗаписиНаСервере" и привяжем его к методам формы:
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) //++
	Набор = ДанныеФормыВЗначение(eComm_ОстаткиПоставщиков, Тип("РегистрСведенийНаборЗаписей.eComm_ОстаткиПоставщиков"));
	Набор.Отбор.Номенклатура.Использование	= Истина;
	Набор.Отбор.Номенклатура.ВидСравнения	= ВидСравнения.Равно;
	Набор.Отбор.Номенклатура.Значение		= Объект.Ссылка;
    Набор.Записать(Истина);
КонецПроцедуры