Имя: Пароль:
1C
 
РаботаСФайлами - ПрисоединенныеФайлы
0 RomaH
 
05.07.24
09:36
Понадобилось сделать иерархию и нагенерить группы "по умолчанию" для каждого владельца

а владельцев много (более 100 000)

так вот - типовой запрос списка - вешает форму...

хотя сам запрос элементарный и в консоли запросов возвращает правильный список из 3 групп по умолчанию
1 RomaH
 
05.07.24
09:36
типовой код:

	"ВЫБРАТЬ
	|	Файлы.Ссылка КАК Ссылка,
	|	Файлы.ПометкаУдаления,
	|	ВЫБОР
	|		КОГДА Файлы.ПометкаУдаления = ИСТИНА
	|			ТОГДА ЕСТЬNULL(Файлы.ИндексКартинки, 2) + 1
	|		ИНАЧЕ ЕСТЬNULL(Файлы.ИндексКартинки, 2)
	|	КОНЕЦ КАК ИндексКартинки,
	|	Файлы.Наименование КАК Наименование,
	|	ВЫРАЗИТЬ(Файлы.Описание КАК СТРОКА(500)) КАК Описание,
	|	Файлы.Автор,
	|	Файлы.ДатаСоздания,
	|	Файлы.Изменил КАК Отредактировал,
	|	ДОБАВИТЬКДАТЕ(Файлы.ДатаМодификацииУниверсальная, СЕКУНДА, &СекундДоМестногоВремени) КАК ДатаИзменения,
	|	ВЫРАЗИТЬ(Файлы.Размер / 1024 КАК ЧИСЛО(10, 0)) КАК Размер,
	|	Файлы.ПодписанЭП,
	|	Файлы.Зашифрован,
	|	ВЫБОР
	|		КОГДА Файлы.ПодписанЭП
	|				И Файлы.Зашифрован
	|			ТОГДА 2
	|		КОГДА Файлы.Зашифрован
	|			ТОГДА 1
	|		КОГДА Файлы.ПодписанЭП
	|			ТОГДА 0
	|		ИНАЧЕ -1
	|	КОНЕЦ КАК НомерКартинкиПодписанЗашифрован,
	|	ВЫБОР
	|		КОГДА НЕ Файлы.Редактирует В (&ПустыеПользователи)
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК ФайлРедактируется,
	|	ВЫБОР
	|		КОГДА Файлы.Редактирует = &ТекущийПользователь
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК ФайлРедактируетТекущийПользователь,
	|	ВЫБОР
	|		КОГДА НЕ Файлы.Редактирует В (&ПустыеПользователи)
	|				И Файлы.Редактирует <> &ТекущийПользователь
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК ФайлРедактируетДругойПользователь,
	|	Файлы.Расширение КАК Расширение,
	|	ВЫБОР
	|		КОГДА СтатусыСинхронизацииФайловСОблачнымСервисом.УчетнаяЗапись <> НЕОПРЕДЕЛЕНО
	|				И Файлы.Редактирует = НЕОПРЕДЕЛЕНО
	|			ТОГДА СтатусыСинхронизацииФайловСОблачнымСервисом.УчетнаяЗапись
	|		ИНАЧЕ Файлы.Редактирует
	|	КОНЕЦ КАК Редактирует,
	|	Файлы.Редактирует КАК РедактируетПользователь,
	|	&ЭтоГруппа КАК ЭтоГруппа,
	|	&Служебный КАК Служебный,
	|	Файлы.ВладелецФайла КАК ВладелецФайла,
	|	Файлы.ХранитьВерсии КАК ХранитьВерсии
	|ИЗ
	|	&ИмяСправочника КАК Файлы
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыСинхронизацииФайловСОблачнымСервисом КАК СтатусыСинхронизацииФайловСОблачнымСервисом
	|		ПО Файлы.Ссылка = СтатусыСинхронизацииФайловСОблачнымСервисом.Файл
	|ГДЕ
	|	Файлы.ВладелецФайла = &ВладелецФайлов";
2 RomaH
 
05.07.24
09:37
&ИмяСправочника - Справочник.КартотекаПрисоединенныеФайлы
3 RomaH
 
05.07.24
09:39
такое ощущение, что дин список все-таки к полной таблице генерит запрос(ы)

