Код 1C v 8.х
Функция ОчиститьEmail(
Контрагент,
ТипКонтактнойИнформации,
ВидКонтактнойИнформации,
Представление
)
НаборЗаписей = РегистрыСведений. КонтактнаяИнформация. СоздатьНаборЗаписей( ) ;
НаборЗаписей. Отбор. Объект. Установить( Контрагент) ;
НаборЗаписей. Отбор. Тип. Установить( ТипКонтактнойИнформации) ;
НаборЗаписей. Отбор. Вид. Установить( ВидКонтактнойИнформации) ;
НаборЗаписей. Прочитать( ) ;
Для каждого СтрНабЗап Из НаборЗаписей Цикл
СтрНабЗап. Представление = "" ;
сообщить( "" + Контрагент + " | "
+ ТипКонтактнойИнформации + " | "
+ ВидКонтактнойИнформации + " | "
+ Представление + " -> " + СтрНабЗап. Представление + " [Ok!]" ) ;
КонецЦикла ;
НаборЗаписей. Записать( ) ;
КонецФункции
функция ПолучитьТЗ()
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ ПЕРВЫЕ 1000000
| КонтактнаяИнформация.Объект,
| КонтактнаяИнформация.Тип,
| КонтактнаяИнформация.Вид,
| КонтактнаяИнформация.Представление,
| (ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(1000))) как стрПредставление
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
|ГДЕ
| КонтактнаяИнформация.Тип = &Тип
| //И КонтактнаяИнформация.Вид = &Вид
| И (ВЫРАЗИТЬ(КонтактнаяИнформация.Представление КАК СТРОКА(1000))) <> &ПустоеЗначение
| И НЕ КонтактнаяИнформация.Представление ПОДОБНО &ШаблонEmail" ;
Запрос. УстановитьПараметр( "Тип" , Перечисления. ТипыКонтактнойИнформации. АдресЭлектроннойПочты) ;
Запрос. УстановитьПараметр( "ПустоеЗначение" , "" ) ;
Запрос. УстановитьПараметр( "ШаблонEmail" , "%@%" ) ;
Результат = Запрос. Выполнить( ) ;
ПлохиеEmailТЗ = Результат. Выгрузить( ) ;
Возврат ПлохиеEmailТЗ;
КонецФункции
Функция ЗНАЧЕНИЕ - Позволяет использовать прямо в текстах запроса предопределенные в конфигураторе данные. (т.е. позволяет избавиться от необходимости передавать их параметрами к запросу).
Использование предопределенных данных конфигурации
Например:
можно было бы написать в запросе:
Код 1C v 8.х | ВзаиморасчетыСПокупателямиОстатки.Проект = &ПроектыПустаяСсылка
а потом передать в запрос параметр:
Код 1C v 8.х Запрос. УстановитьПараметр( "ПроектыПустаяСсылка" , Справочник. Проекты. ПустаяСсылка( ) ) ;
А при помощи
ЗНАЧЕНИЕ будет так:
Код 1C v 8.х | ВзаиморасчетыСПокупателямиОстатки.Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка)
Примеры использования:
Код 1C v 8.х
Запрос = Новый Запрос;
Запрос. УстановитьПараметр( "Физлицо" , Физлицо) ;
Запрос. Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументДатаВыдачи,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументКемВыдан,
| ПаспортныеДанныеФизЛицСрезПоследних.ДокументКодПодразделения,
| "" ,"" + АдресаФактические.Поле1 + "" ,"" + АдресаФактические.Поле2 + "" ,"" + АдресаФактические.Поле3 + "" ,"" + АдресаФактические.Поле4 + "" ,"" + АдресаФактические.Поле5 + "" ,"" + АдресаФактические.Поле6 + "" ,"" + АдресаФактические.Поле7 + "" ,"" + АдресаФактические.Поле8 + "" ,"" + АдресаФактические.Поле9 КАК АдресФактический,
| "" ,"" + АдресПрописки.Поле1 + "" ,"" + АдресПрописки.Поле2 + "" ,"" + АдресПрописки.Поле3 + "" ,"" + АдресПрописки.Поле4 + "" ,"" + АдресПрописки.Поле5 + "" ,"" + АдресПрописки.Поле6 + "" ,"" + АдресПрописки.Поле7 + "" ,"" + АдресПрописки.Поле8 + "" ,"" + АдресПрописки.Поле9 КАК АдресПоПрописке,
| ДомашниеТелефоны.Поле3 КАК ТелефонДомашний
|ИЗ
| Справочник.ФизическиеЛица КАК ФизическиеЛица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(, ФизЛицо = &ФизЛицо) КАК ПаспортныеДанныеФизЛицСрезПоследних
| ПО ФизическиеЛица.Ссылка = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ДомашниеТелефоны
| ПО ФизическиеЛица.Ссылка = ДомашниеТелефоны.Объект
| И (ДомашниеТелефоны.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонФизЛица))
| И (ДомашниеТелефоны.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК АдресаФактические
| ПО ФизическиеЛица.Ссылка = АдресаФактические.Объект
| И (АдресаФактические.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ФактАдресФизЛица))
| И (АдресаФактические.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК АдресПрописки
| ПО (ФизическиеЛица.Ссылка = АдресаФактические.Объект)
| И (АдресаФактические.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресФизЛица))
| И (АдресаФактические.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
|ГДЕ
| ФизическиеЛица.Ссылка = &Физлицо" ;
Выборка = Запрос. Выполнить( ) . Выбрать( ) ;
Если Выборка. Следующий( ) Тогда
АдресПроживания = Выборка. АдресФактический;
УдостоверениеЛичности = Строка( Выборка. ДокументВид) + "; " + Выборка. ДокументСерия+ "; " + Выборка. ДокументНомер+ "; " + Формат( Выборка. ДокументДатаВыдачи, "ДЛФ=D" ) ;
Телефон = Выборка. ТелефонДомашний;
КонецЕсли ;
Запрос = Новый Запрос;
Запрос. Текст = "ВЫБРАТЬ
| ВидыНоменклатуры.Ссылка как ссылка,
| ВидыНоменклатуры.Порядок
|ИЗ
| Перечисление.ВидыНоменклатуры КАК ВидыНоменклатуры
|ГДЕ
| ВидыНоменклатуры.Ссылка = Значение(Перечисление.ВидыНоменклатуры.Услуга) " ;
ТЗ = Новый ТаблицаЗначений;
ТЗ = запрос. Выполнить( ) . Выгрузить( ) ;
ЭлементыФормы. ТабличноеПоле1 . Значение = ТЗ;
ЭлементыФормы. ТабличноеПоле1 . СоздатьКолонки( ) ;
Для тех, кто мучается с получением сведений из регистра сведений КонтактнаяИнформация в стандартных конфигурациях.
Код 1C v 8.х
Запрос= Новый Запрос;
Запрос. Текст= "
|ВЫБРАТЬ
| ВЗАдрес.Ссылка КАК ФизЛицо,
| ВЗАдрес.Адрес,
| ВЗТелефон.Телефон
|ИЗ
| (ВЫБРАТЬ
| ФизическиеЛица.Ссылка КАК Ссылка,
| КонтактнаяИнформация.Представление КАК Адрес
| ИЗ
| Справочник.ФизическиеЛица КАК ФизическиеЛица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
| ПО ФизическиеЛица.Ссылка = КонтактнаяИнформация.Объект
| ГДЕ
| КонтактнаяИнформация.Вид = &АдрПоПрописке
| И КонтактнаяИнформация.Тип = &Адрес) КАК ВЗАдрес
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ФизическиеЛица.Ссылка КАК Ссылка,
| КонтактнаяИнформация.Представление КАК Телефон
| ИЗ
| Справочник.ФизическиеЛица КАК ФизическиеЛица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
| ПО ФизическиеЛица.Ссылка = КонтактнаяИнформация.Объект
| ГДЕ
| КонтактнаяИнформация.Вид = &ВидТелеф
| И КонтактнаяИнформация.Тип = &Телефон) КАК ВЗТелефон
| ПО ВЗАдрес.Ссылка = ВЗТелефон.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| ФизЛицо
|АВТОУПОРЯДОЧИВАНИЕ
|" ;
Запрос. УстановитьПараметр( "Адрес" , Перечисления. ТипыКонтактнойИнформации. Адрес) ;
Запрос. УстановитьПараметр( "АдрПоПрописке" , Справочники. ВидыКонтактнойИнформации. ЮрАдресФизЛица) ;
Запрос. УстановитьПараметр( "ВидТелеф" , Справочники. ВидыКонтактнойИнформации. ТелефонФизЛица) ;
Запрос. УстановитьПараметр( "Телефон" , Перечисления. ТипыКонтактнойИнформации. Телефон) ;
Результат = Запрос. Выполнить( ) ;
Результат = Результат. Выбрать( ) ;
Пока Результат. Следующий( ) Цикл
КонецЦикла ;