Имя: Пароль:
1C
1C 7.7
v7: Помогите с запросом
,
0 Aragan
 
10.09.12
14:16
Функция лСуммаВнеш(товар,Ед,Количество)
   Коэфф = Ед.Коэффициент;
   Рез = ?(Коэфф<>0,Количество/Коэфф,0);
   Возврат Рез;
КонецФункции


ТекстЗапроса =    "//{{ЗАПРОС(ПоОстаткам)
|Период с ДатаНачала по ДатаКонца;
|Фирма = Регистр.ОстаткиТоваров.Фирма;
|Номенклатура = Регистр.ОстаткиТоваров.Товар;
|Ед = Регистр.ОстаткиТоваров.Единица;        
|Склад = Регистр.ОстаткиТоваров.Склад;
|Количество = Регистр.ОстаткиТоваров.ОстатокТовара;
|Функция КолвоНачОст1 = НачОст(Количество);
|Функция КолвоПриход1 = Приход(Количество);
|Функция КолвоРасход1 = Расход(Количество);
|Функция КолвоКонОст1 = КонОст(Количество);

|Функция КолвоНачОст = Сумма(лСуммаВнеш(Номенклатура,Ед,Запрос.КолвоНачОст1));
|Функция КолвоПриход = Сумма(лСуммаВнеш(Номенклатура,Ед,Запрос.КолвоПриход1));
|Функция КолвоРасход = Сумма(лСуммаВнеш(Номенклатура,Ед,Запрос.КолвоРасход1));
|Функция КолвоКонОст = Сумма(лСуммаВнеш(Номенклатура,Ед,Запрос.КолвоКонОст1));
|"//}}ЗАПРОС
;

Возвращает что то непонятное... как бы в запросе пересчитать количество в базовую единицу?
1 Aragan
 
10.09.12
14:19
НачОст всегда равен КонОст... даже если движения были
2 Ёпрст
 
10.09.12
14:20
Ед = Регистр.ОстаткиТоваров.Единица; //х...се, в регистр еденицу измерения запихали ?
3 Voronve
 
10.09.12
14:21
(0) Пересчитывай при обходе результатов
4 Aragan
 
10.09.12
14:21
(2) не мое творение.. честно...
5 Ёпрст
 
10.09.12
14:22
и это, и зачем номенклатуру передавать в функцию ?
6 Ёпрст
 
10.09.12
14:22
ну и бредятина - это суммирование коэффициентов
:)))
7 Classic
 
10.09.12
14:22
(5)
Наверное, что б базовую получить :)
8 Classic
 
10.09.12
14:24
(0)
Коэф = Регистр.ОстаткиТоваров.Единица.Коэффициент
Функция КолвоНачОст = Сумма(КолвоНачОст1 * Коэф)
9 Aragan
 
10.09.12
14:24
(3)Это было бы крайне не желательно... У меня еще дальше прописана группировка по периоду и достаточно сложный обход
10 Classic
 
10.09.12
14:24
ИЛИ

Функция КолвоНачОст = Сумма(НачОст(Количество)* Коэф)

Не помню уже :)
11 Ёпрст
 
10.09.12
14:24
Еденица в регистре, это что ?
Измерение или Реквизит регистра ?
12 Aragan
 
10.09.12
14:25
Измерение
13 Aragan
 
10.09.12
14:26
2(10) Я случаем не тоже самое получу?
14 Classic
 
10.09.12
14:26
(13)
Попробуй
15 Classic
 
10.09.12
14:26
Я ж не вкурсе, что у тебя в твоей внешней функции
16 Classic
 
10.09.12
14:27
У тебя в движениях вообще-то единица присутствует?
17 Voronve
 
10.09.12
14:27
(9) В клюшках вроде собственные функции в запросах можно использовать только в конструкции Условие();
18 Classic
 
10.09.12
14:28
(17)
В "когда" можно использовать
19 Ёпрст
 
10.09.12
14:31
Это.. у тя коэффициент этой единицы всегда =1..
Мот надо в Основную пересчитывать всё же ?
20 Aragan
 
