Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 23:47
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: "Задваивание" данных в отчете  (Прочитано 7362 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Друзья помогите правильно составить Запрос.
Вот по такой схеме нужно отследить  номенклатуру:
ЗаявкаКлиента->ЗаказПодКл->ПредварительныйЗаказПоставщику->ОсновнойЗаказПоставщику->ПоступлениеТоваров

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


Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Для начала поясните термин
"Выбита"


Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Для начала поясните термин
"Выбита"
Я имел виду что в ТЧ документа присутствует к примеру две строки с одной и той же номенклатурой

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
группируйте по ссылке и номенклатуре. Только сначала надо группировать, а потом цеплять левые соединения.

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
группируйте по ссылке и номенклатуре. Только сначала надо группировать, а потом цеплять левые соединения.
т.е. использовать вложенные запросы??

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Ээээ, не обязательно. Есть еще временные таблицы. Однозначно сказать нельзя. Нужно выполнить группировку, а с помощью чего это вы будете делать - не суть важно.

Оффлайн mashencev_anton

  • ****
  • Сообщений: 315
  • РЕПУТАЦИЯ: 6
  • КПД: 2%
  • Регистрация: 2012-12-05
  • Сайт: 
  • Профессия: Программист 1С
Ээээ, не обязательно. Есть еще временные таблицы. Однозначно сказать нельзя. Нужно выполнить группировку, а с помощью чего это вы будете делать - не суть важно.
к сожалению не прокатило((
ВЫБРАТЬ
Заявка.Ссылка КАК ЗаявкаКлиента,
Заявка.Номенклатура,
Заявка.Количество КАК КоличествоЗаявка,
ЗаказПодКлиента.Количество КАК КоличествоПодКлиента,
Предварительный.Количество КАК КоличествоПредварительный,
ОсновнойЗаказ.Количество КАК КоличествоОсновной,
Поступление.Количество КАК КоличествоПоступление,
ЗаказПодКлиента.Ссылка КАК ЗаказПодКлиента
ИЗ
(ВЫБРАТЬ
ЗаказПокупателяТовары.Ссылка КАК Ссылка,
ЗаказПокупателяТовары.Количество КАК Количество,
ЗаказПокупателяТовары.Номенклатура КАК Номенклатура
ИЗ
Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
ЗаказПокупателяТовары.Ссылка.Проведен
И ЗаказПокупателяТовары.Ссылка = &Ссылка

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

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

СГРУППИРОВАТЬ ПО
ЗаказПоставщикуТовары.Номенклатура,
ЗаказПоставщикуТовары.Ссылка,
ЗаказПоставщикуТовары.Количество,
ЗаказПоставщикуТовары.ДокументРазмещение) КАК Предварительный
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
ЗаказПоставщикуТовары.Ссылка КАК Ссылка,
ЗаказПоставщикуТовары.Количество КАК Количество,
ЗаказПоставщикуТовары.Номенклатура КАК Номенклатура
ИЗ
Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
ЗаказПоставщикуТовары.Ссылка.Проведен
И НЕ ЗаказПоставщикуТовары.Ссылка.Предварительный

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

СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслугТовары.Номенклатура,
ПоступлениеТоваровУслугТовары.Ссылка,
ПоступлениеТоваровУслугТовары.Количество) КАК Поступление
ПО ОсновнойЗаказ.Ссылка = Поступление.Ссылка.Сделка
И ОсновнойЗаказ.Номенклатура = Поступление.Номенклатура
ПО Предварительный.Номенклатура = ОсновнойЗаказ.Номенклатура
И Предварительный.Ссылка = ОсновнойЗаказ.Ссылка.ДокументОснование
ПО ЗаказПодКлиента.Номенклатура = Предварительный.Номенклатура
И ЗаказПодКлиента.Ссылка = Предварительный.ДокументРазмещение
ПО Заявка.Ссылка = ЗаказПодКлиента.ЗаказПокупателя
И Заявка.Номенклатура = ЗаказПодКлиента.Номенклатура

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
к сожалению не прокатило((

Это как-бы не очень информационный ответ. Что вы ожидали увидеть, а что получили?

Онлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Это явно на группировку не тянет
ВЫБРАТЬ
        ЗаказПокупателяТовары.Ссылка КАК Ссылка,
        ЗаказПокупателяТовары.Количество КАК Количество,
        ЗаказПокупателяТовары.Номенклатура КАК Номенклатура
    ИЗ
        Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
    ГДЕ
        ЗаказПокупателяТовары.Ссылка.Проведен
        И ЗаказПокупателяТовары.Ссылка = &Ссылка
   
    СГРУППИРОВАТЬ ПО
        ЗаказПокупателяТовары.Ссылка,
        ЗаказПокупателяТовары.Номенклатура,
        ЗаказПокупателяТовары.Количество
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн temrmal

  • ***
  • Сообщений: 129
  • РЕПУТАЦИЯ: 15
  • КПД: 12%
  • Регистрация: 2011-11-10
  • Сайт: 
  • Профессия: Программист 8.1
Автор, проблема в том что наверно не совсем представляете суть соединений и группировок.
Нарисуйте на бумаги таблицы с воображаемыми строками и представьте как пройдет соединение. Тогда поймете.
Даже если идет левое соединение и правая таблица сгруппирована, это не означает что не будет задвоений. Та же ситуация может произойти и в правых таблицах. Поэтому группируйте все таблицы, а потом соединяйте. И лучше использовать пакеты (врем. таблицы) как и написали выше
Добавлено: 28 Июл 2015, 08:54

Это явно на группировку не тянет
ВЫБРАТЬ
        ЗаказПокупателяТовары.Ссылка КАК Ссылка,
        ЗаказПокупателяТовары.Количество КАК Количество,
        ЗаказПокупателяТовары.Номенклатура КАК Номенклатура
    ИЗ
        Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
    ГДЕ
        ЗаказПокупателяТовары.Ссылка.Проведен
        И ЗаказПокупателяТовары.Ссылка = &Ссылка
   
    СГРУППИРОВАТЬ ПО
        ЗаказПокупателяТовары.Ссылка,
        ЗаказПокупателяТовары.Номенклатура,
        ЗаказПокупателяТовары.Количество

Обычная группировка


Теги:
 


* Живое общение

Не устроил ответ?

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


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
51 Сообщений
andron81_81
44 Сообщений
oleg-x
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 187
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal