Имя: Пароль:
1C
1C 7.7
v7: Работа с запросом
0 SeeWorld
 
30.09.12
13:10
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"
|Период с '09.04.12' по '09.05.12';
|ДокРеал = Документ.РеализацияРозница.ТекущийДокумент;
|ДокПерТМЦ = Документ.Реализация.ТекущийДокумент;
|Группировка ДокРеал;
|Группировка ДокПерТМЦ
|"
;
Пока Запрос.Группировка("ДокРеал") = 1 Цикл
Пока Запрос.Группировка("ДокПерТМЦ ") = 1 Цикл
КонецЦикла;
КонецЦикла;
Почему не срабатывает второй цикл? Чет не пойму как работает запрос.
1 SeeWorld
 
30.09.12
13:11
Группировка ДокПерТМЦ;
2 SeeWorld
 
30.09.12
13:12
Помогите в понимании работы запроса.
3 SeeWorld
 
30.09.12
13:14
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"
|Период с '09.04.12' по '09.05.12';
|ДокРеал = Документ.РеализацияРозница.ТекущийДокумент;
|ДокПерТМЦ = Документ.ПеремещениеТМЦ.ТекущийДокумент;
|Группировка ДокРеал;
|Группировка ДокПерТМЦ
|"
;
Пока Запрос.Группировка("ДокРеал") = 1 Цикл
Пока Запрос.Группировка("ДокПерТМЦ ") = 1 Цикл
КонецЦикла;
КонецЦикла;

Почему не срабатывает второй цикл? Чет не пойму как работает запрос.
4 dangerouscoder
 
30.09.12
13:24
(3) Зачем 2 дока? делай по регистру
5 SeeWorld
 
30.09.12
13:27
Перем  Запрос;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{Запрос(Сформировать)
|Период с '09.04.12' по '09.05.12';
|ДокРеал = Документ.РеализацияРозница.ТекущийДокумент;
|ДокПерТМЦ = Документ.ПеремещениеТМЦ.ТекущийДокумент;
|Группировка ДокРеал;
|Группировка ДокПерТМЦ;
|"//ЗАПРОС
;
Запрос.Выполнить(ТекстЗапроса);
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Отчет");
Таб.ВывестиСекцию("ШапкаДок");
Пока Запрос.Группировка("ДокРеал") = 1 Цикл
   Док = глНазваниеДокументаВЖурнале(Запрос.ДокРеал);
   Цена = Запрос.ДокРеал.СуммаВзаиморасчетов;
   номер = Запрос.ДокРеал.НомерДок;
   датадок = Запрос.ДокРеал.ДатаДок;
   время = Запрос.ДокРеал.ПолучитьВремя();
   Пока Запрос.Группировка("ДокПерТМЦ") = 1 Цикл
       Если  (Запрос.ДокРеал.Автор = Запрос.ДокПерТМЦ.Автор) и (Запрос.ДокРеал.Контрагент = Запрос.ДокПерТМЦ.Контрагент) и (Запрос.ДокРеал.СуммаВзаиморасчетов = Запрос.ДокПерТМЦ.СуммаНДС) Тогда
       ТпЦен = Запрос.ДокПерТМЦ.ТипЦен;
       КонецЕсли;
   КонецЦикла;
   ОптЦен = 0;
   РознЦен = 0;
   Таб.ВывестиСекцию("СтрокаДок");
КонецЦикла;    
Таб.Показать("Отчет");
6 SeeWorld
 
30.09.12
13:28
По какому регистру именно делать?
7 SeeWorld
 
30.09.12
13:29
Там нет типа цены
8 МишКа
 
30.09.12
13:32
Пробуй одну гркппировку: Док=Документ.РеализацияРозница.ТекущийДокумент,Документ.ПеремещениеТМЦ.ТекущийДокумент
9 SeeWorld
 
30.09.12
13:35
Пробовал, выдает ошибку типа:
Цена = Запрос.ДокРеал.СуммаВзаиморасчетов;
{D:\РАБОТА\В ПРОЦЕССЕ\ЗАГОТОВКА.ERT(18)}: Поле агрегатного объекта не обнаружено (СуммаВзаиморасчетов)
10 dangerouscoder
 
30.09.12
13:37
Что за конфигурация в которой - Запрос.ДокРеал.СуммаВзаиморасчетов = Запрос.ДокПерТМЦ.СуммаНДС
11 SeeWorld
 
30.09.12
13:38
А на это не обращайте внимание)
12 SeeWorld
 
30.09.12
13:38
Мне главное, чтоб второй цикл заработал)
13 МишКа
 
30.09.12
13:38
(9) Что пробовал? Текст покажи.
14 SeeWorld
 