внес небольшое изменение - и заработало:

	"ВЫБРАТЬ
	|	ЛФ.Ссылка КАК Ссылка
	|ПОМЕСТИТЬ втФайлы
	|ИЗ
	|	&ИмяСправочника КАК ЛФ
	|ГДЕ
	|	ЛФ.ВладелецФайла = &ВладелецФайлов	
	|;
	|ВЫБРАТЬ
	|	Файлы.Ссылка КАК Ссылка,
	|	Файлы.ПометкаУдаления,
	|	ВЫБОР
	|		КОГДА Файлы.ПометкаУдаления = ИСТИНА
	|			ТОГДА ЕСТЬNULL(Файлы.ИндексКартинки, 2) + 1
	|		ИНАЧЕ ЕСТЬNULL(Файлы.ИндексКартинки, 2)
	|	КОНЕЦ КАК ИндексКартинки,
	|	Файлы.Наименование КАК Наименование,
	|	ВЫРАЗИТЬ(Файлы.Описание КАК СТРОКА(500)) КАК Описание,
	|	Файлы.Автор,
	|	Файлы.ДатаСоздания,
	|	Файлы.Изменил КАК Отредактировал,
	|	ДОБАВИТЬКДАТЕ(Файлы.ДатаМодификацииУниверсальная, СЕКУНДА, &СекундДоМестногоВремени) КАК ДатаИзменения,
	|	ВЫРАЗИТЬ(Файлы.Размер / 1024 КАК ЧИСЛО(10, 0)) КАК Размер,
	|	Файлы.ПодписанЭП,
	|	Файлы.Зашифрован,
	|	ВЫБОР
	|		КОГДА Файлы.ПодписанЭП
	|				И Файлы.Зашифрован
	|			ТОГДА 2
	|		КОГДА Файлы.Зашифрован
	|			ТОГДА 1
	|		КОГДА Файлы.ПодписанЭП
	|			ТОГДА 0
	|		ИНАЧЕ -1
	|	КОНЕЦ КАК НомерКартинкиПодписанЗашифрован,
	|	ВЫБОР
	|		КОГДА НЕ Файлы.Редактирует В (&ПустыеПользователи)
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК ФайлРедактируется,
	|	ВЫБОР
	|		КОГДА Файлы.Редактирует = &ТекущийПользователь
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК ФайлРедактируетТекущийПользователь,
	|	ВЫБОР
	|		КОГДА НЕ Файлы.Редактирует В (&ПустыеПользователи)
	|				И Файлы.Редактирует <> &ТекущийПользователь
	|			ТОГДА ИСТИНА
	|		ИНАЧЕ ЛОЖЬ
	|	КОНЕЦ КАК ФайлРедактируетДругойПользователь,
	|	Файлы.Расширение КАК Расширение,
	|	ВЫБОР
	|		КОГДА СтатусыСинхронизацииФайловСОблачнымСервисом.УчетнаяЗапись <> НЕОПРЕДЕЛЕНО
	|				И Файлы.Редактирует = НЕОПРЕДЕЛЕНО
	|			ТОГДА СтатусыСинхронизацииФайловСОблачнымСервисом.УчетнаяЗапись
	|		ИНАЧЕ Файлы.Редактирует
	|	КОНЕЦ КАК Редактирует,
	|	Файлы.Редактирует КАК РедактируетПользователь,
	|	&ЭтоГруппа КАК ЭтоГруппа,
	|	&Служебный КАК Служебный,
	|	Файлы.ВладелецФайла КАК ВладелецФайла,
	|	Файлы.ХранитьВерсии КАК ХранитьВерсии
	|ИЗ втФайлы КАК втФайлы
	|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ &ИмяСправочника КАК Файлы
	|	ПО втФайлы.Ссылка = Файлы.Ссылка
	|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыСинхронизацииФайловСОблачнымСервисом КАК СтатусыСинхронизацииФайловСОблачнымСервисом
	|		ПО Файлы.Ссылка = СтатусыСинхронизацииФайловСОблачнымСервисом.Файл
	|ГДЕ
	|	Файлы.ВладелецФайла = &ВладелецФайлов";
4 RomaH
 
05.07.24
09:39
поясните, в чем подвох? почему на больших данных первый запрос "неправильный"
5 Волшебник
 
05.07.24
11:22
>> Понадобилось сделать иерархию и нагенерить группы "по умолчанию" для каждого владельца, а владельцев много (более 100 000)

Ошибочная постановка задачи
6 RomaH
 
05.07.24
11:36
это другой вопрос
а по существу?

почему такой ДС (1) не вывозит 400 000 групп в справочнике?

а как в (3) - вывозит
7 RomaH
 
05.07.24
11:37
(5) а как на БСП сделать у всех владельцев наличие одинаковых групп файлов?
8 Волшебник
 
05.07.24
11:39
Сами дураки
9 Мультук
 
05.07.24
11:40
(6)

Наверное стоит смотреть планы запросов (если прямо сильно надо).

P.S.
Сори, лично я "про группы" так и не понял суть, но я думаю это из-за жары у нас +37С в тени
10 Garykom
 
05.07.24
12:11
(6) Любой ДС не вывозит
Мне успешно в типовой БП удавалось завесить типовую форму списка документов установкой обычного отбора в режиме предприятия
Для составных реквизитов оно запросто
11 RomaH
 
05.07.24
12:49
(10) так как бы запрос ограничивает количество записей по "ГДЕ" - там параметр передается

и вот если напрямую к таблице "ПрикрепленныеФайлы" запрос - то ... виснет

а если ВНУТРЕННЕЕ соединение с предварительно сделанной выборкой из той же таблицы - то все красиво
12 RomaH
 
05.07.24
12:49
ЛЕВОЕ соединение там можно не смотреть - я пробовал - без него поведение не меняется
13 RomaH
 
05.07.24
12:55
(9)
есть БСП
есть "ПрикрепленныеФайлы"

если хотим иерархию в файлах - то....

при этом для каждого владельца группы индивидуальны

и вот мы хотим для пациентов файлы раскидывать по группам "Выписки", "Оплата"

что бы каждый раз не создавать группы - создаем их сразу при создании пациента




но это к сути вопроса не имеет отношения - почему такое поведение? почему в ДС идет обработка всего списка? а не 3 записей отобранных по условию?

|ГДЕ
    |    Файлы.ВладелецФайла = &ВладелецФайлов";
14 youalex
 
05.07.24
13:14
(13) посмотри профайлер/план. может статистика неактуальная
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn