==== Обновление до версии 2.4 для конфигурации УТ BAS ====
В связи с разделением регистра сведений "eComm_СтатусыЭкспрессНакладных" на два регистра ("eComm_СтатусыЭкспрессНакладных" и "eComm_ЭкспрессНакладныеСпискаЗаказов") и дальнейшим развитием модуля доставки обновление необходимо производить по следующему сценарию:
Если Вы не уверены в успехе обновления - просьба обратиться к нашей технической поддержке для согласования обновления нашими силами (__marketplace@ingenum.ua__)
=== 1. Делаем резервную копию базы перед обновлением ===
=== 2. Производим переименование реквизитов документа "eComm_ЭкспрессНакладная" ===
- реквизит "УлицаОтправителя" в "УлицаОтправителяСтрокой"
- реквизит "УлицаПолучателя" в "УлицаПолучателяСтрокой"
=== 3. Обновляем согласно инструкции: ===
*[[delivery_designer_utbas_2_4_0_2|Встраивание в конфигурации УТ-3, BAS УТ, BAS КУП, BAS ERP]]*
=== 4. Производим переименование ресурса регистра сведений ""eComm_СтатусыЭкспрессНакладных" ===
- ресурс ""ЭкспрессНакладная" в "ЭкспрессНакладнаяСтар"
=== 5. Обновляем конфигурацию баз данных ===
=== 6. Запускаем обработку по разделению регистров ===
Создадим внешнюю обработку с одной формой и командой "РазделитьСлужебныеРеквизиты". После выполнения команды убедимя что регистры сведений "eComm_СтатусыЭкспрессНакладных" и "eComm_ЭкспрессНакладныеСпискаЗаказов" заполнены.
&НаКлиенте
Процедура РазделитьСлужебныеРегистры(Команда)
РазделитьСлужебныеРегистрыНаСервере();
КонецПроцедуры
&НаСервере
Процедура РазделитьСлужебныеРегистрыНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| eComm_СтатусыЭкспрессНакладных.ДокументОснование КАК ДокументОснование,
| eComm_СтатусыЭкспрессНакладных.ЭкспрессНакладная КАК ЭкспрессНакладная,
| eComm_СтатусыЭкспрессНакладных.ЭкспрессНакладнаяСтар КАК ЭкспрессНакладнаяСтар,
| eComm_СтатусыЭкспрессНакладных.Статус КАК Статус,
| eComm_СтатусыЭкспрессНакладных.ОписаниеСтатуса КАК ОписаниеСтатуса,
| eComm_СтатусыЭкспрессНакладных.НачалоПлатногоХранения КАК НачалоПлатногоХранения,
| eComm_СтатусыЭкспрессНакладных.СтатусДенежногоПеревода КАК СтатусДенежногоПеревода,
| eComm_СтатусыЭкспрессНакладных.ДатаПрибытияНаСклад КАК ДатаПрибытияНаСклад,
| eComm_СтатусыЭкспрессНакладных.ДнейХраненияНаСкладе КАК ДнейХраненияНаСкладе,
| eComm_СтатусыЭкспрессНакладных.ДатаПолучения КАК ДатаПолучения
|ИЗ
| РегистрСведений.eComm_СтатусыЭкспрессНакладных КАК eComm_СтатусыЭкспрессНакладных";
РезультатЗапроса = Запрос.Выполнить().Выбрать();
Пока РезультатЗапроса.Следующий() Цикл
МенеджерЗаписиСтарый = РегистрыСведений.eComm_СтатусыЭкспрессНакладных.СоздатьМенеджерЗаписи();
МенеджерЗаписиСтарый.ДокументОснование = РезультатЗапроса.ДокументОснование;
МенеджерЗаписиСтарый.ЭкспрессНакладная = РезультатЗапроса.ЭкспрессНакладная;
МенеджерЗаписиСтарый.Удалить();
МенеджерЗаписиНовый = РегистрыСведений.eComm_СтатусыЭкспрессНакладных.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(МенеджерЗаписиНовый, РезультатЗапроса);
МенеджерЗаписиНовый.ЭкспрессНакладная = РезультатЗапроса.ЭкспрессНакладнаяСтар;
МенеджерЗаписиНовый.Записать();
МенеджерЗаписиЗаказ = РегистрыСведений.eComm_ЭкспрессНакладныеСпискаЗаказов.СоздатьМенеджерЗаписи();
МенеджерЗаписиЗаказ.ДокументОснование = РезультатЗапроса.ДокументОснование;
МенеджерЗаписиЗаказ.ЭкспрессНакладная = РезультатЗапроса.ЭкспрессНакладнаяСтар;
МенеджерЗаписиЗаказ.Записать();
КонецЦикла;
КонецПроцедуры
=== 7. Удаляем в регистре сведений "eComm_СтатусыЭкспрессНакладных" ===
- измерение "ДокументОснование"
- ресурс "ЭкспрессНакладнаяСтар"
=== 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
//--
ИЗ
Документ.ЗаказКлиента КАК ДокументЗаказКлиента
//++
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.eComm_ЭкспрессНакладныеСпискаЗаказов КАК eComm_ЭкспрессНакладныеСпискаЗаказов
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.eComm_СтатусыЭкспрессНакладных КАК eComm_СтатусыЭкспрессНакладных
ПО eComm_ЭкспрессНакладныеСпискаЗаказов.ЭкспрессНакладная = eComm_СтатусыЭкспрессНакладных.ЭкспрессНакладная
ПО eComm_ЭкспрессНакладныеСпискаЗаказов.ДокументОснование = ДокументЗаказКлиента.Ссылка}
{ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СообщениеSMS.Ссылка) КАК КоличествоSMS,
СообщениеSMS.ВзаимодействиеОснование КАК ДокОснование
ИЗ
Документ.СообщениеSMS КАК СообщениеSMS
ГДЕ
СообщениеSMS.ПометкаУдаления = ЛОЖЬ
СГРУППИРОВАТЬ ПО
СообщениеSMS.ВзаимодействиеОснование) КАК СообщенияSMS
ПО ДокументЗаказКлиента.Ссылка = СообщенияSMS.ДокОснование}
//--
=== 10. Обновляем конфигурацию баз данных ===