eComm+

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

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

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


delivery_designer_utp_2_4_0_2

Это старая версия документа!


Встраивание подсистемы "Новая почта"

1. Объединяем с конфигурацией модуля новой почты 2. Выполняем объединение 3. Пропускаем зависимости 4.1 Если модуль «Новая почта» внедряется совместно с модулями торговых площадок «eComm+» тогда перетаскиваем подсистему «Новая почта» в торговые площадки

Только вместе с «eComm+»

4.2 Если модуль «Новая почта» внедряется самостоятельно (без модулей «eComm+») тогда отображаем подсистему «eComm_СлужбыДоставки» в командном интерфейсе

Только самостоятельно (без «eComm+»)

Редактирование документа “Заказ покупателя”

Редактирование формы документа “Заказ покупателя”

На форме документа «Заказ покупателя» добавим на панель вкладку «НоваяПочта». На панели разместим надпись (гиперссылка) «eComm_ЭкспрессНакладная_Открыть» и надпись «eComm_ЭкспрессНакладная_Создать».

Имя элемента Синоним Элемент Гиперссылка Ширина Картинка
eComm_ЭкспрессНакладная_Открыть Отправить ЭН Надпись Истина 350 Документ
eComm_ЭкспрессНакладная_Создать Создать Надпись Истина 150 СоздатьЭлементСписка

Скопируем следующий код в конце размещения методов модуля формы документа «заказ покупателя»

Процедура eComm_ЭкспрессНакладнаяНажатие(Элемент)               						//++ eComm / Службы доставки
	
	Если НЕ ЗначениеЗаполнено(ЭтотОбъект.Ссылка) Тогда
		ПоказатьПредупреждение(, НСтр("ru = 'Данные не записаны.
								|Переход к экспресс-накладной возможен только после сохранения заказа';
								|
								|uk = 'Данные не записаны.
								|Перехід до експрес-накладної можливий лише після збереження замовлення'"));
		Возврат;
	КонецЕсли;
	
	Если Элемент.Имя = "eComm_ЭкспрессНакладная_Открыть" Тогда 
		// Это открытие списка накладных
		
		СписокВыбора 		= eCommДоставкаСервер.СписокЭкспрессНакладных(ЭтотОбъект.Ссылка); 
		Если СписокВыбора.Количество() > 1 Тогда
			ВыбрЗначение = ВыбратьИзМеню(СписокВыбора, Элемент);
			Если НЕ ВыбрЗначение = Неопределено Тогда 
				ВыполнитьПослеВыбораЗначения(ВыбрЗначение, ЭтотОбъект.Ссылка);
			КонецЕсли;
		ИначеЕсли СписокВыбора.Количество() = 1 Тогда 
			ВыполнитьПослеВыбораЗначения(СписокВыбора[0], ЭтотОбъект.Ссылка);
		Иначе
			// Создадим если ранее накладная не была создана
			ВыполнитьПослеВыбораЗначения(Новый Структура("Значение", Неопределено), ЭтотОбъект.Ссылка);
		КонецЕсли;
		
	ИначеЕсли Элемент.Имя = "eComm_ЭкспрессНакладная_Создать" Тогда 
		// Это создание новой накладной
		ВыполнитьПослеВыбораЗначения(Новый Структура("Значение", Неопределено), ЭтотОбъект.Ссылка);
	КонецЕсли;
	
КонецПроцедуры

Процедура ВыполнитьПослеВыбораЗначения(ЭлементСпискаВыбора, Заказ) Экспорт            	//++ eComm / Службы доставки

	Если НЕ ЭлементСпискаВыбора = Неопределено Тогда 
		ЗначенияЗаполнения = Новый Структура("ДокументОснование", Заказ);
		ОткрытьФорму("Документ.eComm_ЭкспрессНакладная.ФормаОбъекта", Новый Структура("Ключ, ЗначенияЗаполнения", ЭлементСпискаВыбора.Значение, ЗначенияЗаполнения));
	КонецЕсли;

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

Процедура ЗаполнитьОписаниеЭН()                                                         //++ eComm / Службы доставки

	ОписаниеСтатуса = "";
	
	Если ЗначениеЗаполнено(ЭтотОбъект.Ссылка) Тогда 
		
		Попытка
			СписокНакладных = eCommДоставкаСервер.СписокЭкспрессНакладных(ЭтотОбъект.Ссылка);
			
			КоличествоЭкспрессНакладных = СписокНакладных.Количество();
			
			Если КоличествоЭкспрессНакладных > 0 Тогда 
				ОписаниеСтатуса = СписокНакладных[0].Представление;
			КонецЕсли;
		Исключение
			
		КонецПопытки;
		
		Если КоличествоЭкспрессНакладных > 1 Тогда 
			ОписаниеСтатуса = ОписаниеСтатуса + НСтр("ru = ' и еще '; uk = ' та ще '") + (КоличествоЭкспрессНакладных - 1) + НСтр("ru = ' накладных'; uk = ' накладних'");
		КонецЕсли;
		
	КонецЕсли;
	
	ЭлементыФормы.eComm_ЭкспрессНакладная_Открыть.Заголовок = ?(ЗначениеЗаполнено(ОписаниеСтатуса), "Статус накладной: " + ОписаниеСтатуса, "Отправить ЭН");

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

Обработчиком нажатия для элементов «eComm_ЭкспрессНакладная_Открыть» и «eComm_ЭкспрессНакладная_Создать» выберем из списка метод

"eComm_ЭкспрессНакладнаяНажатие"

Добавим в конце метода «ПередОткрытием» следующий код:

ЗаполнитьОписаниеЭН();			//++ eComm Доставка

Редактирование формы списка “Заказ покупателя”

Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
	
	ТаблицаДокументов = Новый ТаблицаЗначений;
	ТаблицаДокументов.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.ЗаказПокупателя"));
	Для каждого Строка из ОформленияСтрок цикл
		СтрокаТаблицы = ТаблицаДокументов.Добавить();
		СтрокаТаблицы.Документ = Строка.ДанныеСтроки.Ссылка;
	КонецЦикла;

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

	Для каждого Строка из ОформленияСтрок цикл

		текСсылка = Строка.ДанныеСтроки.Ссылка;
		СтрокаТаблицыРезультат = ТаблицаРезультат.Найти(текСсылка,"Документ");
		Если СтрокаТаблицыРезультат <> Неопределено Тогда
			
			Если ЗначениеЗаполнено(СтрокаТаблицыРезультат.ЭкспрессНакладная) Тогда
				Строка.Ячейки.ЭкспрессНакладная.Значение = СтрокаТаблицыРезультат.ЭкспрессНакладная;
			КонецЕсли;
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры
delivery_designer_utp_2_4_0_2.1703340899.txt.gz · Последнее изменение: 2022/02/24 03:40 (внешнее изменение)