Разрешить пустой VIN

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Разрешить пустой VIN, наименование автомобиля не уникально
 
При ремонте спец техники VIN часто не заполняют, а уникальность наименования не всегда достигается.  Текущая реализация данного функционала не позволит сохранить в справочнике автомобиль с не уникальным наименованием. Выходом из данной ситуации может оказаться внесение изменений в обработку обязательных реквизитов:

Код
Если обПраво("РазрешитьПустойVIN",Права) Тогда
   ОбязательныеРеквизиты.Вставить("Наименование",1);
Иначе
       ОбязательныеРеквизиты.Вставить("VIN",3);
КонецЕсли;


Правда в таком случае придется добавить проверку перед записью элемента, чтобы исключить возможность создания двух автомобилей с одинаковыми VIN кодами. Но в любом случае шанс появления ошибок достаточно высок.

Возможно корректнее было бы реализовать возможность записи автомобиля с не заполненым VIN кодом на уровне элемента справочника, а данным правом например регулировать доступность элементов управления.

Код
Процедура УправлениеДиалогом()   
   ЭлементыФормы.БезVIN.Доступность = обПраво("РазрешитьПустойVIN",Права);
   ЭлементыФормы.VIN.Доступность = Не БезVIN;


В свое время я решил данную задачу добавлением в справочник Автомобили доп. реквизита БезVIN тип булево

Код
Функция ПолучитьОбязательныеРеквизиты(ДляЭлемента=Истина, ДляГруппы=Ложь) Экспорт
   ОбязательныеРеквизиты=Новый Структура();
   ОбязательныеРеквизиты.Вставить("Код",1);
   ОбязательныеРеквизиты.Вставить("Наименование",3);
   Если ДляЭлемента Тогда
      Если БезVIN Тогда
         ОбязательныеРеквизиты.Вставить("Наименование",1);
      Иначе
         ОбязательныеРеквизиты.Вставить("VIN",3);
      КонецЕсли;


И в форме элемента
Код
Процедура БезVINПриИзменении(Элемент)
   ЭлементыФормы.VIN.Доступность = Не БезVIN;
   
   Если БезVIN Тогда
      VIN="";
      ФормированиеНаименованияАвтомобиля(ГосНомер);
   Иначе
      VINПриИзменении(Элемент);
   КонецЕсли;
КонецПроцедуры // БезVINПриИзменении


Мне кажется что данный подход более корректен, так-как необходимо специально указать что записывается автомобиля без указания VIN кода каждый раз при создании нового элемента.
Изменено: Андрей К - 19.10.2010 00:29:28
 
Пожелание зафиксировано под номером С010326701.

Предложенное решение однако слишком громоздко. Достаточно в ПолучитьОбязательныеРеквизиты указывать уникальность VIN при его заполненности.
 
Пожелание реализовано.
Изменения в релизе 4.1.01.19
 
А когда выйдет 19 релиз?
 
Релиз 4.1.01.19 во второй половине ноября (в конце).
Что касается контроля VIN, то в ПолучитьОбязательныеРеквизиты в модуле справочника автомобилей контроль реквизита VIN исправить на
Если обПраво("РазрешитьПустойVIN",Права) Тогда
Если НЕ ПустаяСтрока(VIN) Тогда
ОбязательныеРеквизиты.Вставить("VIN",3);
КонецЕсли;
Иначе
ОбязательныеРеквизиты.Вставить("VIN",3);
КонецЕсли;
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С