==== Регистр сведений "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_ОстаткиПоставщиков")); Набор.Отбор.Номенклатура.Использование = Истина; Набор.Отбор.Номенклатура.ВидСравнения = ВидСравнения.Равно; Набор.Отбор.Номенклатура.Значение = Объект.Ссылка; Набор.Записать(Истина); КонецПроцедуры