Имя: Пароль:
1C
1C 7.7
v7: Отбор по виду документа в запросе 7.7 ?
,
0 freelog
 
11.02.12
02:10
Люди добрые, подскажите каким образом можно реализовать отбор движений по оборотному регистру только по одному конкретному виду документа в запросе? Заранее премного благодарен.
1 NS
 
11.02.12
02:16
Условие (док.вид()=твойвид);
А лучше рекцизит добавить в регистр, и по нему фильтровать.
2 freelog
 
11.02.12
02:23
Ошибка: Значение не представляет агрегатный объект (Вид)
Конфигурацию изменять нельзя, надо каким-то образом изменить сам запрос, чтобы он правильно фильтровал данные.
3 NS
 
11.02.12
02:26
(2) таойвид="Реализация";
   ....
   Док=регистр.продажи.текущийдокумент;
   Условие (док.вид()=твойвид);
   ....
Может ты вид() без скобок написал?
4 Злопчинский
 
11.02.12
02:28
(1) ну это же н адо тщательно думать заранее - на этапе проектирвоания ивыбора схем и методов - у нас в 1снегах - этим кто-то реально озабачивается..?
5 freelog
 
11.02.12
02:31
Злопчинский, причем тут этапы проектирования? Есть конкретная задача в конкретный момент времени и надо её решить.
А если интересует подробнее, так я конфигурацию не проектировал, мне надо всего лишь грамотно написать отчет под то, что есть сейчас.
6 freelog
 
11.02.12
02:35
(3) я, конечно, дико извиняюсь...но ты сам пробовал такую конструкцию применять в запросе? Ошибку выдает!
7 Злопчинский
 
11.02.12
02:36
|Условие(МояФункция(Запрос.Док)=1)

//
Функция МояФункция(ТипаДок)
 Если ТипаДок.Вид()<>"Реализация"
 тогда
    возврат 0;
 КонецЕсли;
 Возврат 1;
КонецФункции
8 NS
 
11.02.12
02:55
(6) Текст своего запроса приведи.
Уже скоро 15 лет как такие заплатки леплю.
9 NS
 
11.02.12
02:56
(7) Что за бред?
Это чтоб еще раз в 10 тормоза усилить?
Правильный вариант в (1)
10 freelog
 
11.02.12
03:04
фуф...получилось
выдавало ерунду, потому что было несколько регистров в запросе, а текущий документ анализировался только по одному регистру
было
   |Период с ДатаНачала по ДатаКонца;
   |Номенклатура = Регистр.Продажи.       Номенклатура,
   |               Регистр.ОстаткиТМЦ.    Номенклатура,
   |               Регистр.ПартииОтданные.Номенклатура;
   |ТекДок     = Регистр.Продажи.      ТекущийДокумент,

стало

   |Период с ДатаНачала по ДатаКонца;
   |Номенклатура = Регистр.Продажи.       Номенклатура,
   |               Регистр.ОстаткиТМЦ.    Номенклатура,
   |               Регистр.ПартииОтданные.Номенклатура;
   |ТекДок         = Регистр.Продажи.      ТекущийДокумент,
   |              Регистр.ОстаткиТМЦ.    ТекущийДокумент,
   |              Регистр.ПартииОтданные.ТекущийДокумент;

ну и само собой

   |Условие(ТекДок.Вид()<>ИсключаемыйВидДокумента);


всем огромное спасибо! Вы все были правы, друзья!
11 sapphire
 
11.02.12
04:35
(0) Прямым запросом проще простого:
в таблице 1sjourn хранятся не только id типов но  и флаги движения по регистрам.
Стало быть искомый запрос будет выглядеть как селект из 1sjourn с ноулоком и ноукаунтом по id вида документа и имени таблицы регистра.
12 Balabass
 
11.02.12
04:44
Запросы в 1с 7.7 для меня были, есть и буду загадкой.
Сколько не пытался научиться их писать - ни разу не получилось)))
13 sapphire
 
11.02.12
05:02
(12) 1С++ Вам в помощь коли Вы разумеете вообще в  запросах к каким либо БД, ИМХО.
14 sapphire
 
11.02.12
05:03
(12) www.1cpp.ru
15 Balabass
 
11.02.12
05:04
(13) ОХ...не разумею.
16 sapphire
 
11.02.12
05:11
(15) А зря, батенька, зело полезно и занятно в свете снеговика :))
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn