1. user1304317 21.05.20 10:04 Сейчас в теме

Получить количество присоединенных файлов в справочнике

Коллеги, доброго времени суток!
Возник вопрос у меня.
Необходимо получить количество файлов кроме последних по дате за весь период. То есть в карточке элемента во вкладке "Файлы", могут быть несколько одноименных файлов, но различны по дате изменения.
Я сделал запрос, он выводит количество, но как говорят архитекторы, я кое-что не доработал. Возможно у вас есть идея.
Буду благодарен за ваши советы.
Спасибо!

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.Ссылка,
		|	МАКСИМУМ(БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ДатаСоздания) КАК ДатаСоздания
		|ИЗ
		|	Справочник.БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы КАК БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы
		|ГДЕ
		|	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла В(&СТ_ХФ_ВидПрисоединенногоФайла)
		|	И БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ПометкаУдаления = ЛОЖЬ
		|
		|СГРУППИРОВАТЬ ПО
		|	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ВладелецФайла,
		|	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла,
		|	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.Ссылка";
	
	МассивВП = Новый Массив;
	МассивВП.Добавить(Справочники.СТ_ХФ_ВидыПрисоединенныхФайлов.ГруппыНоменклатурыВКаталоге_CAD_REVIT);
	МассивВП.Добавить(Справочники.СТ_ХФ_ВидыПрисоединенныхФайлов.ГруппыНоменклатурыВКаталоге_Изображение);
	МассивВП.Добавить(Справочники.СТ_ХФ_ВидыПрисоединенныхФайлов.ГруппыНоменклатурыВКаталоге_СхемаГабаритыСветильника);
	МассивВП.Добавить(Справочники.СТ_ХФ_ВидыПрисоединенныхФайлов.НайтиПоКоду("000000143"));
	МассивВП.Добавить(Справочники.СТ_ХФ_ВидыПрисоединенныхФайлов.НайтиПоКоду("000000046"));

	Запрос.УстановитьПараметр("СТ_ХФ_ВидПрисоединенногоФайла", МассивВП);
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	Сообщить(ВыборкаДетальныеЗаписи.Количество());
Показать
Найденные решения
12. user1304317 21.05.20 14:42 Сейчас в теме
(11) Вот окончательный запрос:
ВЫБРАТЬ
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.Наименование,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ДатаСоздания) КАК КоличествоФайлов,
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ВладелецФайла,
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла
ИЗ
	Справочник.БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы КАК БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы
ГДЕ
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла В(&СТ_ХФ_ВидПрисоединенногоФайла)
	И БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ПометкаУдаления = ЛОЖЬ

СГРУППИРОВАТЬ ПО
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.Наименование,
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ВладелецФайла,
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла

ИМЕЮЩИЕ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ДатаСоздания) > 1
Показать
Остальные ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 49 21.05.20 10:10 Сейчас в теме
(1)Ссылка - всегда уникальна. Группировать по ней для получения количества - нонсенс.
user1304317; +1 Ответить
3. user1304317 21.05.20 10:13 Сейчас в теме
(2) В целом запрос у меня нормальный?
4. nomad_irk 49 21.05.20 10:15 Сейчас в теме
(3)В целом у вас - только половина результата. Когда переделаете, чтобы группировка таки считала количество, поймете как должна выглядеть оставшаяся часть запроса.
5. SlavaKron 21.05.20 10:24 Сейчас в теме
Наверно так:
ВЫБРАТЬ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ВладелецФайла) КАК Количество
ИЗ
	Справочник.БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы КАК БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы
ГДЕ
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла В(&СТ_ХФ_ВидПрисоединенногоФайла)
	И БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ПометкаУдаления = ЛОЖЬ
6. Serega-artem 14 21.05.20 10:28 Сейчас в теме
Необходимо получить количество файлов кроме последних по дате за весь период.


Поясните вот эту фразу. Нужно НЕ включать какой-то период в запрос? Что понимается под:

последних по дате за весь период
7. Serega-artem 14 21.05.20 10:31 Сейчас в теме
И количество файлов вам надо в разрезе владельца или общее кол-во? И я так понимаю, что задание у вас тестовое? Просто за конструкцию:

СТ_ХФ_ВидыПрисоединенныхФайлов.НайтиПоКоду("000000046")


в продакшине грозит отрывание рук.
8. user1304317 21.05.20 10:35 Сейчас в теме
(7)В разрезе владельца.
(6) То есть если у владельца 3 файла с разными датами, то нужно получить количество последних двух файлов.
10. Serega-artem 14 21.05.20 10:50 Сейчас в теме
(8) Смотрите:

1.
 МАКСИМУМ(БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ДатаСоздания) КАК ДатаСоздания


Вам просто выдаст наибольшую дату из возможных.

2. Группировку по ссылке надо убрать, вам правильно сказали, что она всегда уникальная будет.

Что-то я тоже так с ходу не могу понять, как выполнить вашу задачу (трудно когда нет возможности "пощупать" конфигурацию). Мыслю в сторону пакетного запроса. В первом получаем наиболее новые файлы для каждого владельца (примерно так у вас и сделано). Вторым запросом делаем как в (5) нос условием на исключение файлов полученных в первом запросе. Делаем группировку по владельцу, и в цикле выводим результат по каждому из владельцев. Но это грубо. Может быть, кто-то из коллег предложит что-то более простое и красивое. Я что-то пока не могу сообразить.
11. SlavaKron 21.05.20 11:45 Сейчас в теме
(8)
если у владельца 3 файла с разными датами, то нужно получить количество последних двух файлов

Всё ещё не понятно. Такая постановка задачи не имеет смысла. То есть, даты файлов никак не участвуют в её решении, которое будет сводиться к:
Количество файлов по владельцу, удовлетворяющих условию - 1.
А ещё вначале вы писали "кроме последних по дате за весь период", что противоречит этому уточнению.
user1304317; +1 Ответить
12. user1304317 21.05.20 14:42 Сейчас в теме
(11) Вот окончательный запрос:
ВЫБРАТЬ
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.Наименование,
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ДатаСоздания) КАК КоличествоФайлов,
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ВладелецФайла,
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла
ИЗ
	Справочник.БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы КАК БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы
ГДЕ
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла В(&СТ_ХФ_ВидПрисоединенногоФайла)
	И БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ПометкаУдаления = ЛОЖЬ

СГРУППИРОВАТЬ ПО
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.Наименование,
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ВладелецФайла,
	БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.СТ_ХФ_ВидПрисоединенногоФайла

ИМЕЮЩИЕ
	КОЛИЧЕСТВО(РАЗЛИЧНЫЕ БИТ_СТ_ГруппыНоменклатурыВКаталогеПрисоединенныеФайлы.ДатаСоздания) > 1
Показать
13. Serega-artem 14 21.05.20 19:10 Сейчас в теме
(11) У меня тоже была мысль про - 1. Но там может быть два файла за одну дату!
9. user1304317 21.05.20 10:48 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Новороссийск
зарплата от 70 000 руб.
Полный день

Ведущий программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Специалист 1 категории (Программист 1С ФЗД)
Фрязино
зарплата от 110 000 руб.
Полный день

Специалист 1 категории (Программист 1С)
Фрязино
зарплата от 110 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству