Это старая версия документа!
Властивість конфігурації “Использовать управляемые формы в обычном приложении” Прапорець “Использовать управляемые формы в обычном приложении” повинен бути увімкнений
В момент необходимо проигнорировать зависимости и нажать кнопку «Продолжить»
| Имя реквизита | Синоним | Тип |
|---|---|---|
| eComm_ИсточникЗаказа | Источник заказа | СправочникСсылка.eComm_УчетныеЗаписи |
| eComm_СостояниеЗаказа | Состояние заказа | СправочникСсылка.eComm_СостоянияЗаказовПокупателей |
Не будем забывать о представлении синонима на разных языках:
Добавляем на форму элементы с помощью кода в конце процедуры модуля формы “ПередОткрытием”:
//++ ingenum.com.ua / Торговые площадки eCommСервер.ЗаказПокупателя_ФормаДокумента_ПередОткрытием(ЭтаФорма, Отказ, СтандартнаяОбработка); //-- ingenum
Добавление метода “СостояниеНачалоВыбора”
//++ ingenum.com.ua / Торговые площадки
Процедура СостояниеНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьФорму("Справочник.eComm_СостоянияЗаказовПокупателей.ФормаВыбора", Новый Структура("УчетнаяЗапись, СостояниеЗаказаПокупателя", ДокументОбъект.eComm_ИсточникЗаказа, ДокументОбъект.eComm_СостояниеЗаказа), Элемент);
КонецПроцедуры
//-- ingenum
Добавим колонку «СтатусОплаты» на форму списка документов «Заказы покупателей»
| Имя колонки | Элемент управления | ТекстШапки | ТолькоПросмотр |
|---|---|---|---|
| СтатусОплаты | Поле ввода | Статус оплаты | Истина |
Добавим обработчик «ПриПолученииДанных» для элемента «Список» формы списка «Заказы покупателей»
Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
ТаблицаДокументов = Новый ТаблицаЗначений;
ТаблицаДокументов.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.ЗаказПокупателя"));
Для каждого Строка из ОформленияСтрок цикл
СтрокаТаблицы = ТаблицаДокументов.Добавить();
СтрокаТаблицы.Документ = Строка.ДанныеСтроки.Ссылка;
КонецЦикла;
МенеджерВременныхТаблиц = новый МенеджерВременныхТаблиц();
//Запрос для создания временной таблицы
Запрос = Новый Запрос();
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ
| Таб.Документ КАК Документ
| Поместить ВременнаяТаблицаДокументов
|ИЗ &ТаблицаСсылок КАК Таб";
Запрос.УстановитьПараметр("ТаблицаСсылок",ТаблицаДокументов);
Запрос.Выполнить();
//Запрос для получения данных из временных таблиц
Запрос = Новый Запрос();
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ВременнаяТаблицаДокументов.Документ КАК Документ,
| ЗначенияСвойствОбъектов.Значение КАК СтатусОплаты
|ИЗ
| ВременнаяТаблицаДокументов КАК ВременнаяТаблицаДокументов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ПО (ЗначенияСвойствОбъектов.Объект = ВременнаяТаблицаДокументов.Документ)";
ТаблицаРезультат = Запрос.Выполнить().Выгрузить();
ТаблицаРезультат.Индексы.Добавить("Документ");
Для каждого Строка из ОформленияСтрок цикл
текСсылка = Строка.ДанныеСтроки.Ссылка;
СтрокаТаблицыРезультат = ТаблицаРезультат.Найти(текСсылка,"Документ");
Если СтрокаТаблицыРезультат <> Неопределено Тогда
Если ЗначениеЗаполнено(СтрокаТаблицыРезультат.СтатусОплаты) Тогда
Строка.Ячейки.СтатусОплаты.Значение = СтрокаТаблицыРезультат.СтатусОплаты;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Добавим на Панель страницу «eComm» и табличной поле «ИнтернетТовары» (тип: «ДеревоЗначений», Начальное отображение дерева: «Раскрывать все уровни»)
Колонки табличного поля должны состоять:
| Имя колонки | Текст шапки | Тип | Отображать иерархию |
|---|---|---|---|
| Владелец | Учетная запись | СправочникСсылка.eComm_УчетныеЗаписи | Истина |
| ХарактеристикаНоменклатуры | Характеристика номенклатуры | СправочникСсылка.ХарактеристикиНоменклатуры | Ложь |
| ИнтернетТовар | Интернет-товар | СправочникСсылка.eComm_ИнтернетТовары | Ложь |
| Код | Коды | Строка(11) | Ложь |
| Категория | Категория | СправочникСсылка.eComm_КатегорииТоваров | Ложь |
| Отключить | Отключено | Булево | Ложь |
В конце обработчика событий формы «ПередОткрытием» размещаем вызов метода:
eCommСервер.ПрочитатьИнтернетТовары(ЭтаФорма); //++ eComm+
Разместим в конце списка методов модуля формы метод «ИнтернетТоварыВыбор» и привяжем его к событию «Выбор» элемента формы «ИнтернетТовары»:
Процедура ИнтернетТоварыВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка) //++ eComm+
СтандартнаяОбработка = Ложь;
ТекДанные = ЭлементыФормы.ИнтернетТовары.ТекущиеДанные;
ПараметрыФормы = Новый Структура("Ключ", ТекДанные.ИнтернетТовар);
Если НЕ ЗначениеЗаполнено(ТекДанные.Номенклатура) Тогда
Сообщить("Выберите строку интернет-товара вместо группировки");
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ТекДанные.ИнтернетТовар) Тогда
ПараметрыЗаполнения = Новый Структура("Номенклатура, ХарактеристикаНоменклатуры, Владелец", ТекДанные.Номенклатура, ТекДанные.ХарактеристикаНоменклатуры, ТекДанные.Владелец);
ПараметрыФормы.Вставить("ЗначенияЗаполнения", ПараметрыЗаполнения);
КонецЕсли;
Если НЕ ТекДанные = Неопределено Тогда
ОткрытьФорму("Справочник.eComm_ИнтернетТовары.ФормаОбъекта", ПараметрыФормы, ЭтаФорма);
КонецЕсли;
КонецПроцедуры
Добавим в интерфейс «Полный» (или какой-либо другой требуемый интерфейс) подменю «eComm» с пунктами:
«Учетные записи» и «Интернет-товары»
Если у вас конфигурации «Управление производственным предприятием» или «Управление торговлей 2.3» дополнительно необходимо переназначить имя конфигурации в общем модуле «eCommСерверПереопределяемый»
Функция ИмяКонфигурации(СтандартнаяОбработка) Экспорт
// ДЛЯ УправлениеТорговлейДляУкраины версии 2.3
// НЕОБХОДИМО ПЕРЕОПРЕДЕЛИТЬ ИМЯ КОНФИГУРАЦИИ
// СЛЕДУЮЩИМ КОДОМ (Код раскомментировать):
СтандартнаяОбработка = Ложь;
Возврат "УправлениеТорговымПредприятиемДляУкраины";
КонецФункции
Процедура КоманднаяПанельТоварыeComm_ПодтвердитьНаличиеEpicentrk(Кнопка) //++ eComm / Торговые площадки: Epicentrk
Если ЭтаФорма.Модифицированность Тогда
Сообщить(НСтр("ru = 'Заказ не сохранен!!! Запишите документ и повторите попытку.';
|uk = 'Замовлення не збережене!!! Запишіть документ та повторіть спробу.'"));
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(ДокументОбъект.eComm_ИсточникЗаказа)
И ДокументОбъект.eComm_ИсточникЗаказа.ТорговаяПлощадка = Перечисления.eComm_ТорговыеПлощадки.Epicentrk Тогда
ПодтвердитьНаличиеНаСервере();
Иначе
ПоказатьПредупреждение(, НСтр("ru = 'Источник заказа не заполнен или заказ загружен не с сайта ""Epicentrk""';
|uk = 'Джерело замовлення не заповнене або замовлення завантажене не з сайту ""Epicentrk""'"));
КонецЕсли;
КонецПроцедуры
Процедура ПодтвердитьНаличиеНаСервере() //++ eComm / Торговые площадки: Epicentrk
Настройки = eCommСервер.Настройки(ДокументОбъект.eComm_ИсточникЗаказа);
Справочники.eComm_УчетныеЗаписи.ПодтвердитьНаличиеЗагрузитьКонтакты(Настройки, ДокументОбъект);
ЭтаФорма.Прочитать();
КонецПроцедуры