Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0
Есть 1с82 комплексная для украины(УТП 1.2.6.1) Добавлен РегистрСведений ДоговораАвторов (осн.измерения "книга договор автор", ресурсы "процент, видпроцента...") стандартные оборотные Регистры Накопления: "Продажи" (сумма продаж по товарам) и "ПродажиСебестоимость" (себестоимость продаж по товарам)
Хочу получить для всех товаров из регистра ДоговораАвторов продажи и себестоимость и кво проданного товара , а результат в 2 раз больше чем ожидалось.... (Если добавить еще одно левое соединение например по ПродажиСебестоимость - будет в 3 раза)
ВЫБРАТЬ ДоговораАвторовСрезПоследних.книга КАК книга, ДоговораАвторовСрезПоследних.Автор, ДоговораАвторовСрезПоследних.Договор, СУММА(ПродажиОбороты.Количество) КАК КоличествоПрод, СУММА(ПродажиСебестоимость.Количество) КАК КоличествоСеб ИЗ РегистрСведений.ДоговораАвторов.СрезПоследних(&ВыбДата, ) КАК ДоговораАвторовСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК ПродажиОбороты ПО ДоговораАвторовСрезПоследних.книга = ПродажиОбороты.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость ПО ДоговораАвторовСрезПоследних.книга = ПродажиСебестоимость.Номенклатура ГДЕ ДоговораАвторовСрезПоследних.книга = &ВыбТМЦ СГРУППИРОВАТЬ ПО ДоговораАвторовСрезПоследних.Автор, ДоговораАвторовСрезПоследних.Договор, ДоговораАвторовСрезПоследних.книга
Интересно, что если взять РегистрНакопления.ПродажиСебестоимость.Обороты и РегистрНакопления.Продажи.Обороты то все ок. В чем ошибка????
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0
Цитата(Ardi @ 20.03.12, 1:40)
Если оставить только регистр сведений и убрать "сгруппировать" - то выбирает несколько строк по одной &ВыбТМЦ?
Да, в частности на примере который я смотрю - 3 строки. И хотя левое соединение ,как я понимаю, расширяет таблицу только влево, но после 2-х "левых" еще появляются дубли строк , которые после группировки и дают задвоение
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0
Ну Вы же соединяетесь только по номенклатуре, следовательно для одной и той же книги с разным договором и разным автором, будет подлаживаться одна и та же сумма реализации. В общем удваиваться или утраиваться будет столько раз, сколько уникальных наборов с одной и той же книгой будет.
З.Ы. Да и регистры оборотами выбирать лучше , чем записи перелопачивать.
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0
Цитата(Magdych @ 20.03.12, 9:46)
Ну Вы же соединяетесь только по номенклатуре, следовательно для одной и той же книги с разным договором и разным автором, будет подлаживаться одна и та же сумма реализации. В общем удваиваться или утраиваться будет столько раз, сколько уникальных наборов с одной и той же книгой будет.
З.Ы. Да и регистры оборотами выбирать лучше , чем записи перелопачивать.
а почему тогда одно левое соединение ничего не задваивает? а если 2 левых, то в 2 раза;3 в 3 раза И если у нас есть таблица и мы ее расширяем вправо? почему появляются новые строки?
Цитата(Magdych @ 20.03.12, 9:46)
З.Ы. Да и регистры оборотами выбирать лучше , чем записи перелопачивать.
А регистр мне нужен, тк в полном запросе я отбираю обороты за период, и период для каждого товара-договора свой, те соединяю еще и по периоду.В оборотах нет периода.Но непонятка кроется для меня именно в этой части запроса... Кстати,если использовать обороты то нет такой проблемы ,ничего не задваивает.
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0
Ну мне же не видно, что у Вас там в регистрах продажных написано. Соединения тут не при чем. У Вас запрос так построен, что выборки буду получаться такого типа:
Продали 5 шт. товара "книга1", в запрос Ваш попадет
Группа: Пользователи
Сообщений: 39
Спасибо сказали: 1 раз
Рейтинг: 0
Цитата(Magdych @ 20.03.12, 10:22)
Ну мне же не видно, что у Вас там в регистрах продажных написано. Соединения тут не при чем. У Вас запрос так построен, что выборки буду получаться такого типа:
Продали 5 шт. товара "книга1", в запрос Ваш попадет
А мне так и надо, я и смотрю потом прибыль по тройке книге-автору-договору(в запросе по ним и сгруппировано),а вопросы 1)Почему левое соединение может добавлять строки в 1-ю таблицу 2)Почему есть разница одно левое(правильные суммы) и 2 и более таких-же левых соединений (сумма соотв в столько раз больше или если сгруппировать по кво то строк в n раз больше) 3)Как сделать правильно? ну хоть идею... а то 3 дня в ступоре.
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0
Для начала я бы с теории БД начал и прочитал бы про 3 нормальные формы. Потом прочел бы что такое соединения и как они работают. У Вас составной ключ в первой таблице(та что рег. сведений) "Книга+Автор+Договор", а подкладываете вы под него простой ключ "Номенклатура". Какая структура оборотных регистров? Если и там есть измерения "договор" и "автор", то Вам следует добавить их в условия объединения. Если полей этих там нет, то информацию по реализации Вы можете получить только по аналитическому срезу "Книга".
Группа: Пользователи
Сообщений: 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грн
а про соединения читал неоднократно, думал даже разобрался... до этой задачи
Группа: Пользователи
Сообщений: 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грн Почему идет расширение таблицы вниз не пойму, это ж не полное соединение...
Группа: Пользователи
Сообщений: 63
Спасибо сказали: 14 раз
Рейтинг: 0
Теперь неплохо бы увидеть оборотные регистры
ВЫБРАТЬ ПродажиОбороты.книга КАК книга, // ДоговораАвторовСрезПоследних.Автор, // ДоговораАвторовСрезПоследних.Договор, ПродажиОбороты.Количество) КАК КоличествоПрод, ПродажиСебестоимость.Количество) КАК КоличествоСеб ИЗ РегистрНакопления.Продажи КАК ПродажиОбороты ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость ПО ПродажиОбороты.книга = ПродажиСебестоимость.Номенклатура ГДЕ ПродажиОбороты.книга = &ВыбТМЦ
Для пущей наглядности сразу регистратор туда добавьте.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!