Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Задвоение в запросе при использовании 2-х левых соединений , Задвоение в запросе при использовании 2-х левых соединений 2 страниц V   1 2 >          
redking Подменю пользователя
сообщение 20.03.12, 0:55
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Есть 1с82 комплексная для украины(УТП 1.2.6.1)
Добавлен РегистрСведений ДоговораАвторов (осн.измерения "книга договор автор", ресурсы "процент, видпроцента...")
стандартные оборотные Регистры Накопления:
"Продажи" (сумма продаж по товарам) и
"ПродажиСебестоимость" (себестоимость продаж по товарам)

Хочу получить для всех товаров из регистра ДоговораАвторов продажи и себестоимость и кво проданного товара , а результат в 2 раз больше чем ожидалось.... (Если добавить еще одно левое соединение например по ПродажиСебестоимость - будет в 3 раза)

ВЫБРАТЬ
    ДоговораАвторовСрезПоследних.книга КАК книга,
    ДоговораАвторовСрезПоследних.Автор,
    ДоговораАвторовСрезПоследних.Договор,
    СУММА(ПродажиОбороты.Количество) КАК КоличествоПрод,
    СУММА(ПродажиСебестоимость.Количество) КАК КоличествоСеб
ИЗ
    РегистрСведений.ДоговораАвторов.СрезПоследних(&ВыбДата, ) КАК ДоговораАвторовСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК ПродажиОбороты
        ПО ДоговораАвторовСрезПоследних.книга = ПродажиОбороты.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
        ПО ДоговораАвторовСрезПоследних.книга = ПродажиСебестоимость.Номенклатура
ГДЕ
    ДоговораАвторовСрезПоследних.книга = &ВыбТМЦ
СГРУППИРОВАТЬ ПО
    ДоговораАвторовСрезПоследних.Автор,
    ДоговораАвторовСрезПоследних.Договор,
    ДоговораАвторовСрезПоследних.книга


Интересно, что если взять РегистрНакопления.ПродажиСебестоимость.Обороты и РегистрНакопления.Продажи.Обороты то все ок.
В чем ошибка????


 i 

Ознакомьтесь с правилами!
 


Сообщение отредактировал Vofka - 20.03.12, 8:58

Ardi Подменю пользователя
сообщение 20.03.12, 1:40
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Если оставить только регистр сведений и убрать "сгруппировать" - то выбирает несколько строк по одной &ВыбТМЦ?


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

redking Подменю пользователя
сообщение 20.03.12, 2:02
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Ardi @ 20.03.12, 1:40) *
Если оставить только регистр сведений и убрать "сгруппировать" - то выбирает несколько строк по одной &ВыбТМЦ?

Да, в частности на примере который я смотрю - 3 строки.
И хотя левое соединение ,как я понимаю, расширяет таблицу только влево, но после 2-х "левых" еще появляются дубли строк , которые после группировки и дают задвоение

Ardi Подменю пользователя
сообщение 20.03.12, 2:11
Сообщение #4

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

1с отработала корректно. согласно правилам SQL запросов.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

redking Подменю пользователя
сообщение 20.03.12, 2:16
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Ardi @ 20.03.12, 2:11) *
1с отработала корректно. согласно правилам SQL запросов.

А что не так в запросе? получил 3 строки и справа каждой строке присоединил столбцы с кво и суммами.Откуда появление лишних строк?

redking Подменю пользователя
сообщение 20.03.12, 3:34
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Что-то я не понимаю, и что-то из основных понятий похоже... HELP!

Домовик Подменю пользователя
сообщение 20.03.12, 6:58
Сообщение #7

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

тип измерения "книга" должен совпадать с типом измерения "номенклатура" указанных регистров.

Сообщение отредактировал Домовик - 20.03.12, 7:00

redking Подменю пользователя
сообщение 20.03.12, 9:17
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Домовик @ 20.03.12, 6:58) *
тип измерения "книга" должен совпадать с типом измерения "номенклатура" указанных регистров.

Да, и он совпадает

Magdych Подменю пользователя
сообщение 20.03.12, 9:46
Сообщение #9

