Всем доброго дня!
Помогите, пожалуйста, новичку.
Есть такой вот цикл в 1С:
ТЗКон = СоздатьОбъект("ТаблицаЗначений");
ТЗКон.НоваяКолонка("Контр");
ТЗКон.НоваяКолонка("Наим");
ТЗКон.НоваяКолонка("ПолнНаим");
ТЗКон.НоваяКолонка("ИНН");
ТЗКон.НоваяКолонка("ДР","Дата");
Контрагенты = Создатьобъект("Справочник.Контрагенты");
Контрагенты.ВыбратьЭлементы();
Пока Контрагенты.ПолучитьЭлемент()=1 Цикл
Если Контрагенты.Этогруппа()=0 Тогда
ТЗКон.Новаястрока();
ТЗКон.Наим=Сокрлп(Контрагенты);
ТЗКон.Контр=Контрагенты.Текущийэлемент();
попытка
ТЗКон.ПолнНаим=Сокрлп(Контрагенты.ЮрФизЛицо.ПолнНаименование);
ТЗКон.ИНН=ИНН(Сокрлп(Контрагенты.ЮрФизЛицо.ИНН));
ТЗКон.ДР=Контрагенты.ЮрФизЛицо.ДатаРождения;
исключение
конецпопытки;
КонецЕсли;
КонецЦикла;
он выполняется супер долго. Хочу его переписать на sql. Вот на что я была способна:
ТекстЗапроса = "
|SELECT
| Спр .ID [Контр $Справочник.контрагенты],
| Спр .Descr as Наим,
| СпрФЛ .ПолнНаименование as ПолнНаим,
| СпрЮрЛ.ПолнНаименование as ПолнНаим,|
| СпрЮрЛ.ИНН as ИНН,
| СпрФЛ .ДатаРождения as [ДР $Дата],
|
|
|FROM
| $справочник.контрагенты as Спр (nolock)
|
|LEFT JOIN $Справочник.ФизЛица СпрФЛ (nolock) ON СпрФЛ.ID=$Спр.ЮрФизЛицо
|
|LEFT JOIN $Справочник.ЮрЛица СпрФЛ (nolock) ON СпрЮрЛ.ID=$Спр.ЮрФизЛицо
|
|WHERE
| Спр.ISFOLDER<>1
|";
ТЗЗ = глRS.ВыполнитьИнструкцию(ТекстЗапроса);
У меня две загвоздки:
1. как указать в запросе что контрагент может быть либо по юр лицу либо по физ лицу? то есть выбор данных может быть либо по юр лицу либо по физ лицу?
2. строка полноеНаименование неограниченная, как правильно ее нужно обрабатывать в SQL запросе?
Заранее всем спасибочки