8.х Журнал документов, сложный отбор

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

  1. TopicStarter Overlay
    Svb
    Offline

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

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Товарищи, подскажите идею как правильно сделать.
    Есть УТ, в ней есть документы:
    РТиУ, в которой табличная часть Товары, в которой в свою очередь есть реквизит склад;
    Складской РО, который(-ые) оформляются в соответствии с количеством складов, упомянутых в табличной части РТиУ.Товары.

    Есть журнал документов, в котором показываются РТиУ с отбором по складам из табличной части.
    Т.е. хочет пользователь видеть РТиУ, которые реализуют товар с определенного склада - пожалуйста. Реализовал это через критерий отбора. Отбор идет именно по складу табличной части, а не складу шапки.

    Но теперь хотят пущего! Хотят видеть в журнале РТиУ, с отбором по складу да еще и по признаку печати РО и его наличия (сформирован он или еще нет).

    Пример, РТиУ реализует товары со складов №1 и №2. РО по складу №1 сформирован и распечатан (есть признак печати в виде реквизита РО). РО по складу №2 не сформирован. Так вот когда в журнале стоит отбор "Склад №1" - пользователь не хочет видеть эту РТиУ, а когда в отборе "Склад №2" пользователь хочет видеть РТиУ.

    Можно написать сложный запрос, который будет шерстить РТиУ.Товары (на предмет перечня складов, по которым должны быть оформлены РО), РО (на предмет их существования и признака печати), затем уже делать желаемым пользователем отбор. Но тогда придется отказаться от динамического считывания в журнале документов, а не хотелось бы.
    Вопрос, может поможет какая-нибудь хитрость?
  2. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    УТ 10 или 11? Вообще - управляемая форма журнала с динамическим списком, у которого в источнике стоит запрос, творит чудеса :)
  3. TopicStarter Overlay
    Svb
    Offline

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

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    УТ 11.0.7.8, доработанная, так что добавить пару реквизитов - ничего страшного.
    Так все и есть, журнал, форма, динамический список, галка произвольный запрос. Внутри запрос с отбором по Критерию отбора...
    Снимок.JPG
    Но чтобы реализовать нужное, мне надо к существующему запросу еще добавить запрос к таблицам: РТиУ.Товары.Склад, Документы.РасходныйОрдернаТовары.Склад и .ПризнакПечати.
    То есть это будет в запросе временная таблица или вложенный запрос, который потом буду связывать с таблицей ЖурналДокументовЖурналДляПодписиИПечати.
    Так примерно предлагаете? :)
  4. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    именно. только пользователей предупреждайте сразу, что их хотелки включат тормоза
  5. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    376
    Баллы:
    104
    и даже не включат а врубят :)
    --- Объединение сообщений, 17 апр 2014 ---
    to ТС, а как будет отлавливать признак того что документ именно отправлен на печать на принтер? а не просто открыта печатная форма
  6. TopicStarter Overlay
    Svb
    Offline

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

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Да, никак. Фактически будет признак, что печатная форма сформирована. Этого будет достаточно. А то так дойдет до того, что надо будет отслеживать куда отправился документ в мусорное ведро или пошел в дело ))
    --- Объединение сообщений, 17 апр 2014 ---
    Вобщем пока остановился на таком варианте.
    Беру данные из Журнала, РН.ТоварыКОтгрузкеОстатки и Документы.РасходныйОрдерНаТовары.
    Код:
    ВЫБРАТЬ
        ЖурналДокументовЖурналДляПодписиИПечати.Ссылка КАК Ссылка,
        ЖурналДокументовЖурналДляПодписиИПечати.Дата,
        ЖурналДокументовЖурналДляПодписиИПечати.ПометкаУдаления,
        ЖурналДокументовЖурналДляПодписиИПечати.Номер,
        ЖурналДокументовЖурналДляПодписиИПечати.Проведен,
        ЖурналДокументовЖурналДляПодписиИПечати.Контрагент,
        ЖурналДокументовЖурналДляПодписиИПечати.Склад,
        ЖурналДокументовЖурналДляПодписиИПечати.Менеджер,
        ЖурналДокументовЖурналДляПодписиИПечати.ВидОтгрузки,
        МАКСИМУМ(ЖурналДокументовЖурналДляПодписиИПечати.СуммаДокумента) КАК СуммаДокумента,
        ЖурналДокументовЖурналДляПодписиИПечати.Организация,
        ВЫБОР
            КОГДА ТИПЗНАЧЕНИЯ(ЖурналДокументовЖурналДляПодписиИПечати.Ссылка) = ТИП(Документ.СборкаТоваров)
                ТОГДА ЖурналДокументовЖурналДляПодписиИПечати.Тип
            ИНАЧЕ ЖурналДокументовЖурналДляПодписиИПечати.Ссылка.ХозяйственнаяОперация
        КОНЕЦ КАК Тип,
        МИНИМУМ(ВложенныйЗапрос.РасхОрдерСформирован) КАК РасхОрдерСформирован,
        МИНИМУМ(ВложенныйЗапрос.РасхОрдерНапечатан) КАК РасхОрдерНапечатан
    ИЗ
        КритерийОтбора.ОтгрузкаПоСкладам(&ОтборПоСкладу) КАК ОтгрузкаПоСкладам
            ЛЕВОЕ СОЕДИНЕНИЕ ЖурналДокументов.ЖурналДляПодписиИПечати КАК ЖурналДокументовЖурналДляПодписиИПечати
                ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                    ТоварыКОтгрузкеОстатки.ДокументОтгрузки КАК ДокументОтгрузки,
                    МИНИМУМ(ВЫБОР
                            КОГДА ТоварыКОтгрузкеОстатки.КОтгрузкеОстаток - ТоварыКОтгрузкеОстатки.СобираетсяОстаток > 0
                                ТОГДА ЛОЖЬ
                            ИНАЧЕ ИСТИНА
                        КОНЕЦ) КАК РасхОрдерСформирован,
                    МИНИМУМ(ИСТИНА) КАК РасхОрдерНапечатан
                ИЗ
                    РегистрНакопления.ТоварыКОтгрузке.Остатки(
                            ,
                            НЕ &ИспользоватьОтбор
                                ИЛИ Склад = &ОтборПоСкладу) КАК ТоварыКОтгрузкеОстатки
               
                СГРУППИРОВАТЬ ПО
                    ТоварыКОтгрузкеОстатки.ДокументОтгрузки
               
                ОБЪЕДИНИТЬ ВСЕ
               
                ВЫБРАТЬ
                    РасходныйОрдерНаТовары.Распоряжение,
                    МИНИМУМ(ИСТИНА),
                    МИНИМУМ(РасходныйОрдерНаТовары.ПризнакПечатиСкладскойРасходнойНакладной)
                ИЗ
                    Документ.РасходныйОрдерНаТовары КАК РасходныйОрдерНаТовары
                ГДЕ
                    (РасходныйОрдерНаТовары.Склад = &ОтборПоСкладу
                            ИЛИ НЕ &ИспользоватьОтбор)
                    И РасходныйОрдерНаТовары.Проведен = ИСТИНА
               
                СГРУППИРОВАТЬ ПО
                    РасходныйОрдерНаТовары.Распоряжение) КАК ВложенныйЗапрос
                ПО ЖурналДокументовЖурналДляПодписиИПечати.Ссылка = ВложенныйЗапрос.ДокументОтгрузки
            ПО (НЕ &ИспользоватьОтбор
                    ИЛИ ЖурналДокументовЖурналДляПодписиИПечати.Ссылка = ОтгрузкаПоСкладам.Ссылка)
    
    СГРУППИРОВАТЬ ПО
        ЖурналДокументовЖурналДляПодписиИПечати.Менеджер,
        ЖурналДокументовЖурналДляПодписиИПечати.ВидОтгрузки,
        ЖурналДокументовЖурналДляПодписиИПечати.Ссылка,
        ЖурналДокументовЖурналДляПодписиИПечати.Номер,
        ЖурналДокументовЖурналДляПодписиИПечати.ПометкаУдаления,
        ЖурналДокументовЖурналДляПодписиИПечати.Дата,
        ЖурналДокументовЖурналДляПодписиИПечати.Склад,
        ЖурналДокументовЖурналДляПодписиИПечати.Контрагент,
        ЖурналДокументовЖурналДляПодписиИПечати.Проведен,
        ЖурналДокументовЖурналДляПодписиИПечати.Организация,
        ВЫБОР
            КОГДА ТИПЗНАЧЕНИЯ(ЖурналДокументовЖурналДляПодписиИПечати.Ссылка) = ТИП(Документ.СборкаТоваров)
                ТОГДА ЖурналДокументовЖурналДляПодписиИПечати.Тип
            ИНАЧЕ ЖурналДокументовЖурналДляПодписиИПечати.Ссылка.ХозяйственнаяОперация
        КОНЕЦ
    
  7. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.443
    Симпатии:
    376
    Баллы:
    104
    а вот в том и фишка, формирование формы не есть её печать :)

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