Говорящий
***
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0

Ну Вы же соединяетесь только по номенклатуре, следовательно для одной и той же книги с разным договором и разным автором, будет подлаживаться одна и та же сумма реализации. В общем удваиваться или утраиваться будет столько раз, сколько уникальных наборов с одной и той же книгой будет.

З.Ы. Да и регистры оборотами выбирать лучше , чем записи перелопачивать.

redking Подменю пользователя
сообщение 20.03.12, 10:13
Сообщение #10

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Magdych @ 20.03.12, 9:46) *
Ну Вы же соединяетесь только по номенклатуре, следовательно для одной и той же книги с разным договором и разным автором, будет подлаживаться одна и та же сумма реализации. В общем удваиваться или утраиваться будет столько раз, сколько уникальных наборов с одной и той же книгой будет.

З.Ы. Да и регистры оборотами выбирать лучше , чем записи перелопачивать.

а почему тогда одно левое соединение ничего не задваивает? а если 2 левых, то в 2 раза;3 в 3 раза
И если у нас есть таблица и мы ее расширяем вправо? почему появляются новые строки?

Цитата(Magdych @ 20.03.12, 9:46) *
З.Ы. Да и регистры оборотами выбирать лучше , чем записи перелопачивать.

А регистр мне нужен, тк в полном запросе я отбираю обороты за период, и период для каждого товара-договора свой, те соединяю еще и по периоду.В оборотах нет периода.Но непонятка кроется для меня именно в этой части запроса...
Кстати,если использовать обороты то нет такой проблемы ,ничего не задваивает.

Magdych Подменю пользователя
сообщение 20.03.12, 10:22
Сообщение #11

Говорящий
***
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0

Ну мне же не видно, что у Вас там в регистрах продажных написано. Соединения тут не при чем. У Вас запрос так построен, что выборки буду получаться такого типа:

Продали 5 шт. товара "книга1", в запрос Ваш попадет

Книга1 Автор1 Договор1 - 5 шт.
Книга1 Автор2 Договор1 - 5 шт.
и т.д.
Книга1 АвторN ДоговорN - 5 шт.

Ardi Подменю пользователя
сообщение 20.03.12, 10:30
Сообщение #12

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(Magdych @ 20.03.12, 11:22) *
а почему тогда одно левое соединение ничего не задваивает? а если 2 левых, то в 2 раза;3 в 3 раза

Все пациенты врут.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: Домовик,

redking Подменю пользователя
сообщение 20.03.12, 10:36
Сообщение #13

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Magdych @ 20.03.12, 10:22) *
Ну мне же не видно, что у Вас там в регистрах продажных написано. Соединения тут не при чем. У Вас запрос так построен, что выборки буду получаться такого типа:

Продали 5 шт. товара "книга1", в запрос Ваш попадет

Книга1 Автор1 Договор1 - 5 шт.
Книга1 Автор2 Договор1 - 5 шт.
и т.д.
Книга1 АвторN ДоговорN - 5 шт.

А мне так и надо, я и смотрю потом прибыль по тройке книге-автору-договору(в запросе по ним и сгруппировано),а вопросы
1)Почему левое соединение может добавлять строки в 1-ю таблицу
2)Почему есть разница одно левое(правильные суммы) и 2 и более таких-же левых соединений (сумма соотв в столько раз больше или если сгруппировать по кво то строк в n раз больше)
3)Как сделать правильно? ну хоть идею... а то 3 дня в ступоре.

Magdych Подменю пользователя
сообщение 20.03.12, 10:44
Сообщение #14

Говорящий
***
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0

Для начала я бы с теории БД начал и прочитал бы про 3 нормальные формы. Потом прочел бы что такое соединения и как они работают.
У Вас составной ключ в первой таблице(та что рег. сведений) "Книга+Автор+Договор", а подкладываете вы под него простой ключ "Номенклатура". Какая структура оборотных регистров? Если и там есть измерения "договор" и "автор", то Вам следует добавить их в условия объединения. Если полей этих там нет, то информацию по реализации Вы можете получить только по аналитическому срезу "Книга".

