Имя: Пароль:
1C
1С v8
Динамический список с данными из вирт. таблицы
0 kubik_live
 
20.06.25
21:14
Доброго дня всем.
Помогите решить проблему:
В создаваемое расширение формы списка документа Требование-накладная (Типовая Бухгалтерия 3.0) требуется вставить колонку "Сумма" с итогом сумм проводок документа по Кредиту.

Изменил запрос в дин. списке:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ХозрасчетныйОбороты.Регистратор КАК ТребованиеНакладная,
    СУММА(ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотКт, 0)) КАК СуммаОборотКт
ПОМЕСТИТЬ ВТ_Обороты
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаДокумента, &ДатаДокумента, Регистратор, ) КАК ХозрасчетныйОбороты

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОбороты.Регистратор

ИНДЕКСИРОВАТЬ ПО
    ТребованиеНакладная
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДокументТребованиеНакладная.Ссылка КАК Ссылка,
    ДокументТребованиеНакладная.ПометкаУдаления КАК ПометкаУдаления,
    ДокументТребованиеНакладная.Номер КАК Номер,
    ДокументТребованиеНакладная.Дата КАК Дата,
    ДокументТребованиеНакладная.Проведен КАК Проведен,
    ДокументТребованиеНакладная.Организация КАК Организация,
    ДокументТребованиеНакладная.Склад КАК Склад,
    ДокументТребованиеНакладная.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
    ДокументТребованиеНакладная.СчетаУчетаЗатратВТаблице КАК СчетаУчетаЗатратВТаблице,
    ДокументТребованиеНакладная.СчетЗатрат КАК СчетЗатрат,
    ДокументТребованиеНакладная.ПодразделениеЗатрат КАК ПодразделениеЗатрат,
    ДокументТребованиеНакладная.ЦельРасхода КАК ЦельРасхода,
    ДокументТребованиеНакладная.Субконто1 КАК Субконто1,
    ДокументТребованиеНакладная.Субконто2 КАК Субконто2,
    ДокументТребованиеНакладная.Субконто3 КАК Субконто3,
    ДокументТребованиеНакладная.ОтражениеВУСН КАК ОтражениеВУСН,
    ДокументТребованиеНакладная.НДСвСтоимостиТоваров КАК НДСвСтоимостиТоваров,
    ДокументТребованиеНакладная.ДляСписанияНДСиспользоватьСчетИАналитикуУчетаЗатрат КАК ДляСписанияНДСиспользоватьСчетИАналитикуУчетаЗатрат,
    ДокументТребованиеНакладная.СчетСписанияНДС КАК СчетСписанияНДС,
    ДокументТребованиеНакладная.СубконтоСписанияНДС1 КАК СубконтоСписанияНДС1,
    ДокументТребованиеНакладная.СубконтоСписанияНДС2 КАК СубконтоСписанияНДС2,
    ДокументТребованиеНакладная.СубконтоСписанияНДС3 КАК СубконтоСписанияНДС3,
    ДокументТребованиеНакладная.Ответственный КАК Ответственный,
    ДокументТребованиеНакладная.Комментарий КАК Комментарий,
    ДокументТребованиеНакладная.Контрагент КАК Контрагент,
    ДокументТребованиеНакладная.РучнаяКорректировка КАК РучнаяКорректировка,
    ДокументТребованиеНакладная.МоментВремени КАК МоментВремени,
    ВЫБОР
        КОГДА ДокументТребованиеНакладная.РучнаяКорректировка = ИСТИНА
            ТОГДА ВЫБОР
                    КОГДА ДокументТребованиеНакладная.ПометкаУдаления = ИСТИНА
                        ТОГДА 10
                    КОГДА ДокументТребованиеНакладная.Проведен = ЛОЖЬ
                        ТОГДА 9
                    ИНАЧЕ 8
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА ДокументТребованиеНакладная.ПометкаУдаления = ИСТИНА
                    ТОГДА 2
                КОГДА ДокументТребованиеНакладная.Проведен = ИСТИНА
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ
    КОНЕЦ КАК СостояниеДокумента,
    ВЫБОР
        КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL
            ТОГДА 1
        КОГДА НаличиеФайлов.ЕстьФайлы
            ТОГДА 0
        ИНАЧЕ 1
    КОНЕЦ КАК ЕстьФайлы,
    ДокументТребованиеНакладная.ВидОперации КАК ВидОперации,
    СостоянияПоОбъектамУчетаЭДО.ПредставлениеСостояния КАК СостояниеЭДО,
    ДокументТребованиеНакладная.Дата КАК ДатаДокумента,
    ВТ_Обороты.СуммаОборотКт КАК СуммаДокумента
ИЗ
    Документ.ТребованиеНакладная КАК ДокументТребованиеНакладная
        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
        ПО ДокументТребованиеНакладная.Ссылка = НаличиеФайлов.ОбъектСФайлами}
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияПоОбъектамУчетаЭДО КАК СостоянияПоОбъектамУчетаЭДО
        ПО ДокументТребованиеНакладная.Ссылка = СостоянияПоОбъектамУчетаЭДО.СсылкаНаОбъект
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК ВТ_Обороты
        ПО ДокументТребованиеНакладная.Ссылка = ВТ_Обороты.ТребованиеНакладная

Резюме: отрабатывает правильно, но ОООчень долго (при открытии, при проведении в списке, при снятии проведения в списке)
Я так понимаю, что проблема видимо в том, что в параметр &ДатаДокумента ничего нет и формируется огромная временная таблица за весь период.

Как ускорить подскажите или ЧЯНТД?
1 Волшебник
 
20.06.25
21:25
Обороты по всем счетам с разворотом по регистратору? Ну-ну
2 kubik_live
 
20.06.25
21:34
(1) Это вторая проблема: я так понимаю, что еще надо наложить ограничение по группировке счетов из ТЧ материалы документа Требование-накладная?
3 Мультук
 
гуру
20.06.25
21:43
(0)

0) Засовывать ВТ в дин.таблицу изначально "так себе идея"

1) Где отбор по типу регистратора в ВТ_Обороты  ?

ГДЕ ХозрасчетныйОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная


Вам же нужен только Документ.ТребованиеНакладная, а вы собираете по ВСЕМ регистраторам

2)Где отбор по счету ? Там скорее всего небольшой список счетов.


P.S.
если прямо надо, бухгалтера плачут. Ухи просят...

а) Заведите регистр сведений измерение - документ ТребованиеНакладная , ресурс СуммаОборотКт
б) Заполните его один раз обработкой
в) В обработке проведения и при отмене проведения обновляйте там инфо
4 kubik_live
 
20.06.25
21:46
(3) Спасибо, буду пробовать.

По отбору счетов: я так понимаю надо еще ВТ создать по группировке счетов из ТЧ Материалы документа Требование-Накладная, так?
5 kubik_live
 
20.06.25
21:48
(3)
"..А затем "а вдруг проведен"
КОГДА ДокументТребованиеНакладная.Проведен = ИСТИНА

А "вдруг документ помечен на удаление"...

Давно в БП помеченные на удаление или не проведенные документы делают движения ?"

А здесь в случае NULL пустую ссылку надо?
6 kubik_live
 
20.06.25
22:31
(3) СПАСИБО ГУРУ!!!!
Наложил условия по типу и по счету - ВЗЛЕТЕЛО! Открывается, проводится и отмена проведения - очень быстро стало.
Оказалось, что этого достаточно = ну надо еще потестить на других базах...
7 kubik_live
 
20.06.25
22:26
Результат
8 kubik_live
 
20.06.25
22:37
(1) Станислав, спасибо!
9 kubik_live
 
20.06.25
23:27
Для желающих внедрить сие в типовую БП 3.0:
Необходимо еще внести в расширение Отчет: РеестрДокументов  и внести изменения в расширении ФормаОтчета

Функция Расш_УточнитьТекстЗапросаПоДопРеквизитам(ТекстЗапроса)

Иначе не будет формироваться отчет "Реестр документов" по требованиям-накладным!
10 Волшебник
 
22.06.25
00:22
(9) перестаньте нести бред