==== Обновление до версии 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. Обновляем конфигурацию баз данных ===