redking Подменю пользователя
сообщение 20.03.12, 11:07
Сообщение #15

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Magdych @ 20.03.12, 10:44) *
Для начала я бы с теории БД начал и прочитал бы про 3 нормальные формы. Потом прочел бы что такое соединения и как они работают.
У Вас составной ключ в первой таблице(та что рег. сведений) "Книга+Автор+Договор", а подкладываете вы под него простой ключ "Номенклатура". Какая структура оборотных регистров? Если и там есть измерения "договор" и "автор", то Вам следует добавить их в условия объединения. Если полей этих там нет, то информацию по реализации Вы можете получить только по аналитическому срезу "Книга".

Мне нужна таблица "Книга,Автор,Договор,Кво,сумма Продаж, Себестоимость"
те если были продажи книга1- 5шт ,10грн(продажа),8грн(себестоимость)
и из регистра сведений получили таблицу
книга1,автор1,договор1
книга1,автор2,договор1
книга1,автор3,договор1
то результат ,по моему должен быть
книга1,автор1,договор1, 5шт ,10грн,8грн
книга1,автор2,договор1, 5шт ,10грн,8грн
книга1,автор3,договор1, 5шт ,10грн,8грн
А у меня выходит
книга1,автор1,договор1, 10шт ,20грн,16грн
книга1,автор2,договор1, 10шт ,20грн,16грн
книга1,автор3,договор1, 10шт ,20грн,16грн

а про соединения читал неоднократно, думал даже разобрался... до этой задачи sad.gif

Magdych Подменю пользователя
сообщение 20.03.12, 11:17
Сообщение #16

Говорящий
***
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0

Уберите группировку и функцию сумма и покажите табличку, либо же сами проанализируйте и многое станет понятным.

redking Подменю пользователя
сообщение 20.03.12, 11:22
Сообщение #17

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(Magdych @ 20.03.12, 11:17) *
Уберите группировку и функцию сумма и покажите табличку, либо же сами проанализируйте и многое станет понятным.

Делал,результат
книга1,автор1,договор1, 5шт ,10грн,8грн
книга1,автор2,договор1, 5шт ,10грн,8грн
книга1,автор3,договор1, 5шт ,10грн,8грн
книга1,автор1,договор1, 5шт ,10грн,8грн
книга1,автор2,договор1, 5шт ,10грн,8грн
книга1,автор3,договор1, 5шт ,10грн,8грн
Почему идет расширение таблицы вниз не пойму, это ж не полное соединение...

Magdych Подменю пользователя
сообщение 20.03.12, 11:38
Сообщение #18

Говорящий
***
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0

Теперь неплохо бы увидеть оборотные регистры

ВЫБРАТЬ
    ПродажиОбороты.книга КАК книга,
//   ДоговораАвторовСрезПоследних.Автор,
  //  ДоговораАвторовСрезПоследних.Договор,
    ПродажиОбороты.Количество) КАК КоличествоПрод,
    ПродажиСебестоимость.Количество) КАК КоличествоСеб
ИЗ
         РегистрНакопления.Продажи КАК ПродажиОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
        ПО ПродажиОбороты.книга = ПродажиСебестоимость.Номенклатура
ГДЕ
    ПродажиОбороты.книга = &ВыбТМЦ


Для пущей наглядности сразу регистратор туда добавьте.

Спасибо сказали: redking,

Vofka Подменю пользователя
сообщение 20.03.12, 11:46
Сообщение #19

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13956
Из: Киев
Спасибо сказали: 4523 раз
Рейтинг: 3646.4

Цитата(Magdych @ 20.03.12, 11:34) *
Теперь неплохо бы увидеть оборотные регистры

Magdych, давайте без регистра. В таком случае вы сможете претендовать на награду Гений телепатии и социального моделирования smile.gif

redking Подменю пользователя
сообщение 20.03.12, 12:14
Сообщение #20

Общительный
**
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0

Урра, вот блин!!! а по регистратору соединить и забыл!!!!
Огромное спасибо всем кто терпел мои мысленные потуги!!!!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.05.24, 21:42
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!