eComm+

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

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

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


horoshop_designer_utbas_provider

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
horoshop_designer_utbas_provider [2020/09/21 17:15]
webmaster
horoshop_designer_utbas_provider [2023/01/05 18:59] (текущий)
webmaster [Форма элемента справочника "Номенклатура"]
Строка 1: Строка 1:
-Добавляем непериодический независимый регистр сведений "ing_ОстаткиПоставщиков"+==== Регистр сведений "eComm_ОстаткиПоставщиков" ==== 
 +Добавляем непериодический независимый регистр сведений "eComm_ОстаткиПоставщиков"
 Измерения: Номенклатура, Характеристика Измерения: Номенклатура, Характеристика
 Ресурс: Наличие (Булево) Ресурс: Наличие (Булево)
  
-В модуле +==== Общий модуль "eCommСерверДоработки" ==== 
 +=== Добавим метод "ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки" ===
  
 <code> <code>
Строка 11: Строка 13:
  | КОГДА ВрТабТаблицаТоваров.КоличествоОстаток > 0  | КОГДА ВрТабТаблицаТоваров.КоличествоОстаток > 0
  | ТОГДА ВрТабТаблицаТоваров.КоличествоОстаток  | ТОГДА ВрТабТаблицаТоваров.КоличествоОстаток
- | КОГДА ЕСТЬNULL(ing_ОстаткиПоставщиков.Наличие, ЛОЖЬ) = ИСТИНА+ | КОГДА ЕСТЬNULL(eComm_ОстаткиПоставщиков.Наличие, ЛОЖЬ) = ИСТИНА
  | ТОГДА 1  | ТОГДА 1
  | ИНАЧЕ 0  | ИНАЧЕ 0
  | КОНЕЦ ");  | КОНЕЦ ");
- ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДОПОЛНИТЕЛЬНЫЕ СОЕДИНЕНИЯ", " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ing_ОстаткиПоставщиков КАК ing_ОстаткиПоставщиков + ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "//ДОПОЛНИТЕЛЬНЫЕ СОЕДИНЕНИЯ", " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.eComm_ОстаткиПоставщиков КАК eComm_ОстаткиПоставщиков 
- | ПО ВрТабТаблицаТоваров.Номенклатура = ing_ОстаткиПоставщиков.Номенклатура + | ПО ВрТабТаблицаТоваров.Номенклатура = eComm_ОстаткиПоставщиков.Номенклатура 
- | И ВрТабТаблицаТоваров.ХарактеристикаНоменклатуры = ing_ОстаткиПоставщиков.Характеристика");+ | И ВрТабТаблицаТоваров.ХарактеристикаНоменклатуры = eComm_ОстаткиПоставщиков.Характеристика");
   
  
 КонецПроцедуры КонецПроцедуры
 </code> </code>
 +
 +=== Добавим метод "ВернутьНаличиеТоваровПоставщика" ===
 +<code>
 +Функция ВернутьНаличиеТоваровПоставщика(Номенклатура) Экспорт
 +
 + Запрос = Новый Запрос;
 + Запрос.Текст = 
 + "ВЫБРАТЬ
 + | ВрТабНоменклатура.Ссылка КАК Номенклатура,
 + | ЕСТЬNULL(СпрХарактеристикиНоменклатуры.Ссылка, ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка)) КАК Характеристика
 + |ПОМЕСТИТЬ ВрТабНоменклатураХарактеристии
 + |ИЗ
 + | Справочник.Номенклатура КАК ВрТабНоменклатура
 + | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК СпрХарактеристикиНоменклатуры
 + | ПО (ВрТабНоменклатура.Ссылка = СпрХарактеристикиНоменклатуры.Владелец
 + | ИЛИ ВрТабНоменклатура.ВидНоменклатуры = СпрХарактеристикиНоменклатуры.Владелец)
 + | И (ВрТабНоменклатура.ВидНоменклатуры.ИспользоватьХарактеристики)
 + | И (СпрХарактеристикиНоменклатуры.ПометкаУдаления = ЛОЖЬ)
 + |ГДЕ
 + | ВрТабНоменклатура.Ссылка = &Ссылка
 + |;
 + |
 + |////////////////////////////////////////////////////////////////////////////////
 + |ВЫБРАТЬ
 + | ВрТабНоменклатураХарактеристии.Номенклатура,
 + | ВрТабНоменклатураХарактеристии.Характеристика,
 + | eComm_ОстаткиПоставщиков.Наличие
 + |ИЗ
 + | ВрТабНоменклатураХарактеристии КАК ВрТабНоменклатураХарактеристии
 + | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.eComm_ОстаткиПоставщиков КАК eComm_ОстаткиПоставщиков
 + | ПО ВрТабНоменклатураХарактеристии.Номенклатура = eComm_ОстаткиПоставщиков.Номенклатура
 + | И ВрТабНоменклатураХарактеристии.Характеристика = eComm_ОстаткиПоставщиков.Характеристика";
 +
 + Запрос.УстановитьПараметр("Ссылка", Номенклатура);
 +
 + Возврат Запрос.Выполнить().Выгрузить();
 +
 +КонецФункции
 +</code>
 +
 +
 +==== Общий модуль "eCommСерверПереопределяемый" ====
 +=== Переопределим метод "ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки" ===
 +
 +
 +<code>
 +Процедура ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки(СтруктураНастроек, ТекстЗапроса) Экспорт
 +
 + eCommСерверДоработки.ПередУстановкойТекстаЗапросаИнициализацииДанныхВыгрузки(СтруктураНастроек, ТекстЗапроса);
 +
 +КонецПроцедуры
 +</code>
 +
 +
 +==== Форма элемента справочника "Номенклатура" ====
 +Добавим реквизиты и элементы на форму: https://prnt.sc/ul6nzz
 +
 +
 +В конце метода "ПриСозданииЧтенииНаСервере" добавим:
 +<code>
 + //++
 + eComm_ИспользоватьХарактеристики = НЕ Объект.ИспользованиеХарактеристик = Перечисления.ВариантыИспользованияХарактеристикНоменклатуры.НеИспользовать;
 +
 + Элементы.eComm_ОстаткиНоменклатура.Видимость = НЕ eComm_ИспользоватьХарактеристики;
 + Элементы.eComm_ОстаткиХарактеристика.Видимость = eComm_ИспользоватьХарактеристики;
 +
 + Набор = РегистрыСведений.eComm_ОстаткиПоставщиков.СоздатьНаборЗаписей();
 + Набор.Загрузить(eCommСерверДоработки.ВернутьНаличиеТоваровПоставщика(Объект.Ссылка));
 + ЗначениеВДанныеФормы(Набор,eComm_ОстаткиПоставщиков);
 + //--
 +</code>
 +
 +Метод "ИменаСворачиваемыхГрупп" приведем к виду:
 +<code>
 + ИменаСворачиваемыхГрупп.Добавить("Цены");
 + ИменаСворачиваемыхГрупп.Добавить("Шаблоны");
 +
 + ИменаСворачиваемыхГрупп.Добавить("eComm_ОстаткиПоставщиков");       //++ eComm
 +
 + Возврат ИменаСворачиваемыхГрупп;
 +</code>
 +
 +Добавим метод "ПриЗаписиНаСервере" и привяжем его к методам формы:
 +
 +<code>
 +&НаСервере
 +Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) //++
 + Набор = ДанныеФормыВЗначение(eComm_ОстаткиПоставщиков, Тип("РегистрСведенийНаборЗаписей.eComm_ОстаткиПоставщиков"));
 + Набор.Отбор.Номенклатура.Использование = Истина;
 + Набор.Отбор.Номенклатура.ВидСравнения = ВидСравнения.Равно;
 + Набор.Отбор.Номенклатура.Значение = Объект.Ссылка;
 +    Набор.Записать(Истина);
 +КонецПроцедуры
 +</code>
 +
 +
  
horoshop_designer_utbas_provider.1600697744.txt.gz · Последнее изменение: 2020/09/21 17:15 — webmaster