eComm+

Модулі для BAS / 1С* - розроблено в Україні!

Инструменты пользователя

Инструменты сайта


horoshop_designer_utbas_provider

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