Версия для печати темы (https://pro1c.org.ua/index.php?s=af4b378ed907d6329ae6b25f70c1cf33&showtopic=12250)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Запретить считывание динамического списка.

Автор: logist 25.04.13, 18:15

В форме документа есть динамический список, нужно при открытии формы нового документа, что бы этот список не "считывался". Какие будут предложения?

Автор: Vofka 25.04.13, 18:44

"Не считывался" в зависимости от чего?

Автор: logist 25.04.13, 20:38

Список содержит запрос. который для нового документа не имеет смысла. но исходя из его сложности он таки пытается отработать, конечно результат пустой, но тормоза при открытии ощутимы.

Автор: Vofka 25.04.13, 21:02

А если динамический список не видимый, запрос всеравно выполняется? Если нет, может для нового документа не показывать его просто?

Автор: logist 25.04.13, 21:46

Завтра попробую. но думаю все равно список заполняется.

Автор: Zaval 26.04.13, 3:19

Немного извратно)

Свойство ДС
ДинамическоеСчитываниеДанных (DynamicDataRead)
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Управление размером порций выбора данных. Истина - динамический список должен выбирать данные только при необходимости их отображения на экране.
Доступность:
Сервер.

Будет ли реагировать на видимость ДС - надо проверять. Возможно, придется менять не видимость, а высоту списка(для Нового)

Автор: Vofka 26.04.13, 7:53

Zaval, а причем тут Динамическое считывание данных? В результате может получаться вегда 1 строка, но сам запрос может быть с 10 соединениями и тому подобное. smile.gif

Автор: logist 26.04.13, 8:39

Да, динамическое считывание тут не причем. И видимость тоже никакого эффекта не дала.

Автор: pablo 26.04.13, 9:04

а если поставить большое значение ПериодАвтоОбновления? Или вообще снять Автообновление? Это свойства элемента формы

Автор: logist 26.04.13, 9:27

Какая разница какое автообновление, проблема в начальном заполнении, момент ПриСозданииНаСервере

Автор: pablo 26.04.13, 10:32

А если ПриСоздании опустошать текст запроса? А заполнять его в нужный момент?

Или сделать текст запроса пустышкой с нужной структурой полей

Автор: Vofka 26.04.13, 10:56

А можно текст запроса показать?

Автор: logist 26.04.13, 13:18

Цитата(pablo @ 26.04.13, 10:32) http://pro1c.org.ua/index.php?act=findpost&pid=68535
А можно текст запроса показать?

Текст запроса
ВЫБРАТЬ
    ЕСТЬNULL(Загруженный.Связь, 3) КАК Связь,
    Загруженный.КоличествоЗаказано КАК КоличествоЗаказано,
    Загруженный.ЦенаЗаказано,
    Выполненный.ЦенаВыполнено,
    Выполненный.СуммаВыполнено КАК СуммаВыполнено,
    ЗагруженныйВсего.КоличествоЗаказВсего КАК КоличествоЗаказВсего,
    ЕСТЬNULL(ВыполненоВсего.КоличествоВыполненоВсего, 0) КАК КоличествоВыполненоВсего,
    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток,
    РезервПоЗаказамПокупателейОстатки.КоличествоОстаток КАК КоличествоРезервКлиент,
    РезервПоЗаказамПокупателейОстатки1.КоличествоОстаток КАК КоличествоЧужойРезерв,
    РезервПоЗаказамПокупателейОстатки2.КоличествоОстаток КАК КоличествоРезервПодразделение,
    Выполненный.КоличествоВыполнено КАК КоличествоВыполнено,
    ВсяНоменклатура.Номенклатура,
    Накладные.НедозаказПоЗаказу,
    Накладные.НедозаказПоНакладным,
    Накладные.ЦенаНакладные,
    Накладные.КоличествоНакладные,
    Накладные.СуммаНакладные,
    НакладныеВсего.КоличествоНакладныеВсего
ИЗ
    (ВЫБРАТЬ
        ЗаказыПокупателейОбороты.Номенклатура КАК Номенклатура
    ИЗ
        РегистрНакопления.ЗаказыПокупателей.Обороты(, , Авто, ЗаказПокупателя = &Ссылка) КАК ЗаказыПокупателейОбороты
    
    СГРУППИРОВАТЬ ПО
        ЗаказыПокупателейОбороты.Номенклатура) КАК ВсяНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказПокупателяЗагруженныйЗаказ.ЕстьСвязь КАК Связь,
            ЗаказПокупателяЗагруженныйЗаказ.Номенклатура КАК Номенклатура,
            СУММА(ЗаказПокупателяЗагруженныйЗаказ.Количество) КАК КоличествоЗаказано,
            ЗаказПокупателяЗагруженныйЗаказ.Цена КАК ЦенаЗаказано
        ИЗ
            Документ.ЗаказПокупателя.ЗагруженныйЗаказ КАК ЗаказПокупателяЗагруженныйЗаказ
        ГДЕ
            ЗаказПокупателяЗагруженныйЗаказ.Ссылка = &Ссылка
            И ЗаказПокупателяЗагруженныйЗаказ.ПодразделениеКонтрагента В(&Подразделение)
            И ЗаказПокупателяЗагруженныйЗаказ.Ссылка <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
        
        СГРУППИРОВАТЬ ПО
            ЗаказПокупателяЗагруженныйЗаказ.ЕстьСвязь,
            ЗаказПокупателяЗагруженныйЗаказ.Номенклатура,
            ЗаказПокупателяЗагруженныйЗаказ.Цена) КАК Загруженный
        ПО ВсяНоменклатура.Номенклатура = Загруженный.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказПокупателяЗагруженныйЗаказ.Номенклатура КАК Номенклатура,
            СУММА(ЗаказПокупателяЗагруженныйЗаказ.Количество) КАК КоличествоЗаказВсего
        ИЗ
            Документ.ЗаказПокупателя.ЗагруженныйЗаказ КАК ЗаказПокупателяЗагруженныйЗаказ
        ГДЕ
            ЗаказПокупателяЗагруженныйЗаказ.Ссылка = &Ссылка
            И ЗаказПокупателяЗагруженныйЗаказ.Ссылка <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
        
        СГРУППИРОВАТЬ ПО
            ЗаказПокупателяЗагруженныйЗаказ.Номенклатура) КАК ЗагруженныйВсего
        ПО ВсяНоменклатура.Номенклатура = ЗагруженныйВсего.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
            СУММА(ЕСТЬNULL(ЗаказПокупателяТовары.Количество, 0)) КАК КоличествоВыполнено,
            ЗаказПокупателяТовары.Цена КАК ЦенаВыполнено,
            СУММА(ЗаказПокупателяТовары.Сумма) КАК СуммаВыполнено
        ИЗ
            Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
        ГДЕ
            ЗаказПокупателяТовары.Ссылка = &Ссылка
            И ЗаказПокупателяТовары.ПодразделениеКонтрагента В(&Подразделение)
            И ЗаказПокупателяТовары.Ссылка <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
        
        СГРУППИРОВАТЬ ПО
            ЗаказПокупателяТовары.Номенклатура,
            ЗаказПокупателяТовары.Цена) КАК Выполненный
        ПО ВсяНоменклатура.Номенклатура = Выполненный.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
            СУММА(ЕСТЬNULL(ЗаказПокупателяТовары.Количество, 0)) КАК КоличествоВыполненоВсего
        ИЗ
            Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
        ГДЕ
            ЗаказПокупателяТовары.Ссылка = &Ссылка
            И ЗаказПокупателяТовары.Ссылка <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
        
        СГРУППИРОВАТЬ ПО
            ЗаказПокупателяТовары.Номенклатура) КАК ВыполненоВсего
        ПО ВсяНоменклатура.Номенклатура = ВыполненоВсего.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказыПокупателейОстаткиИОбороты.Номенклатура КАК Номенклатура,
            ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток, 0) - ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоВыполнениеКонечныйОстаток, 0) КАК НедозаказПоЗаказу,
            ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток, 0) КАК НедозаказПоНакладным,
            ЗаказыПокупателейОстаткиИОбороты.Цена КАК ЦенаНакладные,
            ЗаказыПокупателейОстаткиИОбороты.КоличествоВыполнениеРасход КАК КоличествоНакладные,
            ЗаказыПокупателейОстаткиИОбороты.СуммаВыполнениеРасход КАК СуммаНакладные
        ИЗ
            РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(
                    ,
                    ,
                    ,
                    ,
                    ЗаказПокупателя = &Ссылка
                        И ЗаказПокупателя <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                        И Подразделение В (&Подразделение)) КАК ЗаказыПокупателейОстаткиИОбороты
        
        СГРУППИРОВАТЬ ПО
            ЗаказыПокупателейОстаткиИОбороты.Номенклатура,
            ЗаказыПокупателейОстаткиИОбороты.Цена,
            ЗаказыПокупателейОстаткиИОбороты.КоличествоВыполнениеРасход,
            ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток, 0) - ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоВыполнениеКонечныйОстаток, 0),
            ЕСТЬNULL(ЗаказыПокупателейОстаткиИОбороты.КоличествоКонечныйОстаток, 0),
            ЗаказыПокупателейОстаткиИОбороты.СуммаВыполнениеРасход) КАК Накладные
        ПО ВсяНоменклатура.Номенклатура = Накладные.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО ВсяНоменклатура.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервПоЗаказамПокупателей.Остатки(, Контрагент = &Контрагент) КАК РезервПоЗаказамПокупателейОстатки
        ПО ВсяНоменклатура.Номенклатура = РезервПоЗаказамПокупателейОстатки.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервПоЗаказамПокупателей.Остатки(, Контрагент <> &Контрагент) КАК РезервПоЗаказамПокупателейОстатки1
        ПО ВсяНоменклатура.Номенклатура = РезервПоЗаказамПокупателейОстатки1.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервПоЗаказамПокупателей.Остатки(
                ,
                ПодразделениеКонтрагента В (&Подразделение)
                    И Контрагент = &Контрагент) КАК РезервПоЗаказамПокупателейОстатки2
        ПО ВсяНоменклатура.Номенклатура = РезервПоЗаказамПокупателейОстатки2.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказыПокупателейОстаткиИОбороты.Номенклатура КАК Номенклатура,
            СУММА(ЗаказыПокупателейОстаткиИОбороты.КоличествоВыполнениеРасход) КАК КоличествоНакладныеВсего
        ИЗ
            РегистрНакопления.ЗаказыПокупателей.ОстаткиИОбороты(
                    ,
                    ,
                    ,
                    ,
                    ЗаказПокупателя = &Ссылка
                        И ЗаказПокупателя <> ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)) КАК ЗаказыПокупателейОстаткиИОбороты
        
        СГРУППИРОВАТЬ ПО
            ЗаказыПокупателейОстаткиИОбороты.Номенклатура) КАК НакладныеВсего
        ПО ВсяНоменклатура.Номенклатура = НакладныеВсего.Номенклатура

Автор: Vofka 26.04.13, 14:52

А почему это не вынести во внешний отчет, зачем именно в динамическом списке?

Автор: logist 26.04.13, 15:42

Нужно динамическое считывание, пояснять не буду, вариант с отчетом не подходит, это была изначальная идея до списка.

Автор: Vofka 26.04.13, 15:49

Ну ладно, не поясняйте.

Автор: logist 26.04.13, 20:47

У меня есть большое подозрение, что вариант с Видимостью таки работает, только в серверном варианте.
Сейчас проверял серверный вариант и заметил, что форма нового открывается без подтормаживания, хотя та же база, но в файловом варианте, при открытии заметно тормозит.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua