0
Iater
10.06.15
✎
22:02
|
Всем привет!
Вопрос, наверное, как всегда тупой, но очень прошу разъяснить один момент в использовании запросов:
Допустим, я в запросе читаю табличную часть документа. Например, ФИО, телефон, адрес. И в обработке проведения хочу записать эти данные в справочник. Так вот, если значения реквизитов табличной части будут пустыми, то как запретить перезапись справочника? (на случай, если телефон уже был указан, а в Акте он пустой - чтоб не затер)
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(АктОПриемеНаРаботу.Телефон, 0) КАК Телефон,
| ЕСТЬNULL(АктОПриемеНаРаботу.ФИО, 0) КАК ФИО,
| ЕСТЬNULL(АктОПриемеНаРаботу.Адрес, 0) КАК Адрес
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| Документ.АктОПриемеНаРаботу КАК АктОПриемеНаРаботу
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВременнаяТаблица.Телефон,
| ВременнаяТаблица.ФИО,
| ВременнаяТаблица.Адрес
|ИЗ
| ВременнаяТаблица КАК ВременнаяТаблица";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Спр = Справочники.Сотрудники.НайтиПоНаименованию(Строка(ФИО)).ПолучитьОбъект();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Спр.Телефон = ВыборкаДетальныеЗаписи.Телефон;
Спр.ФИО = ВыборкаДетальныеЗаписи.ФИО;
Спр.Адрес = ВыборкаДетальныеЗаписи.Адрес;
КонецЦикла;
Спр.Записать();
КонецПроцедуры
Есть ли какой-то элегантный способ проверки на нулевое значение, кроме как перебирать каждый реквизит по отдельности?
Если ВыборкаДетальныеЗаписи.Адрес = Неопределенно Тогда
Если ВыборкаДетальныеЗаписи.Телефон = Неопределенно Тогда
|
|
3
bootini
11.06.15
✎
12:44
|
"ВЫБРАТЬ
| ЕСТЬNULL(АктОПриемеНаРаботу.Телефон, 0) КАК Телефон,
| ЕСТЬNULL(АктОПриемеНаРаботу.ФИО, 0) КАК ФИО,
| ЕСТЬNULL(АктОПриемеНаРаботу.Адрес, 0) КАК Адрес
|ПОМЕСТИТЬ ВременнаяТаблица
|ИЗ
| Документ.АктОПриемеНаРаботу КАК АктОПриемеНаРаботу
|;
|
////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВременнаяТаблица.Телефон,
| ВременнаяТаблица.ФИО,
| ВременнаяТаблица.Адрес
|ИЗ
| ВременнаяТаблица КАК ВременнаяТаблица
ГДЕ
ВременнаяТаблица.Телефон <> 0
И ВременнаяТаблица.Адрес <> 0 ";
|
|