30.09.12
13:40
Перем  Запрос;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{Запрос(Сформировать)
|Период с '09.04.12' по '09.05.12';
|ДокРеал = Документ.РеализацияРозница.ТекущийДокумент, Документ.ПеремещениеТМЦ.ТекущийДокумент;
|Группировка ДокРеал;
|"//ЗАПРОС
;
Запрос.Выполнить(ТекстЗапроса);
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Отчет");
Таб.ВывестиСекцию("ШапкаДок");
Пока Запрос.Группировка("ДокРеал") = 1 Цикл
   Док = глНазваниеДокументаВЖурнале(Запрос.ДокРеал);
   Цена = Запрос.ДокРеал.СуммаВзаиморасчетов;
   номер = Запрос.ДокРеал.НомерДок;
   датадок = Запрос.ДокРеал.ДатаДок;
   время = Запрос.ДокРеал.ПолучитьВремя();
   Пока Запрос.Группировка("ДокРеал") = 1 Цикл
       Сообщить("Работает");
       
   КонецЦикла;
   ОптЦен = 0;
   РознЦен = 0;
   Таб.ВывестиСекцию("СтрокаДок");
КонецЦикла;    
Таб.Показать("Отчет");
15 МишКа
 
30.09.12
13:43
Значит - нет такого реквизита "СуммаВзаиморасчетов" в одном из документов.
16 МишКа
 
30.09.12
13:44
Второй цикл не нужен.
17 SeeWorld
 
30.09.12
13:46
Значит отдельно надо прописывать Док = СоздатьОбъект("Документ.ПеремещениеТМЦ.ТекущийДокумент"); и пройтись по нему?
18 SeeWorld
 
30.09.12
13:47
Документ.ПеремещениеТМЦ
19 МишКа
 
30.09.12
13:49
Не знаю. Зависит от того, что тебе нужно.
20 SeeWorld
 
30.09.12
13:53
Мне нужно получить тип цены по которому продали товар, а вытащить тип цены можно с документа "ПеремещениеТМЦ".
21 SeeWorld
 
30.09.12
13:54
или я что-то перепутал
22 МишКа
 
30.09.12
13:54
Тогда тебе нужно 2 запроса.
23 МишКа
 
30.09.12
13:55
(21) Наверняка перепутал. Зачем брать цену из документа?
24 SeeWorld
 
30.09.12
13:55
А откуда брать?
25 МишКа
 
30.09.12
13:56
Зависит от того, зачем брать.
26 МишКа
 
30.09.12
13:57
Что в реализации цены нет?
27 SeeWorld
 
30.09.12
13:57
Нужно узнать по какому типу цены продали товар.
28 МишКа
 
30.09.12
13:59
А если один товар поступал по нескольким типам?
29 SeeWorld
 
30.09.12
14:00
Продать могли только по оптовой или розничной цене.
30 SeeWorld
 
30.09.12
14:00
мы товар продаем
31 SeeWorld
 
30.09.12
14:02
В реализациироз цены нет(
32 МишКа
 
30.09.12
14:03
Если брать тип цен из документа Перемещение, может быть ситуация когда один и тот же товар с разными типами цен.
33 SeeWorld
 
30.09.12
14:06
А зачем там тогда стоит тип цены на сумму товаров)
34 SeeWorld
 
30.09.12
14:07
я просто стал анализировать журнал документов и заметил что сумма док реалроз совпадает с док перемТМЦ.
35 МишКа
 
30.09.12
14:12
(34) И что?
36 SeeWorld
 
30.09.12
14:13
Вот и решил, что от туда можно достать тип цены)
37 SeeWorld
 
30.09.12
14:13
Откуда еще достать не знаю(
38 dangerouscoder
 
30.09.12
14:13
См регистры? или их нет?
39 SeeWorld
 
30.09.12
14:15
Есть, но там нет реквизита тип цены.
40 МишКа
 
30.09.12
14:16
Достать можно. Непонятно только - зачем.
41 SeeWorld
 
30.09.12
14:17
Узнать надо сколько менеджер продал товара по оптовой цене и по розничной цене
42 SeeWorld
 
30.09.12
14:19
точнее на какую сумму
43 МишКа
 
30.09.12
14:20
(41) Есть еще нормальный документ "Реализация". Там тип цен присутствует.
Уверен, что используется документ РеализацияРозница?
44 SeeWorld
 
30.09.12
14:22
Используются два документа Реализация и РеализацияРозница)
45 МишКа
 
30.09.12
14:24
РеализацияРозница - продажа из магазина. Какой там менеджер? Там кассир.
46 SeeWorld
 
30.09.12
14:25
Видимо и по кассе тоже нужно)
47 МишКа
 
30.09.12
14:26
И что? Магазин может торговать по оптовой цене?
48 SeeWorld
 
30.09.12
14:27
У нас да)
49 SeeWorld
 
30.09.12
14:34
У нас через кассу проходят и оптовики и покупатели)
50 МишКа
 
30.09.12
14:35
Вот смотри.
Допустим, у тебя 2 документа перемещения.
В одном 10 шт. товара по оптовой цене, в другом 10 шт. товара по розничной цене.
Продано 15 шт. Как будешь разносить сумму продаж?
51 МишКа
 
30.09.12
14:36
(49) Тогда тип цен должен быть в документе РеализацияРозница.
52 SeeWorld
 
23.10.12
15:46
Скажите пожалуйста, можно ли через номенклатуру запроса, получить тип цену одного наименования номенклатуры?
53 Mikeware
 
23.10.12
15:54
пятнично....
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан