Загрузка данных о заказах поставщику

Официальные дилеры различных автомобильных брендов имеют возможность получения от поставщиков списка автомобилей, которые в ближайшем будущем будут к нам доставлены. Как правило в табличном документе имеется развернутая информация о сроках планируемой поставки, варианте комплектации и предельной дате оплаты каждого автомобиля.

В практике внедрения отраслевой конфигурации Альфа-Авто 5ой версии, предназначенной для организации учета в табличного автосалонах и автосервисах важной является задача загрузки данных от поставщиков о планируемых поставках автомобилей.

Как правило эти данные представляют собой табличный документ, где имеется развернутая информация:

  • — о сроках планируемой поставке;
  • — внешнем номере заказа;
  • — VIN-номере автомобиля;
  • — стоимости;
  • — варианте комплектации и предельной дате оплаты каждого автомобиля

На рисунке ниже привожу фрагмент такого файла:

В процессе загрузки возникает необходимость получить данные о следующих объектах:

— справочник Автомобилей;

— справочник Договоров взаиморасчетов с поставщиком;

— документы Заказ поставщику на автомобиль;

— цены автомобилей

Важно чтобы эта информация не просто загружалась, но и синхронизировалась. Так чтобы в различных документах и справочниках об одном и том же автомобиле была непротиворечивой. Имеющаяся в составе отраслевого решения обработка загрузки табличного докумета очевидно задачу такой синхронизации решить не может.

Чтобы для пользователя наглядно отобразить процесс поступления нового автомобиля от поставщика мы создаем 2 связанные между собой «цепочки» документов:

  • -заказов клиентов на автомобиль, которая отражает клиентские заказы на определенный автомобиль
  • -заказов поставщику на автомобили, которая отражает изменения в информации о поставке авто

Описываемая задача в первую очередь касается 2-ой «цепочки» (именно заказов поставщику на автомобили) и не редко встает совместно с организацией взаиморасчетов с поставщиками в разрезе каждого автомобиля по отдельности. В подобном случае рекомендуется также дополнить код программы автоматическим созданием договора с поставщиком. Который бы создавался по событию перед записью документа «Заказ поставщику на автомобиль».

Процедура ЗаполнениеДоговораСПоставщиком() Экспорт
//посмотрим на договор с поставщиком - может быть его надо выбрать или создать?
Если НЕ ЗначениеЗаполнено(ДоговорВзаиморасчетов) И ЗначениеЗаполнено(ВнешнийНомерЗаказа)
И ЗначениеЗаполнено(Модель) И ЗначениеЗаполнено(Контрагент)
И ЗначениеЗаполнено(Автомобиль) Тогда //сначала попробуем поискать
Запрос = Новый Запрос();
Запрос.Текст = "ВЫБРАТЬ
| ДоговорыВзаиморасчетов.Ссылка,
| ДоговорыВзаиморасчетов.Автомобиль.VIN КАК VIN
|ИЗ
| Справочник.ДоговорыВзаиморасчетов КАК ДоговорыВзаиморасчетов
|ГДЕ
| ДоговорыВзаиморасчетов.Владелец = &Владелец
| И ДоговорыВзаиморасчетов.НомерЗаказаНаАвтомобиль = &НомерЗаказаНаАвтомобиль";
Запрос.УстановитьПараметр("Владелец", Контрагент);
Запрос.УстановитьПараметр("НомерЗаказаНаАвтомобиль",ВнешнийНомерЗаказа);
Выборка = Запрос.Выполнить().Выбрать();
ДоговорВзаиморасчетов = Справочники.ДоговорыВзаиморасчетов.ПустаяСсылка();
ЕслиВыборка.Следующий() тогда
ДоговорВзаиморасчетов = Выборка.Ссылка;
Договор = Справочники.ДоговорыВзаиморасчетов.СоздатьЭлемент();
Догвор.Владелец = Контрагент;
Договор.Наименование = «» + Модель + «» + ВнешнийНомерЗаказа;
ЕслиЗначениеЗаполнено(Автомобиль.VIN) Тогда
Договор.Наименование = Договор.Наименование + «/» + Прав(СокрЛП(Автомобиль.VIN),5);
КонецЕсли;
КонецЕсли;
ЕслиДоговорВзаиморасчетов.Пустая() Тогда//если не нашли, то создадим договор
Договор = Справочники.ДоговорыВзаиморасчетов.СоздатьЭлемент();
Догвор.Владелец = Контрагент;
Договор.Наименование = «» + Модель + «» + ВнешнийНомерЗаказа;
ЕслиЗначениеЗаполнено(Автомобиль.VIN) Тогда
Договор.Наименование = Договор.Наименование + «/» + Прав(СокрЛП(Автомобиль.VIN),5);
КонецЕсли;
//... заполнение других реквизитов справочника
Договор.Записать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процесс же загрузки данных предлагается выполнять с помощью внешней обработки, вставляя полученную от поставщика информацию в табличный документ

Обрабатывая строки табличного документа обработка для каждой строки:

— с заполненными данными VIN-номера ищет элемент справочника автоомбилей, и если таковой отствутствует, то создает;

— с заполненными данными о номере заказа поставщику проверяет остатки заказов поставщику на автомобили с нужным внешним номером заказа и обновляет данные документа;

-формирет в процессе обработки таблицу соответствий VIN-номер цена автомобиля, которая после обработки табличной части предстает перед пользователем в виде документа изменение цен

Наглядно это алгоритм выглядит так:

В результате работы мы получаем не только заполенные документы заказ поставщику на автомобиль, но и один документ «Изменение цен автомобилей»

Поделиться с друзьями