Код
Запрос = Новый ПостроительЗапроса;
Запрос.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТД.Область(1,1,ТД.ВысотаТаблицы,5));
Запрос.Выполнить();
ТаблицаДанных = Запрос.Результат.Выгрузить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТаблицаДанных",ТаблицаДанных);
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаДанных.Наименование КАК Наименование,
| ТаблицаДанных.ОбъемДвигателя КАК ОбъемДвигателя,
| ТаблицаДанных.НаличиеDPF КАК НаличиеDPF,
| ТаблицаДанных.ТипТоплива КАК ТипТоплива,
| ТаблицаДанных.КороткоеНаименование КАК КороткоеНаименование
|ПОМЕСТИТЬ ТаблицаДанных
|ИЗ
| &ТаблицаДанных КАК ТаблицаДанных
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТипыДвигателей.Ссылка КАК Ссылка,
| ТаблицаДанных.Наименование КАК Наименование,
| ТаблицаДанных.ОбъемДвигателя КАК ОбъемДвигателя,
| ТаблицаДанных.НаличиеDPF КАК НаличиеDPF,
| ТаблицаДанных.ТипТоплива КАК ТипТоплива,
| ТаблицаДанных.КороткоеНаименование КАК КороткоеНаименование
|ИЗ
| ТаблицаДанных КАК ТаблицаДанных
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ТипыДвигателей КАК ТипыДвигателей
| ПО ТаблицаДанных.Наименование = ТипыДвигателей.Наименование";
Результат = Запрос.Выполнить();
ТЗ = Результат.Выгрузить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Состояние(Выборка.Наименование);
ОбработкаПрерыванияПользователя();
//Наименование = нрег(Выборка.Наименование);
Если НЕ ЗначениеЗаполнено(Выборка.Ссылка) Тогда
Сообщить("Не найден: "+Выборка.Наименование,СтатусСообщения.Важное);
Продолжить;
КонецЕсли;
СпрОбъект = Выборка.Ссылка.ПолучитьОбъект();
СпрОбъект.ОбменДанными.Загрузка = Истина;
Если СпрОбъект.КороткоеНаименование <> Выборка.КороткоеНаименование Тогда
Сообщить(СтрШаблон("%1: %2 => %3",СпрОбъект,СпрОбъект.КороткоеНаименование,Выборка.КороткоеНаименование));
СпрОбъект.КороткоеНаименование = Выборка.КороткоеНаименование;
КонецЕсли;
НовыйТипТоплива = СпрОбъект.ТипТоплива;
//Если Выборка.ТипТоплива = "Дизель" Тогда
// НовыйТипТоплива = Перечисления.ТипыТоплива.Дизель;
//ИначеЕсли Выборка.ТипТоплива = "Электричество" Тогда
// НовыйТипТоплива = Перечисления.ТипыТоплива.Электричество;
//ИначеЕсли Выборка.ТипТоплива = "Электро" Тогда
// НовыйТипТоплива = Перечисления.ТипыТоплива.Гибрид;
//ИначеЕсли Выборка.ТипТоплива = "Дизельное топливо / Бензин" Тогда
// НовыйТипТоплива = Перечисления.ТипыТоплива.Дизель;
//Иначе
НовыйТипТоплива = Перечисления.ТипыТоплива[Выборка.ТипТоплива];
//КонецЕсли;
Если СпрОбъект.ТипТоплива <> НовыйТипТоплива Тогда
Сообщить(СтрШаблон("%1: %2 => %3",СпрОбъект,СпрОбъект.ТипТоплива,НовыйТипТоплива));
СпрОбъект.ТипТоплива = НовыйТипТоплива;
КонецЕсли;
//НовыйНаличиеDPF = СпрОбъект.НаличиеDPF;
Если Выборка.НаличиеDPF = "Да" Тогда
НовыйНаличиеDPF = Перечисления.ВидыНаличияDPF.Да;
ИначеЕсли Выборка.НаличиеDPF = "Нет" Тогда
НовыйНаличиеDPF = Перечисления.ВидыНаличияDPF.Нет;
ИначеЕсли НовыйТипТоплива = Перечисления.ТипыТоплива.Дизель ИЛИ НовыйТипТоплива = Перечисления.ТипыТоплива.ДизельЭлектричество Тогда
НовыйНаличиеDPF = Перечисления.ВидыНаличияDPF.Нет;
Иначе
НовыйНаличиеDPF = Перечисления.ВидыНаличияDPF.ПустаяСсылка();
КонецЕсли;
Если СпрОбъект.НаличиеDPF <> НовыйНаличиеDPF Тогда
Сообщить(СтрШаблон("%1: %2 => %3",СпрОбъект,СпрОбъект.НаличиеDPF,НовыйНаличиеDPF));
СпрОбъект.НаличиеDPF = НовыйНаличиеDPF;
КонецЕсли;
Если СпрОбъект.ОбъемДвигателя <> Число(Выборка.ОбъемДвигателя) Тогда
Сообщить(СтрШаблон("%1: %2 => %3",СпрОбъект,СпрОбъект.ОбъемДвигателя,Число(Выборка.ОбъемДвигателя)));
СпрОбъект.ОбъемДвигателя = Число(Выборка.ОбъемДвигателя);
КонецЕсли;
//Если СтрНайти(Наименование,"petrol") > 0 ИЛИ СтрНайти(Наименование,"k16") > 0 Тогда
// СпрОбъект.ТипТоплива = Перечисления.ТипыТоплива.Бензин;
//ИначеЕсли СтрНайти(Наименование,"diesel") > 0 ИЛИ СтрНайти(Наименование,"td") > 0 ИЛИ СтрНайти(Наименование,"dpf") > 0 Тогда
// СпрОбъект.ТипТоплива = Перечисления.ТипыТоплива.Дизель;
//Иначе
// //Сообщить(Выборка.Ссылка);
//КонецЕсли;
Если СпрОбъект.Модифицированность() Тогда
//СпрОбъект.Записать();
КонецЕсли;
КонецЦикла;