Имя: Пароль:
1C
1С v8
Какие ошибки допущены в запросе
0 skupidom
 
03.05.18
23:33
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТаблицаДляОтбора",Таблица);
    Запрос.УстановитьПараметр("ФизическоеЛицо",Физлицо);
    Запрос.УстановитьПараметр("КостЦентр",КостЦентр);
    Запрос.Текст =    
"Выбрать
    | *
    |ПОМЕСТИТЬ ВТ_ТаблицаДляОтбора
    | ИЗ
    | &ТаблицаДляОтбора КАК ТаблицаДляОтбора
    | ;
    | //////////////////////////////////////////////
    |Выбрать
    | *
    | ИЗ
    | ВТ_ТаблицаДляОтбора КАК ВТ_ТаблицаДляОтбора
    | ГДЕ
    | ВТ_ТаблицаДляОтбора.ФизическоеЛицо = &ФизическоеЛицо
    | И ВТ_ТаблицаДляОтбора.СтатьяФинансирования = &КостЦентр";
1 BeerHelpsMeWin
 
03.05.18
23:42
а Таблица.Найтистроки(структураПоиска) нельзя использовать?
не уверен в плане скорости, но в плане чтения кода дак точно лучше будет
2 zwei
 
03.05.18
23:42
Внимательно слушаем.
3 zwei
 
03.05.18
23:44
(1) В плане скорости будет лучше, потому что не будет теребонькать сетевой стек, скл сервер и опять сетевой стек.
4 skupidom
 
04.05.18
00:08
А если полностью:
Процедура Сформировать(ТаблицаПроводок,ДопПарам,ТаблицаНДФЛ,ТаблицаНачислений)

Если ТаблицаНДФЛ.Количество() = 0 Тогда
    Возврат;
КонецЕсли;
НомерСтроки = 0;
Для каждого СтрокаТаблицы Из ТаблицаНДФЛ Цикл
ОтобратьТаблицуПоСотруднику(ТаблицаНачислений,СтрокаТаблицы.ФизическоеЛицо,СтрокаТаблицы.СтатьяФинансирования);
КонецЦикла;
КонецПроцедуры

Функция ОтобратьТаблицуПоСотруднику(Таблица,ФизЛицо,КостЦентр)
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТаблицаДляОтбора",Таблица);
    Запрос.УстановитьПараметр("ФизическоеЛицо",Физлицо);
    Запрос.УстановитьПараметр("КостЦентр",КостЦентр);
    Запрос.Текст =    
"Выбрать
    | *
    |ПОМЕСТИТЬ ВТ_ТаблицаДляОтбора
    | ИЗ
    | &ТаблицаДляОтбора КАК ТаблицаДляОтбора
    | ;
    |//////////////////////////////////////////////

    |Выбрать
    | *
    | ИЗ
    | ВТ_ТаблицаДляОтбора КАК ВТ_ТаблицаДляОтбора
    | ГДЕ
    | ВТ_ТаблицаДляОтбора.ФизическоеЛицо = &ФизическоеЛицо
    | И ВТ_ТаблицаДляОтбора.СтатьяФинансирования = &КостЦентр";
Возврат Запрос.Выполнить.Выгрузить();
КонецФункции
5 timurhv
 
04.05.18
00:11
(4) Запросы циклом - наше все
6 timurhv
 
04.05.18
00:14
+(5) В запросе необходимо "ТаблицаНДФЛ" использовать (внутреннее соединение), либо как в (1) посоветовали.
7 xXeNoNx
 
04.05.18
00:16
(5) Вы просто не умеете их готовить.... или умеете
8 xXeNoNx
 
04.05.18
00:21
а как вам "*" в запросе?
а как вам использование менеджерВременныхТаблиц?
функция ОтобратьТаблицуПоСотруднику - отрабатывает в холостую, результат нигде не сохраняется
9 xXeNoNx
 
04.05.18
00:27
Да и вообще &ТаблицаДляОтбора - плохая идея, правда не помню почему