8.х Как свернуть ТЗ

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Persempre, 21 авг 2014.

  1. TopicStarter Overlay
    Persempre
    Offline

    Persempre Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    851
    Симпатии:
    3
    Баллы:
    29
    Добрый день. Пишу от безисходности. Голову сломал как свернуть свою ТЗ чтоб убрать лишние строки.
    И так что имеем:
    Запрос вида
    Код:
    ВЫБРАТЬ
        ТЗ_1.Дата,
        ТЗ_1.День,
        ТЗ_1.Организация,
        ТЗ_1.ПодразделениеОрганизации,
        ТЗ_1.Сотрудник,
        ТЗ_1.ЧасыРаботы,
        ТЗ_1.ЧасыСверхурочные,
        ТЗ_1.ЧасыНочные,
        ТЗ_1.ЧасыПраздничные
    ПОМЕСТИТЬ ТЧ_1_1
    ИЗ
        &ТЗ_1 КАК ТЗ_1
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ТЗ_2.Дата,
        ТЗ_2.День,
        ТЗ_2.Организация,
        ТЗ_2.ПодразделениеОрганизации,
        ТЗ_2.Сотрудник,
        ТЗ_2.ЧасыРаботы,
        ТЗ_2.ЧасыСверхурочные,
        ТЗ_2.ЧасыНочные,
        ТЗ_2.ЧасыПраздничные
    ПОМЕСТИТЬ ТЧ_2_2
    ИЗ
        &ТЗ_2 КАК ТЗ_2
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        Таблица.Дата,
        Таблица.День,
        Таблица.Организация,
        Таблица.ПодразделениеОрганизации,
        Таблица.Сотрудник,
        МИНИМУМ(Таблица.ЧасыРаботы) КАК ЧасыРаботы,
        МИНИМУМ(Таблица.ЧасыСверхурочные) КАК ЧасыСверхурочные,
        МИНИМУМ(Таблица.ЧасыНочные) КАК ЧасыНочные,
        МИНИМУМ(Таблица.ЧасыПраздничные) КАК ЧасыПраздничные
    ИЗ
        (ВЫБРАТЬ
            ТЧ_1_1.Дата КАК Дата,
            ТЧ_1_1.День КАК День,
            ТЧ_1_1.Организация КАК Организация,
            ТЧ_1_1.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
            ТЧ_1_1.Сотрудник КАК Сотрудник,
            ТЧ_1_1.ЧасыРаботы КАК ЧасыРаботы,
            ТЧ_1_1.ЧасыСверхурочные КАК ЧасыСверхурочные,
            ТЧ_1_1.ЧасыНочные КАК ЧасыНочные,
            ТЧ_1_1.ЧасыПраздничные КАК ЧасыПраздничные
        ИЗ
            ТЧ_1_1 КАК ТЧ_1_1
       
        ОБЪЕДИНИТЬ
       
        ВЫБРАТЬ
            ТЧ_2_2.Дата,
            ТЧ_2_2.День,
            ТЧ_2_2.Организация,
            ТЧ_2_2.ПодразделениеОрганизации,
            ТЧ_2_2.Сотрудник,
            ТЧ_2_2.ЧасыРаботы,
            ТЧ_2_2.ЧасыСверхурочные,
            ТЧ_2_2.ЧасыНочные,
            ТЧ_2_2.ЧасыПраздничные
        ИЗ
            ТЧ_2_2 КАК ТЧ_2_2) КАК Таблица
    
    СГРУППИРОВАТЬ ПО
        Таблица.День,
        Таблица.Дата,
        Таблица.Организация,
        Таблица.ПодразделениеОрганизации,
        Таблица.Сотрудник

    чтоб было понятно источники запроса

    Снимок1.JPG

    второй источник запроса

    Снимок2.JPG


    так вот. Второй источник запроса это фактически отработанное время сотрудника. Первое это приведение к нормальному виду. Нужно дни которые есть в первом источнике заменить на данные из второго источника. если нет строк то добавить.
    Запрос соеденил эти таблицы в итоге я получил вот это

    Снимок.JPG

    т.е. на одно число часов работы 28 и 7. мне нужно оставить 7. я не пойму как это сделать. подскажите
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    минимум не ?
  3. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.989
    Симпатии:
    399
    Баллы:
    104
    Я с трудом сейчас понимаю че надо сделать, а если циклом в цикле? Что-то типа этого
    Код:
    Для каждого ТекСтрока_Первая Из ПерваяТаблица Цикл
    Для каждого ТекСтрока_Вторая Из ВтораяТаблица Цикл
    Если ТекСтрока_Первая.Сотрудник = ТекСтрока_Вторая.Сотрудник Тогда
    ТекСтрока_Вторая.Дни = ТекСтрока_Первая.Дни;
    КонецЕсли
    КонецЦикла;
    КонецЦикла;
    Условия просто все необходимые поставь. Ну типа как связи. И циклы если надо местами поменяй.
    Persempre нравится это.
  4. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.410
    Симпатии:
    316
    Баллы:
    104
    Persempre я в чате вроде отвечал уже. Сейчас в задачу не вчитывался, может задачу недопонял.
    У вас есть ТЗ, делайте без запроса. Не в первую таблицу добавляйте вторую, а во вторую первую. Предварительно ищите во второй строку с дата-сотрудник-что-то там еще, если нашли пропускаете.
    Persempre нравится это.
  5. TopicStarter Overlay
    Persempre
    Offline

    Persempre Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    851
    Симпатии:
    3
    Баллы:
    29
    Да действительно. начал делать своим способом через *опу. Сделал через добавления во вторую таблицу строк первой - все хорошо отработало. Спасибо
Похожие темы
  1. lanna_oops
    Ответов:
    5
    Просмотров:
    2.074
  2. TODD22
    Ответов:
    2
    Просмотров:
    977
  3. XXL
    Ответов:
    9
    Просмотров:
    1.372
Загрузка...

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