10.09.12
14:32
|Функция КолвоНачОст = Сумма(НачОст(Количество)/ Коэф);
не отработала...
21 ЧеловекДуши
 
10.09.12
14:33
>>> |Функция КолвоНачОст = Сумма(лСуммаВнеш(Номенклатура,Ед,Запрос.КолвоНачОст1));
|Функция КолвоПриход = Сумма(лСуммаВнеш(Номенклатура,Ед,Запрос.КолвоПриход1));
|Функция КолвоРасход = Сумма(лСуммаВнеш(Номенклатура,Ед,Запрос.КолвоРасход1));
|Функция КолвоКонОст = Сумма(лСуммаВнеш(Номенклатура,Ед,Запрос.КолвоКонОст1));

Вот это убери из запроса, и вынеси все в Цикл.
Привыкай, это вам не SQL запросы, где все решается одним запросом :)
22 Classic
 
10.09.12
14:33
(20)
У меня деления не было

Тогда рассказывай, что у тебя в движениях в поле "единица" стоит
23 Aragan
 
10.09.12
14:34
(19) Почему это всегда 1?? В этом то и проблема, что хочу в базовую пересчитать из упаковки... чтобы получить на выходе количество и единицу с коэффициентом 1
24 Aragan
 
10.09.12
14:34
(21) Как мы когда то работали с 77??)))
25 ЧеловекДуши
 
10.09.12
14:35
(24) Как хочешь... Но все в одном, как у SQL не получится ;)
26 Aragan
 
10.09.12
14:35
Может прямым запросом попытаться.... Так не хочется весь отчет переделывать
27 ЧеловекДуши
 
10.09.12
14:36
(26)Это куда приятней и все получится :)
28 Aragan
 
10.09.12
14:37
Количество = Регистр.ОстаткиТоваров.ОстатокТовара/Регистр.ОстаткиТоваров.Единица.Коэффициент;
Функция = НачОст(Количество)

вот почему так нельзя....
29 Classic
 
10.09.12
14:37
(26)
Еще раз. У тебя в движениях заполнено поле "единица"? Чем? Какой коэффициент у нее? Почему в моем примере ты умножение на деление заменил? Что означает "не отработала"?
30 Classic
 
10.09.12
14:38
(28)
Потому что НачОст определена только для рессурсов.
31 Aragan
 
10.09.12
14:40
(29) Смысл пересчитать количество из ящ. и упаковок в шт.
32 Classic
 
10.09.12
14:41
(31)
Я в (29) не про смысл спрашивал
33 Ёпрст
 
10.09.12
14:42
А чего, в регистр пишется количество в коробках ?!
Т.е в основной единице ?
34 Aragan
 
10.09.12
14:42
1. Да заполненно
2. Коэффициент от 1 до чего угодно
3. Тупить начинаю потому что))))
35 Aragan
 
10.09.12
14:43
(33) В единице которая указана в доке
36 Aragan
 
10.09.12
14:44
на складе может быть чего-то 3 шт. 10 уп. и 15 ящ.
37 Aragan
 
10.09.12
14:45
не знаю для чего так тут было задумано
А мне хотелось бы получить одну строчку в штуках
38 Aragan
 
10.09.12
14:46
(29) к (34) Значение справочника "Единицы"
39 Ёпрст
 
10.09.12
14:47
(35) зачет.. и какой коэффициент у этой единицы ?
:)
40 Ёпрст
 
10.09.12
14:48
если что, как правило, весь учет в регистре пишут в одной единице измерения (и в лишнем измерении нет необходимости)
41 Aragan
 
10.09.12
14:48
(40) Поверь я сам в шоке
42 Aragan
 
10.09.12
14:48
Писал отчет исходя и этого
43 Aragan
 
10.09.12
14:49
а теперь получаю какое то непонятное количество чего то))
44 Ёпрст
 
10.09.12
14:49
что показывает Это ?

|Коэфф = Регистр.ОстаткиТоваров.Единица.Коэффициент; //?
45 Aragan
 
10.09.12
14:51
(44) Выдает несколько строк по одному товару с разной ед.
46 Aragan
 
10.09.12
14:51
соответственно коэф. тож разный
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн