Имя: Пароль:
1C
1C 7.7
v7: Поиск документа запросом (конфигурация ТиС 9.2)
0 kupreeff
 
19.09.14
17:14
Есть функция:
Функция глНайтиДокумент(ВхНомер,ВхДата,Контрагент)
ТекстЗапроса="
|Док=Документ.ПоступлениеТМЦ.ТекущийДокумент;
|Контрагент1=Документ.ПоступлениеТМЦ.Контрагент;
|ВхНомер1=Документ.ПоступлениеТМЦ.НомерДокВходящий;
|ВхДата1=Документ.ПоступлениеТМЦ.ДатаДокВходящий;
|Условие(СокрЛП(ВхНомер1)=СокрЛП(ВхНомер));
|Условие(СокрЛП(ВхДата1)=СокрЛП(ВхДата));
|Условие(Контрагент1=Контрагент);
|Функция кол=Счётчик(Док);
|Группировка Док;";
Запрос=СоздатьОбъект("Запрос");
если Запрос.Выполнить(ТекстЗапроса)=1 Тогда
    //ТЗ=СоздатьОбъект("ТаблицаЗначений");
    //Запрос.Выгрузить(ТЗ);
    //ТЗ.ВыбратьСтроку();
    Если Запрос.группировка(1)=1 Тогда
        Возврат Запрос.Док;
    Иначе
        Возврат ""
    Конецесли;
    
Конецесли;
Возврат "";
КонецФункции
В функцию передаю входящие номер, дату и контрагента поступления, которое точно есть в базе. Функция возвращает "". Где туплю? Спасибо.
1 ДенисЧ
 
19.09.14
17:17
|Условие(СокрЛП(ВхДата1)=СокрЛП(ВхДата));


зачем?
2 Ёпрст
 
гуру
19.09.14
17:17
дату к строке приводить - моветон
3 kupreeff
 
19.09.14
17:17
Ищу по сочетанию Входящий номер+Входящая дата +Контрагент имеющуюся накладную в базе
4 kupreeff
 
19.09.14
17:18
(1),(2) - а, уловил
5 kupreeff
 
19.09.14
17:19
Поправил, сделал  |Условие(ВхДата1=ВхДата); результат тот же (
6 kupreeff
 
19.09.14
17:19
а, приведу ка к дате...
7 пипец
 
19.09.14
17:20
ахринеть
Зы а запросом по виду документа за нужную дату - Запрос.Выгрузить(ТЗ,0,0) и в ТЗ искать ? не ?
8 Ёпрст
 
гуру
19.09.14
17:22
для начала, выкинуть вообще все условия, окромя клиентоса, потом показать, как ты передаешь в эту функцию самого клиентоса.
Проблема в нём, 98%

ЗЫ: видать передаешь переменную с типом, заместо ссылки
9 kupreeff
 
19.09.14
17:24
не, никак..
ВхДата_=Дата(ВхДата);
...
|Условие(ВхДата1=ВхДата_);
тоже не помогло
(8) передаю ссылку на элемент, посмотрел в отладчике
10 kupreeff
 
19.09.14
17:24
Выкинул условия по совету (8), хм...всеравно пусто...
11 lamme
 
19.09.14
17:25
убери все условия
проверь - есть что-то или нет в результате запроса.

Потом добавь одно условие. Опять проверь
и тд

и так поймаешь то условие - которое не срабатывает.

Дальше - надо смотреть что за условие, что на входе и с чем сравнивает
12 lamme
 
19.09.14
17:28
и я б Функцию счетчик убрал бы ...
имхо - лишняя
группировка по документу есть - этого хватит
13 kupreeff
 
19.09.14
17:29
Все, разобрался. Всем спасибо.
Нужно было явно написать Обрабатывать НеПомеченныеНаУдаление;ОбрабатыватьДокументы Все; (искомые документ был не проведен, видимо по умолчанию запрос ищет проведенные, как-то сколько работаю с 7-ой не задумывался...)
14 Ёпрст
 
гуру
19.09.14
17:31
(13) да, так и есть, по-умолчанию, только проведенные
15 КонецЦикла
 
19.09.14
17:38
Если это часто юзается - лучше в графу отбора влепить номер и на всякий случай сравнивать другие параметры в переборе. Быстрее будет...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан