eComm+

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

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

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


horoshop_designer_utp_provider

Регистр сведений "eComm_ОстаткиПоставщиков"

Добавляем непериодический независимый регистр сведений «eComm_ОстаткиПоставщиков» Измерения: Номенклатура, Характеристика Ресурс: Наличие (Булево)

Общий модуль "eCommСерверДоработки"

Добавим метод "ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки"

Процедура ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки(СтруктураНастроек, ТекстЗапроса) Экспорт
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ВрТабТаблицаТоваров.КоличествоОстаток ", "	ВЫБОР
																			|		КОГДА ВрТабТаблицаТоваров.КоличествоОстаток > 0
																			|			ТОГДА ВрТабТаблицаТоваров.КоличествоОстаток
																			|		КОГДА ЕСТЬNULL(eComm_ОстаткиПоставщиков.Наличие, ЛОЖЬ) = ИСТИНА
																			|			ТОГДА 1
																			|		ИНАЧЕ 0
																			|	КОНЕЦ ");
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДОПОЛНИТЕЛЬНЫЕ СОЕДИНЕНИЯ", "	ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.eComm_ОстаткиПоставщиков КАК eComm_ОстаткиПоставщиков
																			|	ПО ВрТабТаблицаТоваров.Номенклатура = eComm_ОстаткиПоставщиков.Номенклатура
																			|		И ВрТабТаблицаТоваров.ХарактеристикаНоменклатуры = eComm_ОстаткиПоставщиков.Характеристика");
	

КонецПроцедуры

Добавим метод "ВернутьНаличиеТоваровПоставщика"

Функция ВернутьНаличиеТоваровПоставщика(Номенклатура) Экспорт

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВрТабНоменклатура.Ссылка КАК Номенклатура,
		|	ЕСТЬNULL(СпрХарактеристикиНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК Характеристика
		|ПОМЕСТИТЬ ВрТабНоменклатураХарактеристии
		|ИЗ
		|	Справочник.Номенклатура КАК ВрТабНоменклатура
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристикиНоменклатуры
		|		ПО ВрТабНоменклатура.Ссылка = СпрХарактеристикиНоменклатуры.Владелец
		|			И (ВрТабНоменклатура.ВестиУчетПоХарактеристикам)
		|			И (СпрХарактеристикиНоменклатуры.ПометкаУдаления = ЛОЖЬ)
		|ГДЕ
		|	ВрТабНоменклатура.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ВрТабНоменклатураХарактеристии.Номенклатура КАК Номенклатура,
		|	ВрТабНоменклатураХарактеристии.Характеристика КАК Характеристика,
		|	eComm_ОстаткиПоставщиков.Наличие КАК Наличие
		|ИЗ
		|	ВрТабНоменклатураХарактеристии КАК ВрТабНоменклатураХарактеристии
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.eComm_ОстаткиПоставщиков КАК eComm_ОстаткиПоставщиков
		|		ПО ВрТабНоменклатураХарактеристии.Номенклатура = eComm_ОстаткиПоставщиков.Номенклатура
		|			И ВрТабНоменклатураХарактеристии.Характеристика = eComm_ОстаткиПоставщиков.Характеристика";
	
	Запрос.УстановитьПараметр("Ссылка", Номенклатура);
	
	Возврат Запрос.Выполнить().Выгрузить();

КонецФункции

Добавим метод "ПрочитатьОстаткиПоставщиков"

Процедура ПрочитатьОстаткиПоставщиков(Форма) Экспорт

	НаборЗаписей = Форма.eComm_ОстаткиПоставщиков;
	НаборЗаписей.Очистить();
	
	НаборЗаписей.Отбор.Номенклатура.Значение      = Форма.Ссылка;
	НаборЗаписей.Отбор.Номенклатура.Использование = Истина;
	
	НаборЗаписей.Загрузить(ВернутьНаличиеТоваровПоставщика(Форма.Ссылка));
	
	eComm_ИспользоватьХарактеристики = Форма.ВестиУчетПоХарактеристикам;
	
	Форма.ЭлементыФормы.eComm_ОстаткиПоставщиков.Колонки.Номенклатура.Видимость = НЕ eComm_ИспользоватьХарактеристики;
	Форма.ЭлементыФормы.eComm_ОстаткиПоставщиков.Колонки.Характеристика.Видимость = eComm_ИспользоватьХарактеристики;

КонецПроцедуры

Добавим метод "ЗаписатьОстаткиПоставщиков"

Процедура ЗаписатьОстаткиПоставщиков(Форма) Экспорт

	НаборЗаписей = Форма.eComm_ОстаткиПоставщиков;
	
	НаборЗаписей.Отбор.Номенклатура.Значение      = Форма.Ссылка;
	НаборЗаписей.Отбор.Номенклатура.Использование = Истина;
	
	НаборЗаписей.Записать(Истина);
	
	ПрочитатьОстаткиПоставщиков(Форма);

КонецПроцедуры

Общий модуль "eCommСерверПереопределяемый"

Переопределим метод "ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки"

Процедура ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки(СтруктураНастроек, ТекстЗапроса) Экспорт

	eCommСерверДоработки.ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки(СтруктураНастроек, ТекстЗапроса);

КонецПроцедуры

Форма элемента справочника "Номенклатура"

Добавим реквизиты и элементы на форму: Добавим вкладку «ОстаткиПоставщиков». На вкладку «ОстаткиПоставщиков» добавим табличное поле «eComm_ОстаткиПоставщиков»

Имя колонки Тип ТолькоПросмотр
Номенклатура СправочникСсылка.Номенклатура Истина
Характеристика СправочникСсылка.ХарактеристикиНоменклатуры Истина
Наличие Булево Ложь

В конце метода «ПередОткрытием» добавим:

	
	eCommСерверДоработки.ПрочитатьОстаткиПоставщиков(ЭтаФорма);		//++ eComm+

Метод «ПриЗаписи» приведем к виду:

	// Обработка записи свойств и категорий.
	Если Не Отказ Тогда
		ОбработкаОбъектЗначенияСвойств.ОбъектОтбораЗначений = Ссылка;
		Отказ = Не ОбработкаОбъектЗначенияСвойств.ЗаписатьЗначенияСвойств();

		ОбработкаОбъектКатегорииОбъекта.ОбъектОтбораКатегорий = Ссылка;
		Отказ = Не ОбработкаОбъектКатегорииОбъекта.ЗаписатьКатегорииОбъекта();
		
		eCommСерверДоработки.ЗаписатьОстаткиПоставщиков(ЭтаФорма);   //++ eComm
		
	КонецЕсли;
horoshop_designer_utp_provider.txt · Последнее изменение: 2024/11/25 21:22 — webmaster