Имя: Пароль:
1C
1C 7.7
v7: Черный запрос по регистру. Выбрать Товар и соотв. Документы
,
0 aka AMIGO
 
22.09.11
09:27
Задача осложнилась тем, что в одном документе может быть несколько строк с одним и тем-же товаром. Не знаю, откуда эта традиция есть пошла, но разгребать это надо мне..
Работа проблемной части Запроса немудрящая: Выбирает по группировке один Товар и соответствующий ему один(!) документ.. остальные строки документа как-бы не видит, хотя в движениях они есть, это проверено.

       ТекстЗапроса =
       "//{{ЗАПРОС(ПоПриходу)
       |Период с Дата1 по Дата2;
       |Товар = Регистр.ОстаткиТоваров.Товар;
       |Док = Регистр.ОстаткиТоваров.ТекущийДокумент;
       |Сум = Регистр.ОстаткиТоваров.ВалютнаяСтоимость;
       |Кол = Регистр.ОстаткиТоваров.ОстатокТовара;
       |Функция СумПриход = Приход(Сум);
       |Группировка Товар Без Групп;
       |Группировка Док;
       |"//}}ЗАПРОС
       ;
       //...
       Пока Запрос.Группировка("Товар")=1 Цикл
           //...
           Пока Запрос.Группировка("Док")=1 Цикл
       //... ...
Хотелось-бы узнать, есть-ли способ выбрать все строки одного документа с этим товаром?
ЗЫ. могу привести скрины отчетов с выборкой движений регистра: ущербного и полного (другого)
1 Рэйв
 
22.09.11
09:29
он тебе их сворачивает.
Сделай так


Пока Запрос.Группировка("Док")=1 Цикл          
   //...
        Пока Запрос.Группировка("Товар")=1 Цикл
2 IamAlexy
 
22.09.11
09:29
фу как неполиткорректно.. черный запрос..
3 Рэйв
 
22.09.11
09:30
хотя и в этом случае свернет:=) Это надо номер строки присобачивать
4 Темный Эльф
 
22.09.11
09:32
(0)Есть предопределенная группировка СтрокаДокумента. Но у тебя запрос к регистру - ПривязыватьСтроку есть в модуле?
5 aka AMIGO
 
22.09.11
09:35
(1) логично.. попробую. Только не сворачивает ОНО, зараза.. одну строку из документа выводит, а там их 4 штуки..

(2) "Темный" запрос - так пойдет? :)

(3), (4) знаю про строку.. не запоминаются строки, шеф пока против, я предлагал, но он говорит, и так БД огромная, и ворочается медленно..
6 Ёпрст
 
22.09.11
09:36
(0) чего курим ?
Какие нах строки документа при просмотре движений регистра ?
7 Ёпрст
 
22.09.11
09:36
+6 в регистр могут записать что угодно и как угодно.
8 aka AMIGO
 
22.09.11
09:37
(6) - читай посты (3) и (4)

(7) и это я знаю. но надо иметь дело с тем, что уже написано.
9 Ёпрст
 
22.09.11
09:40
(8) и чего там читать ?
:)))))))))))))))))))))))))))))))))
10 G-Re
 
22.09.11
09:42
Мне так кажется, что если в регистре этих данных нет, а привязывать строку НИЗЗЯ, то при обработке запроса придется сканировать строки текущего документа на наличие в них товара.
Это долго и некошерно, лучше привязывать строки при формировании движений регистра.
11 Mikeware
 
22.09.11
09:44
А сделать "белый запрос" - религия не позволяет?
И быстрее, и возможностей побольше
12 aka AMIGO
 
22.09.11
09:46
(10) в том-то и дело, что в регистре эти данные есть.. Запрос их не выбирает
Вот скрин, два участка отчета, в первом - по запросу, во втором - простая выборка из движений регистра
http://s014.radikal.ru/i328/1109/78/a66dfc81d2cf.jpg

(11) видимо, переделаю на элементарную выборку движений..
13 Ёпрст
 
22.09.11
09:51
(12) открой движения этого регистра в журнале документов.
НомерСтроки не пустой   в регистре ?
Если пустой, то ничего не сделаешь.
14 aka AMIGO
 
22.09.11
09:52
а здесь - ТЧ документа.
наглядно о причине разных строк: разные ГТД товара
http://i073.radikal.ru/1109/fb/702514b6c865.jpg
15 aka AMIGO
 
22.09.11
09:53
(13) движения есть, и видны, как полагается..всё 1с-ина сделала правильно..
дело в запросе..

ладушки, мужики, спасибо за внимание, побежал переделывать код..
16 xXeNoNx
 
22.09.11
09:54
Главное дать выговорится)))
17 aka AMIGO
 
22.09.11
09:55
(13) номера строки нет, в модулях документа не предусмотрено..

(16) это - завтра :)
18 G-Re
 
22.09.11
09:58
(12) Если тебе нужно Итого, то есть в ответе одна строка с товаром, попробуй вставить Функция  =НачОст(Сум). А если нужно с точностью до движений, попробуй +... Группировка Сум.
19 aka AMIGO
 
22.09.11
10:02
(18) сейчас попробую с функцией.. может и прокатить..
20 aka AMIGO
 
22.09.11
10:04
(18) нет, не собирает..
21 G-Re
 
22.09.11
10:18
(20) Совсем плохо, тогда без запроса придется...
22 G-Re
 
22.09.11
10:34
(20) Попробуй поиграться с этим, указывая разные варианты.
http://webfile.ru/5559983
23 1Сергей
 
22.09.11
10:38
я извиняюсь, а количество ты из запроса Как вытягиваешь? типа, Запрос.Кол? так не пойдёт. Надо функцию
24 aka AMIGO
 
22.09.11
10:49
(22) пароля нет :)

(23) да, это моя промашка..
25 G-Re
 
22.09.11
10:52
(24) А я что, его запаролил на открытие?
Ну сними, или просто sabaka, наверное.
26 aka AMIGO
 
22.09.11
11:00
(23) с функцией увы, та-же картина.. :((

(25) спасибо, знакомлюсь..
27 Ёпрст
 
22.09.11
11:05
select
  $Рег.ВалютнаяСтоимость Сумма
 ,$Рег.Товар [Товар $Справочник.Товары]
From $Регистр.ОстаткиТоваров Рег (nolock)
Where рег.date_time_iddoc between :НачДата and :КонДата~

делов то..