![]() |
|
1С:Предприятие
:: 1С:Предприятие 7.7 и ранее
|
|
| ||
teploset 01.03.21 - 16:23 | Помогите, пожалуйста, перевести запрос с человеческого на 1эсовский 7.7. Этот рабочий на тестовой MySQL БД:
SELECT РУ.Док, РУ.РУСумма, SUM(ИК.ИККол * ИК.ИКЦена) ИКСумма FROM РУ LEFT JOIN ИК ON ДокРУЗакНар = ДокИКЗакНар GROUP BY РУ.Док Есть два документа: РеализацияУслуг (РУ) и ИнвентаризационнаяКарточка (ИК), у которых есть реквизит ЗаказНаряд. У РУ - шапки, у ИК - табличной части (может повторяться несколько раз в одном доке). Задача: выбрать док-ты РУ за заданный период, из них выбрать Сумму (реквизит шапки), а также посчитать ИКСумма = Сумма(ИККол*ИКЦена) (реквизиты табличной части) из док-в ИК у которых одинаковый реквизит ЗаказНаряд. Написал через конструктор запросов так, но видимо где-то (где?!) ошибся, выдает пустой результат: Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(ЗапросПрибыль1) |Период с ВыбНачПериода по ВыбКонПериода; |ОбрабатыватьДокументы все; |Обрабатывать НеПомеченныеНаУдаление; |ДокРУ = Документ.РеализацияУслуг.ТекущийДокумент; |ДокРУЗакНар = Документ.РеализацияУслуг.ЗаказНаряд; |ДокИКЗакНар = Документ.ИнвентаризационнаяКарточка.ЗакНаряд; |ИККол = Документ.ИнвентаризационнаяКарточка.Количество; |ИКЦена = Документ.ИнвентаризационнаяКарточка.ФактЦенаЗаЕд; |РУСумма = Документ.РеализацияУслуг.Сумма; |Функция ИКСумма = Сумма(ИККол*ИКЦена); |Группировка ДокРУ; |Условие(ДокРУЗакНар = ДокИКЗакНар); |"//}}ЗАПРОС ; | ||
Андрей_Андреич 1 - 01.03.21 - 16:34 | Группировка документ | ||
Андрей_Андреич 2 - 01.03.21 - 16:35 | поспешил извиняюсь | ||
Djelf 3 - 01.03.21 - 16:39 | Чавось ^^ Ты написал: запрос на "MySQL БД:".1С 7.7 умеет работать с MySQL, но не умеет делать чёрные запросы к MySQL. А если это MsSql, то "FROM РУ" это не обращение к таблице 1С, а обращение к вьюшке РУ, а там может быть наворочено все что угодно. | ||
teploset 4 - 01.03.21 - 16:41 | (3) Да нет, в MySQL просто создал две таблички ИК и РУ для тестов запроса на истинном языке SQL :) | ||
teploset 5 - 01.03.21 - 16:44 | Если убрать  //|Условие(ДокРУЗакНар = ДокИКЗакНар); то выводит 2 имеющихся РУ с их суммой, но в столбце ИКСумма пусто... где-то тут собака зарылась | ||
Андрей_Андреич 6 - 01.03.21 - 16:48 | |РеализацияУслуг = Документ.РеализацияУслуг.ТекущийДокумент;
|ЗаказНаряд = Документ.РеализацияУслуг.ЗаказНаряд, Документ.ИнвентаризационнаяКарточка.ЗакНаряд;
|СуммаРУ = Документ.РеализацияУслуг.Сумма;
|ИККол = Документ.ИнвентаризационнаяКарточка.Количество;
|ИКЦена = Документ.ИнвентаризационнаяКарточка.ФактЦенаЗаЕд;
|Функция ИКСумма = Сумма(ИККол*ИКЦена);
|Функция РУСумма = Сумма(СуммаРУ);
|Группировка РеализацияУслуг;
|Группировка ЗаказНаряд;
где-то так | ||
teploset 7 - 01.03.21 - 16:58 | (6) Уже лучше, но почему-то все развернуто получилось (хз как тут вставить таблицу):
ДокРУ ЗаказНаряд ИКСумма РУСуммаСум 21880.20 Заказ-наряд 007/03 10733.35 Заказ-наряд 013/01 1980.00 Заказ-наряд 105/01 9166.85 Реализация услуг 00000001 77000.00 Реализация услуг 00000001 Заказ-наряд 007/03 77000.00 Реализация услуг 00000002 3885.00 Реализация услуг 00000002 Заказ-наряд 105/01 3885.00 Итого 21880.20 80885.00 | ||
teploset 8 - 01.03.21 - 17:00 | Ой, работа кончилась, завтра продолжим) | ||
Ёпрст 9 - 01.03.21 - 17:07 | (6) радуга же будет | ||
Ёпрст 10 - 01.03.21 - 17:10 | (0) что мешает переписать запрос с селектом на синтаксис с реальными табличками ?
Используя или odbc для sql или oledb/sqllite для дбф ? | ||
Ёпрст 11 - 01.03.21 - 17:11 | Это в разы проще, чем иметь это в чорном запросе. Ибо объяснять как будет посчитанна функция сумма по реквизиту шапки, когда есть обращение к тч документа...тоскливо | ||
teploset 12 - 01.03.21 - 19:38 | (10) Отсутствие такого опыта. От эски отошел уже давно, а тут добрые люди откопали старый самописный конфиг и попросили чуть-чуть добавок - вот и завис, т.к. все позабыл уже напрочь... | ||
teploset 13 - 01.03.21 - 19:39 | (11) Что, такой сложный запрос получится? Или вообще нереально это сделать запросом? А если через перебор док-в? Можно будет? | ||
Ёпрст 14 - 01.03.21 - 22:56 | |||
teploset 15 - 02.03.21 - 08:46 | |||
Ёпрст 16 - 02.03.21 - 11:17 | (15) забей на чорный, пиши прямой запрос ..там всё понятно что откуда и зачем. | ||
Ёпрст 17 - 02.03.21 - 11:17 | что непонятно, спрашивай. | ||
teploset 18 - 02.03.21 - 11:24 | (17) все непонятно) Даже не знаю с чего начать... нужны какие-то примочки доставлять к движку эски? Иначе, как прямой запрос к дбф-ам? | ||
teploset 19 - 02.03.21 - 11:24 | А пока через перебор доков сделал. Работает) | ||
Ёпрст 20 - 02.03.21 - 11:32 | (18) либо 1cpp.dll + vfpoledb, либо запрос на 1sqlite.dll | ||
teploset 21 - 02.03.21 - 11:34 | (20) ок, спасибо, погуглю на эту тему на досуге | ||
Ёпрст 22 - 02.03.21 - 11:38 | |||
teploset 23 - 02.03.21 - 11:42 | (22) о, спасибо! | ||
Ёпрст 24 - 02.03.21 - 11:44 |
|
Список тем форума |