8.х УПП "Объединение" - не работает УПП 1С 8.2

Тема в разделе ""1С:Управление производственным предприятием УПП"", создана пользователем Pentыch, 11 окт 2013.

  1. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток!
    Написав запрос с "ОБЪЕДИНИТЬ ВСЕ", почему то, не объединяет 2 запроса, а выдает в 2 раза больше записей, т.е. выполняются оба запроса.
    Код:
    ВЫБРАТЬ
    Выборка.ЗначениеРешения КАК ЗначениеРешения,
    Выборка.Комментарий КАК Комментарий,
    Выборка.ФИО КАК ФИО,
    Выборка.ДатаВыпол КАК ДатаВыпол,
    Выборка.ТочкаБП КАК ТочкаБП
    ИЗ
    (ВЫБРАТЬ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс КАК БизнесПроцесс,
    ПС_ЗначенияРеквизитовБП.Реквизит КАК Реквизит,
    ПС_ЗначенияРеквизитовБП.Значение КАК ЗначениеРешения,
    0 КАК Комментарий,
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП КАК Модель,
    ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения КАК ДатаВыпол,
    ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП КАК ТочкаБП,
    ПС_ЗначенияРеквизитовБП.Задача.Пользователь КАК ФИО
    ИЗ
    РегистрСведений.ПС_ЗначенияРеквизитовБП КАК ПС_ЗначенияРеквизитовБП
    ГДЕ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП = &ШаблонБП
    И ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП В(&ТочкаБП)
    И ПС_ЗначенияРеквизитовБП.Реквизит В(&Решение)
    
    СГРУППИРОВАТЬ ПО
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс,
    ПС_ЗначенияРеквизитовБП.Реквизит,
    ПС_ЗначенияРеквизитовБП.Значение,
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП,
    ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения,
    ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП,
    ПС_ЗначенияРеквизитовБП.Задача.Пользователь
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    0,
    0,
    0,
    ПС_ЗначенияРеквизитовБП.Значение,
    0,
    0,
    0,
    0
    ИЗ
    РегистрСведений.ПС_ЗначенияРеквизитовБП КАК ПС_ЗначенияРеквизитовБП
    ГДЕ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП = &ШаблонБП
    И ПС_ЗначенияРеквизитовБП.Реквизит В(&Коммент)
    И ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП В(&ТочкаБП)
    
    СГРУППИРОВАТЬ ПО
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс,
    ПС_ЗначенияРеквизитовБП.Реквизит,
    ПС_ЗначенияРеквизитовБП.Значение,
    ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения,
    ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП,
    ПС_ЗначенияРеквизитовБП.Задача.Пользователь) КАК Выборка
  2. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Попробуй без "ВСЕ"

    :)
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    А что то я не пойму у Вас в первом запросе 5 полей для выборки, во втором 8. как вы их объединяете ? У Вас есть Выборка.Комментарий КАК Комментарий, - я так понимаю это строка, и вы его объединяете с 0, как это возможно. конечно он не объединит а две строки выдаст.
  4. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Попробовал убрать "ВСЕ", результат тот же. Так же убрал группировки в отдельных запросах, оставив группировку для выборки, результат тот же.


    PS.
    Yuriy_Alexandrovich, хороший Вы человек, помогаете. Если помните была тема с моим авторством, где Вы пытались помочь(http://www.1c-pro.ru...__fromsearch__1), спасибо Вам. В итоге правда поступил по своему (но честно, не нашел я других способов связи в запросе, движений по регистрам не нашел).

    Полей на насчитал и в первом и во втором запросе одинаково, не понял о чем Вы. Мб я не совсем понял метод объединения.
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Простите, ошибся, что оно все во вложено.
    Но ошибка все в типах. Вы лучше там где не числа вместо 0 поставьте либо Пусто значение, если ссылочный тип через ЗНАЧЕНИЕ(), либо ""
  6. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Результат с первоначальным кодом
    [​IMG]
    Результат после изменений (группировки и убрал "ВСЕ")
    [​IMG]
  7. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Код:
    ВЫБРАТЬ
    Выборка.ЗначениеРешения КАК ЗначениеРешения,
    Выборка.Комментарий  КАК Комментарий,
    Выборка.ФИО    КАК ФИО,
    Выборка.ДатаВыпол  КАК ДатаВыпол,
    Выборка.ТочкаБП   КАК ТочкаБП
    ИЗ
    ( ВЫБРАТЬ РАЗЛИЧНЫЕ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс   КАК БизнесПроцесс,
    ПС_ЗначенияРеквизитовБП.Реквизит    КАК Реквизит,
    ВЫБОР
    КОГДА ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП В(&ТочкаБП)
    И ПС_ЗначенияРеквизитовБП.Реквизит В(&Решение)
    ТОГДА ПС_ЗначенияРеквизитовБП.Значение
    ИНАЧЕ ""
    КОНЕЦ		   КАК ЗначениеРешения,
    ВЫБОР
    КОГДА ПС_ЗначенияРеквизитовБП.Реквизит В(&Коммент)
    И ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП В(&ТочкаБП)
    ТОГДА ПС_ЗначенияРеквизитовБП.Значение
    ИНАЧЕ ""
    КОНЕЦ		   КАК Комментарий,
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП КАК Модель,
    ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения КАК ДатаВыпол,
    ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП   КАК ТочкаБП,
    ПС_ЗначенияРеквизитовБП.Задача.Пользователь  КАК ФИО
    ИЗ
    РегистрСведений.ПС_ЗначенияРеквизитовБП КАК ПС_ЗначенияРеквизитовБП
    ГДЕ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП = &ШаблонБП
    ) КАК Выборка
    Про объединение, Если используете "ВСЕ" то в результат войдут все строки объединямых запросов, иначе одинаковые строки свернуться в одну. По второму запросу видно, что такой случай не возможен, поскольку все поля кроме "Коментарий" за некоторыми исключениями будут отличаться от строк первого запроса и это значит, что результат будет содержать всегда обе выборки без свертки
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Согласен с Yuriy_Alexandrovich, Вам надо что получить в итоге.
  9. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Вот что получилось в компоновке (если использовать запрос Yuriy_Alexandrovich).
    [​IMG]

    Если писать в модуль, то выдает ошибку, мол "поле не найдено, Выборка.ЗначениеРешения"
  10. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Попробуйте сравнить с результатом запроса
    Код:
    ВЫБРАТЬ
    Выборка.ЗначениеРешения КАК ЗначениеРешения,
    Выборка.Комментарий  КАК Комментарий,
    Выборка.ФИО    КАК ФИО,
    Выборка.ДатаВыпол  КАК ДатаВыпол,
    Выборка.ТочкаБП   КАК ТочкаБП
    ИЗ
    ( ВЫБРАТЬ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс    КАК БизнесПроцесс,
    ПС_ЗначенияРеквизитовБП.Реквизит	 КАК Реквизит,
    ПС_ЗначенияРеквизитовБП.Значение	 КАК ЗначениеРешения,
    0			 КАК Комментарий,
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП КАК Модель,
    ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения  КАК ДатаВыпол,
    ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП   КАК ТочкаБП,
    ПС_ЗначенияРеквизитовБП.Задача.Пользователь  КАК ФИО
    ИЗ
    РегистрСведений.ПС_ЗначенияРеквизитовБП КАК ПС_ЗначенияРеквизитовБП
    ГДЕ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП = &ШаблонБП
    И ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП В(&ТочкаБП)
    И ПС_ЗначенияРеквизитовБП.Реквизит В(&Решение)
    СГРУППИРОВАТЬ ПО
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс,
    ПС_ЗначенияРеквизитовБП.Реквизит,
    ПС_ЗначенияРеквизитовБП.Значение,
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП,
    ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения,
    ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП,
    ПС_ЗначенияРеквизитовБП.Задача.Пользователь
    ОБЪЕДИНИТЬ
    ВЫБРАТЬ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс    КАК БизнесПроцесс,
    ПС_ЗначенияРеквизитовБП.Реквизит	 КАК Реквизит,
    0			 КАК ЗначениеРешения,
    ПС_ЗначенияРеквизитовБП.Значение	 КАК Комментарий,
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП КАК Модель,
    ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения  КАК ДатаВыпол,
    ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП   КАК ТочкаБП,
    ПС_ЗначенияРеквизитовБП.Задача.Пользователь  КАК ФИО
    ИЗ
    РегистрСведений.ПС_ЗначенияРеквизитовБП КАК ПС_ЗначенияРеквизитовБП
    ГДЕ
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП = &ШаблонБП
    И ПС_ЗначенияРеквизитовБП.Реквизит В(&Коммент)
    И ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП В(&ТочкаБП)
    СГРУППИРОВАТЬ ПО
    ПС_ЗначенияРеквизитовБП.БизнесПроцесс,
    ПС_ЗначенияРеквизитовБП.Реквизит,
    ПС_ЗначенияРеквизитовБП.Значение,
    ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения,
    ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП,
    ПС_ЗначенияРеквизитовБП.Задача.Пользователь
    ) КАК Выборка
    А подробней, что за модуль, что значит писать в него ?
  11. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Модуль Внешнего отчета, в который я и должен вписать этот запрос :)
    задача, то у меня какая, так и не сказал. Мне нужно что бы комментарий выводился только для определенной записи.Т.е. Комментарий руководителя должен выводится на против руководителя, комментарий инициатора соответственно и т.д..
    Yuriy_Alexandrovich, одной проблемой меньше, теперь нет пустых строк как раньше, но повторяющиеся строки. Сейчас буду искать.
  12. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Почему то не могу редактировать, по этому еще одно сообщение.
    От ошибки избавился, это не беда.
    Сейчас нужно разобраться почему повторяются значения ([​IMG]) по дате видно.
    Комментарий должен стоять там, где в столбце решение написано "Неудовлетворительно" (см. рис) (как пример, просто только у этих записей есть коменты)
  13. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Они повторяются, потому как строки разные, содержат разные данные, если нужно свернуть еще как либо, нужно использовать агрегаторы (агрегатные функции (СУММА, МАКСИМУМ, МИНИМУМ) или алгоритмы)
    на соответствующие поля
  14. TopicStarter Overlay
    Pentыch
    Offline

    Pentыch Опытный в 1С

    Регистрация:
    18 сен 2013
    Сообщения:
    51
    Симпатии:
    0
    Баллы:
    26
    Yuriy_Alexandrovich, спасибо Вам за помощь, все получилось.
    Скорее всего реализовано так себе, но пока это не конечный вариант, с этим запросом мне еще биться долго. (если есть рекомендации, сообщите :p )
    А вот и итог, мб кто в поиске наткнется.

    Код:
     Запрос = Новый Запрос (
    "ВЫБРАТЬ
    | МАКСИМУМ(Выборка.ЗначениеРешения) КАК ЗначениеРешения,
    | МАКСИМУМ(Выборка.Комментарий) КАК Комментарий,
    | Выборка.ФИО КАК ФИО,
    | Выборка.ДатаВыпол КАК ДатаВыпол,
    | Выборка.ТочкаБП КАК ТочкаБП
    |ИЗ
    | (ВЫБРАТЬ
    |	ПС_ЗначенияРеквизитовБП.БизнесПроцесс	КАК БизнесПроцесс,
    |	ПС_ЗначенияРеквизитовБП.Реквизит  КАК Реквизит,
    |	МАКСИМУМ(ПС_ЗначенияРеквизитовБП.Значение) КАК ЗначениеРешения,
    |	МАКСИМУМ(0) КАК Комментарий,
    |	ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП КАК Модель,
    |	ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения  КАК ДатаВыпол,
    |	ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП   КАК ТочкаБП,
    |	ПС_ЗначенияРеквизитовБП.Задача.Пользователь  КАК ФИО
    | ИЗ
    |	РегистрСведений.ПС_ЗначенияРеквизитовБП КАК ПС_ЗначенияРеквизитовБП
    | ГДЕ
    |  ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП = &ШаблонБП
    |  И ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП В(&ТочкаБП)
    |  И ПС_ЗначенияРеквизитовБП.Реквизит В(&Решение)
    | СГРУППИРОВАТЬ ПО
    |	ПС_ЗначенияРеквизитовБП.БизнесПроцесс,
    |	ПС_ЗначенияРеквизитовБП.Реквизит,
    |	ПС_ЗначенияРеквизитовБП.Значение,
    |	ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП,
    |	ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения,
    |	ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП,
    |	ПС_ЗначенияРеквизитовБП.Задача.Пользователь
    | ОБЪЕДИНИТЬ
    | ВЫБРАТЬ
    |	ПС_ЗначенияРеквизитовБП.БизнесПроцесс	КАК БизнесПроцесс,
    |	ПС_ЗначенияРеквизитовБП.Реквизит  КАК Реквизит,
    |	МАКСИМУМ(0) КАК ЗначениеРешения,
    |	МАКСИМУМ(ПС_ЗначенияРеквизитовБП.Значение) КАК Комментарий,
    |	ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП КАК Модель,
    |	ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения  КАК ДатаВыпол,
    |	ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП   КАК ТочкаБП,
    |	ПС_ЗначенияРеквизитовБП.Задача.Пользователь  КАК ФИО
    | ИЗ
    |	РегистрСведений.ПС_ЗначенияРеквизитовБП КАК ПС_ЗначенияРеквизитовБП
    | ГДЕ
    |	ПС_ЗначенияРеквизитовБП.БизнесПроцесс.ШаблонБП = &ШаблонБП
    |	И ПС_ЗначенияРеквизитовБП.Реквизит В(&Коммент)
    |	И ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП В(&ТочкаБП)
    | СГРУППИРОВАТЬ ПО
    |	ПС_ЗначенияРеквизитовБП.БизнесПроцесс,
    |	ПС_ЗначенияРеквизитовБП.Реквизит,
    |	ПС_ЗначенияРеквизитовБП.Значение,
    |	ПС_ЗначенияРеквизитовБП.Задача.ДатаВыполнения,
    |	ПС_ЗначенияРеквизитовБП.Задача.ТочкаБП,
    |	ПС_ЗначенияРеквизитовБП.Задача.Пользователь
    | ) КАК Выборка
    | СГРУППИРОВАТЬ ПО
    | Выборка.ФИО,
    | Выборка.ДатаВыпол,
    | Выборка.ТочкаБП
    |");
    
    

Поделиться этой страницей