|
v7: 1C++ Запрос с фильтром по группе не работает | ☑ | ||
---|---|---|---|---|
0
BARS_2
26.03.12
✎
14:30
|
был готовый отчет на прямом запросе с фильтровалкой по выбраному контрагенту. понадобилось сделать с фильтром и по группе в том числе. вроде бы все сделал по правильному, но на выходе получаю пустую таблицу. Что где упустил сделал не так?
добавил вот такую ветку Если ВибКон.ЭтоГруппа()=1 Тогда SQLSes.УложитьСписокОбъектов13(ВибКон, "#ФілКон"); ТекЗап = ТекЗап + " | AND ($ДокВиТ.Контрагент IN (SELECT Val FROM #ФілКон)) |"; Иначе SQLSes.УстановитьТекстовыйПараметр("ФілКон", ВибКон); ТекЗап = ТекЗап + " | AND ($ДокВиТ.Контрагент = :ФілКон) |"; КонецЕсли; |
|||
1
Mikeware
26.03.12
✎
14:35
|
Не прочитал описание
|
|||
2
FN
26.03.12
✎
14:35
|
$ДокВиТ.Контрагент - неопределенного вида?
|
|||
3
Mikeware
26.03.12
✎
14:36
|
(2) даже не в этом дело...
|
|||
4
viktor_vv
26.03.12
✎
14:40
|
SQLSes.УложитьСписокОбъектов13(ВибКон, "#ФілКон","ВидСправочникаВибКон");
|
|||
5
FN
26.03.12
✎
14:40
|
(3) ну А вдруг в "ВибКон" развернутый список :)
хотя маловероятно... |
|||
6
FN
26.03.12
✎
14:42
|
(4) путешь
Синтаксис: УложитьСписокОбъектов13(Список, ИмяТаблицы) |
|||
7
FN
26.03.12
✎
14:42
|
(6) *путаешь
|
|||
8
viktor_vv
26.03.12
✎
14:46
|
(6) А, может быть. Таки да. А то я таким не пользовался, думал по аналогии.
|
|||
9
FN
26.03.12
✎
14:47
|
(0) замени
SQLSes.УложитьСписокОбъектов13(ВибКон, "#ФілКон"); на SQLSes.УложитьСписокОбъектов(ВибКон, "#ФілКон","Контрагенты"); |
|||
10
BARS_2
26.03.12
✎
14:54
|
(2)Реквизит определенного вида - справочник.контрагенты
(5) виб кон в данном случае - папка справочника (9) сейчас попробую. хотя не ясна логика |
|||
11
BARS_2
26.03.12
✎
14:57
|
(9) заработало. а объяснение можно? мне непонятна разница в тоговых временных таблицах #ФілКон
|
|||
12
viktor_vv
26.03.12
✎
14:57
|
Так логика простая.
strRefKinde (строка): вид справочника для иерархического включения элементов или вид плана счетов для иерархического включения счетов; |
|||
13
viktor_vv
26.03.12
✎
14:58
|
УложитьСписокбъектов13 получаешь таблицу с колокной типа строка 13 знаков (ВидСправочника + ИдентификаторЭлемента).
УложитьСписокбъектов получаешь таблицу с колокной типа строка 9 знаков (ИдентификаторЭлемента). |
|||
14
BARS_2
26.03.12
✎
15:08
|
(13) спасибо. в документашке на этом как-то незаострено.
|
|||
15
BARS_2
26.03.12
✎
15:11
|
правда может то у меня документашка такая. простая влет
|
|||
16
МастерВопросов
26.03.12
✎
15:20
|
(11) если в "уложитьсписок" указан третьим парметром Идентификатор справочника, то учитывается его иерархия, если не указан, то ищется просто вхождение в список, указанный в первом параметре см.(9)
|
|||
17
Mikeware
26.03.12
✎
15:59
|
(14) в документации как раз описано.
(16) и это справедливо только для УложитьСписокОбъектов, но не для УложитьСписокОбъектов13... |
|||
18
МастерВопросов
27.03.12
✎
05:39
|
(14) Добрался до компа, цитирую мануал ("совершенно бедводмедно, т.е. даром"(с)):
УложитьСписокОбъектов(<?>,<?>,<?>) Синтаксис: PutObjectList(ObjList, strTableName, strRefKinde) Назначение: сохраняет список объектов во временной таблице MS SQL. Идентификаторы объектов из списка ObjList сохраняются во временной таблице strTableName. Таблица имеет единственное поле val char(9). Имя таблицы должно начинаться с символа «#». Если strRefKinde идентификатор иерархического справочника, то таблица будет содержать элементы иерархически принадлежащие группам переданным в списке. (Подобно оператору «в» стандартного языка запросов 1С.) Параметры: - ObjList (СписокЗначений/АгрегатныйТип): список для сохранения или элемент справочника, группа справочника, документ и т.п.; - strTableName (строка): имя таблицы; - strRefKinde (строка): вид справочника для иерархического включения элементов или вид плана счетов для иерархического включения счетов; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |