|
v7: Использование глобального модуля в запросе | ☑ | ||
---|---|---|---|---|
0
bananan
04.02.13
✎
18:35
|
В рабочем коде есть такая строка:
ИтКг = ИтКг + (глКгКоэф(ТабТМЦ.ТМЦ)*ТабТМЦ.Кво); таким образом узнаем вес в килограмах (в данном случае всех товаров по расходной накладной). Как это сделать в запросе запрос такой: ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |ТекДок = Регистр.Обороты.ТекущийДокумент; |Агент=Регистр.Обороты.Агент; |Клиент=Регистр.Обороты.Клиент; |Склад=Регистр.Обороты.Склад; |ТМЦ = Регистр.Обороты.ТМЦ; |Витрина = Регистр.Обороты.ТМЦ.Цена1; |Категория4 = Регистр.Обороты.ТМЦ.Цена7; |Дохо=Регистр.Обороты.ДоходГрн; |РасходКво = Регистр.Обороты.РасходКво; |РасходГрн = Регистр.Обороты.РасходГрн; |Функция РасходКвоСумма = Сумма(РасходКво); |Функция РасходГрнСумма = Сумма(РасходГрн); |"+доходтекст+" |Функция РасходГрнСуммаВ = Сумма(РасходКво*1.2*Витрина); |"; Для н=1 По Группировать.РазмерСписка() Цикл Если Группировать.Пометка(н)=0 Тогда продолжить; Конецесли; ТекстЗапроса = ТекстЗапроса+" |Группировка "+Группировать.ПолучитьЗначение(н)+ " "+БезГруп+";"; Конеццикла; Если (Динамик = 1) и (Диаграмм = 1) Тогда ТекстЗапроса = ТекстЗапроса+" |Группировка "+Период.ПолучитьЗначение(Период.ТекущаяСтрока())+ ";"; Конецесли; ТекстЗапроса = ТекстЗапроса+" |Условие(Агент в ВыбАгент); |Условие(Клиент в ВыбКлиент); |Условие(Склад в ВыбСклад); |Условие(ТМЦ в ВыбТМЦ); |"//}}ЗАПРОС У кого есть какие идеи? |
|||
1
bananan
04.02.13
✎
18:43
|
+ ко всему прочему текущий запрос работает с регистром, а в регистре количества нет!
|
|||
2
zladenuw
04.02.13
✎
18:51
|
Функция ПроверитьПроизводителя(Номенклатура)
Спр.ИспользоватьВладельца(Номенклатура); Возврат Спр.НайтиПоРеквизиту("ВидСвойства",ВыбВидСв,0); КонецФункции ......... |Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура; |Количество = Регистр.ОстаткиТМЦ.Количество; |Функция КоличествоКонОст = КонОст(Количество); |Группировка Номенклатура; |Условие(ПроверитьПроизводителя(Номенклатура)=1); ........ Спр = СоздатьОбъект("СвойстваНоменклатуры"); копипаст. Вопрос по 1С7.7. Запрос.Товарисчи помогите... |
|||
3
Boroda
04.02.13
✎
18:54
|
(1)РасходКво = Регистр.Обороты.РасходКво;
А это не количество в записи по регистру? |
|||
4
bananan
04.02.13
✎
19:03
|
строка ИтКг = ИтКг + (глКгКоэф(ТабТМЦ.ТМЦ)*ТабТМЦ.Кво); взята из документа расходная накладная
|
|||
5
bananan
04.02.13
✎
19:04
|
(2) Это ты к чему?
|
|||
6
КонецЦикла
04.02.13
✎
19:14
|
(1) Оригинально
Делай перебор документов, будь мужиком! |
|||
7
bananan
04.02.13
✎
19:19
|
(6) Тоесть ты предлагаешь из-за одного пункта (вес) написать по новой запрос?
|
|||
8
this is the end
05.02.13
✎
01:46
|
я бы предложил - не запрос и всякое тм - а просто математику - уровня ... допустим 9 класса СССР)
|
|||
9
Ёпрст
05.02.13
✎
08:56
|
(0)
|Функция РасходГрнСуммаВ = Сумма(Запрос.РасходКво*1.2*Витрина); |
|||
10
bananan
05.02.13
✎
10:55
|
(9) может я чего-то не допонимаю, но мне нужно узнать количество килограм; причем здесь деньги?
|
|||
11
Ёпрст
05.02.13
✎
11:06
|
(10)
|Функция Кг = Сумма(глКгКоэф(ТМЦ)*Запрос.РасходКво); |
|||
12
bananan
05.02.13
✎
11:12
|
(11) Совсем доругое дело; спасибо!
|
|||
13
bananan
05.02.13
✎
12:05
|
+12 еще небольшой вопрос теперь у меня есть по каждой строке количество килограм, а как эти килограмы просуммировать?
|
|||
14
Ёпрст
05.02.13
✎
12:06
|
у тебя и так по группировкам есть итоговые количество килограммов.
|
|||
15
bananan
05.02.13
✎
12:09
|
(14) Не понрял... А как к этому количеству достучаться :( ?
|
|||
16
Ёпрст
05.02.13
✎
12:13
|
(15)
Запрос.Выполнить(ТекстЗапроса); ........... Пока.Запрос.Группировка(1)=1 Цикл сообщить(Запрос.Кг); ............... Пока Запрос.Группировка(НужнаяГруппировка)=1 Цикл сообщить(Запрос.Кг); .............. |
|||
17
bananan
05.02.13
✎
12:15
|
(16) сорри , опять торможу :)
|
|||
18
bananan
06.02.13
✎
17:19
|
+17
Что-то неправильно запрос килограммы считает... текст запроса такой: //{{ЗАПРОС(Сформировать) Период с ВыбНачПериода по ВыбКонПериода; ТекДок = Регистр.Обороты.ТекущийДокумент; Агент=Регистр.Обороты.Агент; Клиент=Регистр.Обороты.Клиент; Склад=Регистр.Обороты.Склад; ТМЦ = Регистр.Обороты.ТМЦ; Витрина = Регистр.Обороты.ТМЦ.Цена1; Категория4 = Регистр.Обороты.ТМЦ.Цена7; Дохо=Регистр.Обороты.ДоходГрн; РасходКво = Регистр.Обороты.РасходКво; РасходГрн = Регистр.Обороты.РасходГрн; Функция РасходКвоСумма = Сумма(РасходКво); Функция РасходГрнСумма = Сумма(РасходГрн); Функция Доход = Сумма(Дохо); Функция ДоходВ = Сумма(РасходКво*1.2*Витрина-РасходГрн+Дохо); Функция РасходГрнСуммаВ = Сумма(РасходКво*1.2*Витрина); Функция Кг = Сумма(глКгКоэф(ТМЦ)*Запрос.РасходКво); Группировка ТекДок ; Условие(Агент в ВыбАгент); Условие(Клиент в ВыбКлиент); Условие(Склад в ВыбСклад); Условие(ТМЦ в ВыбТМЦ); Выбераю период и по накладных смотрю запрос по данной накладной выдает вес 10 кг, а если открыть эту накладную то там вес 10,79 Если взять модуль документа то там вес считается так: ИтКг = ИтКг + (глКгКоэф(ТабТМЦ.ТМЦ)*ТабТМЦ.Кво); вроде так же и в запросе... может округление там не такое?? |
|||
19
bananan
06.02.13
✎
17:40
|
Ау! кто-нибудь здесь есть и может помочь?
|
|||
20
bananan
06.02.13
✎
17:44
|
Глюк здесь не в округлении, вот в одной накладной вес (по накладлной) 14.14 кг; запрос выдает 15 кг
|
|||
21
Ёпрст
06.02.13
✎
17:46
|
(20)
|Функция Кг = Сумма(РасходГрн-РасходГрн+глКгКоэф(ТМЦ)*Запрос.РасходКво); |
|||
22
bananan
06.02.13
✎
17:46
|
+(20) лругая накладная по накладной вес 54.9 кг, запрос выдает 53 кг!
|
|||
23
bananan
06.02.13
✎
17:47
|
(21) попробую так
|
|||
24
bananan
06.02.13
✎
17:48
|
+(23) но, не понял откуда такая формула?
|
|||
25
bananan
06.02.13
✎
17:50
|
проверил теперь запрос выдает такое же количество кг как и документ, Ёпрст, почему формула такая??
|
|||
26
Ёпрст
06.02.13
✎
17:50
|
(24)проверь сперва, вопросы потом
|
|||
27
Ёпрст
06.02.13
✎
17:52
|
(25) Функция при расчете точности в запросе бер1ёт её из переменной в аргументе функции. У тебя там нет переменной - точность 0. Введя переменную РасходГрн, точность вычисления функции будет как у РасходГрн..
|
|||
28
bananan
06.02.13
✎
17:58
|
(27) Спасибо, постараюсь запомнить эту тонкость
|
|||
29
bananan
06.02.13
✎
18:49
|
непонятка вот кусок кода:
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; Сообщить(ТекстЗапроса); ккг = Запрос.кг; тоесь Запрос.кг уже должно быть доступно? выдает ошибку: Поле агрегатного объекта не обнаружено (кг) В чем лажа? |
|||
30
Classic
06.02.13
✎
19:16
|
(27)
Век живи - век учись |
|||
31
sapphire
06.02.13
✎
19:31
|
(29) Выборка не спозиционирована
|
|||
32
Cthulhu
06.02.13
✎
19:52
|
(31): спозиционирована. должно дать итоговое значение.
|
|||
33
sapphire
06.02.13
✎
19:57
|
(32) Мож туплю, но в функции этой странная переменная запрос.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |