eComm+

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

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

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


delivery_designer_unfu_update_2_4

Обновление до версии 2.4 для конфигурации УНФ

В связи с разделением регистра сведений «eComm_СтатусыЭкспрессНакладных» на два регистра («eComm_СтатусыЭкспрессНакладных» и «eComm_ЭкспрессНакладныеСпискаЗаказов») и дальнейшим развитием модуля доставки обновление необходимо производить по следующему сценарию:

Если Вы не уверены в успехе обновления - просьба обратиться к нашей технической поддержке для согласования обновления нашими силами (marketplace@ingenum.ua)

1. Делаем резервную копию базы перед обновлением

2. Производим переименование реквизитов документа "eComm_ЭкспрессНакладная"

  1. реквизит «УлицаОтправителя» в «УлицаОтправителяСтрокой»
  2. реквизит «УлицаПолучателя» в «УлицаПолучателяСтрокой»

3. Обновляем согласно инструкции:

4. Производим переименование ресурса регистра сведений ""eComm_СтатусыЭкспрессНакладных"

  1. ресурс ««ЭкспрессНакладная» в «ЭкспрессНакладнаяСтар»

5. Обновляем конфигурацию баз данных

6. Запускаем обработку по разделению регистров

Создадим внешнюю обработку с одной формой и командой «РазделитьСлужебныеРеквизиты». После выполнения команды убедимя что регистры сведений «eComm_СтатусыЭкспрессНакладных» и «eComm_ЭкспрессНакладныеСпискаЗаказов» заполнены.

&НаКлиенте
Процедура РазделитьСлужебныеРегистры(Команда)
	РазделитьСлужебныеРегистрыНаСервере();
КонецПроцедуры

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

7. Удаляем в регистре сведений "eComm_СтатусыЭкспрессНакладных"

  1. измерение «ДокументОснование»
  2. ресурс «ЭкспрессНакладнаяСтар»

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

Убедимся что на шаге №3 мы заменили тело процедуры «eComm_ЭкспрессНакладнаяНажатие» на две процедуры из представленного ниже кода:

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

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

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

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

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

Убедимся что на шаге №3 мы привели блоки текста запроса (между комментариями ++ и –) к такому виду: (Для реквизита «Список» выполняем команду «Настройка списка»)

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

10. Обновляем конфигурацию баз данных

delivery_designer_unfu_update_2_4.txt · Последнее изменение: 2022/07/29 14:46 — webmaster