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