Добавление присоединенного файла в отчет "Ведомость расчетов с поставщиками"

1. crree 23.03.25 14:26 Сейчас в теме
Добрый день,

Задача: есть стандартный отчет "Ведомость расчетов с поставщиками" из ERP2, я его уже немного доработал, добавив к каждому объекту расчета связанную заявку на закупку (Документ, разработанный отдельно в расширении).
Необходимо в отчет вывести для каждого объекта расчета и заявки на закупку по одному их присоединенному файлу.

У меня получилось вывести присоединенные файлы для заявки на закупку: я добавил в один из запросов левое соединение, набор данных ФайлыЗаявкиНаЗакупку (выбирает данные из справочника знз_ЗаявкаНаЗакупкуПрисоединенныеФайлы) и связь наборов данных, здесь проблема лишь в том, что при этом выводятся все файлы для заявки на закупку - как сделать, чтобы выводился только один?

Также есть проблема в том, что при добавлении еще одного набора данных ФайлыЗакупки (выбирает данные из справочника ДоговорыКонтрагентовПрисоединенныеФайлы) и таком же добавлении левого соединения в уже имеющийся запрос, связи наборов данных - получаю ошибку "Использование полей из не связанных наборов данных не допустимо".

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

Вид отчета должен быть такой:
ОбъектРасчета \ ФайлЗакупки \ ЗаявкаНаЗакупку \ ФайлЗаявкиНаЗакупку

Заранее спасибо за любую помощь.
По теме из базы знаний
Найденные решения
26. crree 23.03.25 19:10 Сейчас в теме
Для решения проблемы связи использовал странную конструкцию, не уверен в ее использовании, но работает - В связях наборов данных между 2 и 3 таблицах, что связаны только с 1, я поставил источник данных 2 табл, приемник 3, в выражение источник и выражение приемник записал просто цифру 1.

Для решения проблемы с выводом всех строк файлов - воспользовался следующей статьей, как же она меня выручила. ВЫБРАТЬ В ЗАПРОСЕ ОДНУ ЗАПИСЬ ИЗ НЕСКОЛЬКИХ. Вкратце - используем коррелированный запрос, внутри которого выбираем, какое поле должно быть уникальным, в моем случае это был ВладелецФайла. Ниже предоставляю код, который решил мою задачу:
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ДоговорыКонтрагентовПрисоединенныеФайлы.Ссылка 		  КАК ФайлЗакупки,
	ДоговорыКонтрагентовПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайлаЗакупки,
	ДоговорыКонтрагентовПрисоединенныеФайлы.ДатаСоздания  КАК ДатаСоздания
ИЗ
	Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы    КАК ДоговорыКонтрагентовПрисоединенныеФайлы  
ГДЕ
	(ДоговорыКонтрагентовПрисоединенныеФайлы.Ссылка,
	 ДоговорыКонтрагентовПрисоединенныеФайлы.ВладелецФайла, 
	 ДоговорыКонтрагентовПрисоединенныеФайлы.ДатаСоздания) 
	 	В (ВЫБРАТЬ ПЕРВЫЕ 1 Ссылка, ВладелецФайла, ДатаСоздания 
	 	ИЗ Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы КАК ВСЁ ГДЕ ВСЁ.ВладелецФайла = ДоговорыКонтрагентовПрисоединенныеФайлы.ВладелецФайла)
УПОРЯДОЧИТЬ ПО
	ДатаСоздания УБЫВ
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107184 23.03.25 14:33 Сейчас в теме
(1)
выводятся все файлы для заявки на закупку - как сделать, чтобы выводился только один?
Установить такие условия в запросе, чтобы выводился только один. Или отдельно организовать ВТ с отобранными файлами.
3. crree 23.03.25 14:42 Сейчас в теме
(2) как это можно реализовать, подскажите, пожалуйста?
4. user2107184 23.03.25 15:02 Сейчас в теме
(3) Что "это"? Это твой запрос, и твои данные. Тебе и виднее какие условия выставлять в запросе.
5. crree 23.03.25 15:47 Сейчас в теме
(4) Уважаемый user2107184,
Подскажите, пожалуйста, как именно должны выглядеть "условия в запросе, чтобы выводился только один"? Я не прошу вас переписать мой запрос - просто напишите или объясните, как это должно выглядеть? Я уже попробовал ВЫБРАТЬ ПЕРВЫЕ 1, но ничего не изменилось
6. user2107184 23.03.25 15:52 Сейчас в теме
(5) ГДЕ А.П1 = Б.П1 И А.П2 = Б.П2 И... так далее.
только один
Какой из них?
7. crree 23.03.25 15:59 Сейчас в теме
(6) Спасибо за ваши попытки мне помочь. Возможно, мне стоит объяснить еще раз, что имею на данный момент и с чем борюсь.

Код запроса:
ВЫБРАТЬ
	ДоговорыКонтрагентовПрисоединенныеФайлы.Ссылка 		  КАК ФайлЗакупки,
	ДоговорыКонтрагентовПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайлаЗакупки
ИЗ
	Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы    КАК ДоговорыКонтрагентовПрисоединенныеФайлы


При таком запросе я получаю ситуацию, где если у ОбъектаРасчетов есть 2 присоединенных файла, то в отчете выведется 2 строки, мне же нужно, чтобы был получен первый файл из двух, соответственно и выведена только одна строка.
8. crree 23.03.25 16:00 Сейчас в теме
(7) Понимаю, что здесь в запросе ничего не делаю для этого, но хочу узнать, что именно мне необходимо в него добавить, чтобы решить данную проблему
14. user2107184 23.03.25 16:47 Сейчас в теме
(8)
но хочу узнать, что именно мне необходимо в него добавить
Либо условия отбора или связи, однозначно выделяющие "одно единственное любимое", либо отдельный подзапрос для выбора таких "единственных", и последующей связи с основной таблицей запроса.
15. crree 23.03.25 17:00 Сейчас в теме
(14) Понял вашу мысль, давайте сделаем привязку к ДатеСоздания, вывести тот файл, у которого она минимальная. Как это будет выглядеть в коде?
16. user2107184 23.03.25 17:08 Сейчас в теме
(15)
Как это будет выглядеть в коде?
Куда ты торопишься?
Никто за тебя тут код писать не будет, не ссы.
Давай-ка подумаем, давай-ка поразмышляем - какими способоми в запросе можно получить минимальную дату из нескольких?

* Вопрос со звездочкой: а что если даты одинаковые?

Мужик идет по пустыне, изнывая от жары и жажды, вдруг видит, лампа лежит. Он ее потер, а оттуда джин вылетает:
— Что прикажешь, мой Господин?
— Хочу домой!
— Ну, пошли...
— Нет, ты не понял, я быстро хочу!
— Ну, тогда побежали!
17. crree 23.03.25 17:27 Сейчас в теме
(16) Анекдот отличный, жаль не помогает никак. Понимаю, поглумиться над незнающим, это весело. Но, если есть такая возможность, давайте перейдем к сути вопроса. Если же единственное, чего вы добиваетесь - моей ответной желчи, то вы ее не получите, и предлагаю на этом закончить. Если бы я знал ответ, я бы не обращался на форум за помощью к профессионалам.

Тем не менее, вы уже навели меня на верные мысли по решению, за это спасибо.

Состав даты: Дата и время, не думаю, что будет 2 одинаковых у одного документа.

Пробовал так, не вышло:
ВЫБРАТЬ ПЕРВЫЕ 1
	ДоговорыКонтрагентовПрисоединенныеФайлы.Ссылка 		  КАК ФайлЗакупки,
	ДоговорыКонтрагентовПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайлаЗакупки
ИЗ
	Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы    КАК ДоговорыКонтрагентовПрисоединенныеФайлы  
УПОРЯДОЧИТЬ ПО
	ДоговорыКонтрагентовПрисоединенныеФайлы.ДатаСоздания
18. user2107184 23.03.25 17:34 Сейчас в теме
(17) Не поглумиться, а заставить или помочь начать думать самостоятельно, а потом воплощать свои мысли в код. Вместо того, чтобы бездумно играть в угадайку и попрошайничать. Но если начнешь тупить - начну глумиться, конечно, без вариантов.
Если бы я знал ответ, я бы не обращался на форум за помощью к профессионалам.
Это азы работы с запросами. Для вырезания аппендицита начинающему хирургу нет нужды обращаться к профессорам.
Пробовал так, не вышло:
Какой именно каменный цветок не выходит в этом месте?
19. crree 23.03.25 17:38 Сейчас в теме
(18) При таком запросе не получаю вообще никаких данных
20. user2107184 23.03.25 17:39 Сейчас в теме
(19) Ну значит их там нет вообще.
22. crree 23.03.25 18:28 Сейчас в теме
(20) При этом если я делаю просто ВЫБРАТЬ и не использую УПОРЯДОЧИТЬ, то данные есть
23. user2107184 23.03.25 18:33 Сейчас в теме
(22) Ну, давай поверим тебе на слово, и закончим сеанс телепатии.
24. crree 23.03.25 18:34 Сейчас в теме
(23) Прислать вам 2 скрина, где при отсутствии "ПЕРВЫЕ 1" и "УПОРЯДОЧИТЬ" данные есть, а с ними - нет?)
25. user2107184 23.03.25 18:39 Сейчас в теме
(24) Ага, до востребования.
21. user2107184 23.03.25 17:40 Сейчас в теме
(17)
Тем не менее, вы уже навели меня на верные мысли по решению,
Вот видишь! А ты говоришь, что я над тобой глумлюсь...
Я тебе помогаю мыслить!!!
Я бы даже сказал - научаю мыслить!
9. user2107184 23.03.25 16:12 Сейчас в теме
(7)
чтобы был получен первый файл из двух
Что значит "первый"? Почему ты считаешь его первым?
10. crree 23.03.25 16:34 Сейчас в теме
(9) Без разницы, давайте будем учитывать, что не первый, а один единственный
11. user2107184 23.03.25 16:36 Сейчас в теме
(10)
Без разницы
Ну если тебе без разницы - то система и выдает тебе все. Она за тебя выбор делать не собирается.
а один единственный
из скольки?

Если ты сам себе не можешь объяснить - почему тебе нужен именно этот файл из кучи файлов - то как ты собираешься объяснить это системе?
12. crree 23.03.25 16:43 Сейчас в теме
(11) "Ну если тебе без разницы - то системы и выдает тебе все. Она за тебя выбор делать не собирается." - см. (8)

"из скольки?"
из всех, количество присоединенных файлов к каждому документу неограниченно
13. user2107184 23.03.25 16:44 Сейчас в теме
(12)
Если ты сам себе не можешь объяснить - почему тебе нужен именно этот файл из кучи файлов - то как ты собираешься объяснить это системе?

Или ты думаешь, что есть какая-то специальная красная таблетка, которая за тебя все сделает?
26. crree 23.03.25 19:10 Сейчас в теме
Для решения проблемы связи использовал странную конструкцию, не уверен в ее использовании, но работает - В связях наборов данных между 2 и 3 таблицах, что связаны только с 1, я поставил источник данных 2 табл, приемник 3, в выражение источник и выражение приемник записал просто цифру 1.

Для решения проблемы с выводом всех строк файлов - воспользовался следующей статьей, как же она меня выручила. ВЫБРАТЬ В ЗАПРОСЕ ОДНУ ЗАПИСЬ ИЗ НЕСКОЛЬКИХ. Вкратце - используем коррелированный запрос, внутри которого выбираем, какое поле должно быть уникальным, в моем случае это был ВладелецФайла. Ниже предоставляю код, который решил мою задачу:
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ДоговорыКонтрагентовПрисоединенныеФайлы.Ссылка 		  КАК ФайлЗакупки,
	ДоговорыКонтрагентовПрисоединенныеФайлы.ВладелецФайла КАК ВладелецФайлаЗакупки,
	ДоговорыКонтрагентовПрисоединенныеФайлы.ДатаСоздания  КАК ДатаСоздания
ИЗ
	Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы    КАК ДоговорыКонтрагентовПрисоединенныеФайлы  
ГДЕ
	(ДоговорыКонтрагентовПрисоединенныеФайлы.Ссылка,
	 ДоговорыКонтрагентовПрисоединенныеФайлы.ВладелецФайла, 
	 ДоговорыКонтрагентовПрисоединенныеФайлы.ДатаСоздания) 
	 	В (ВЫБРАТЬ ПЕРВЫЕ 1 Ссылка, ВладелецФайла, ДатаСоздания 
	 	ИЗ Справочник.ДоговорыКонтрагентовПрисоединенныеФайлы КАК ВСЁ ГДЕ ВСЁ.ВладелецФайла = ДоговорыКонтрагентовПрисоединенныеФайлы.ВладелецФайла)
УПОРЯДОЧИТЬ ПО
	ДатаСоздания УБЫВ
Показать
27. user2107184 23.03.25 21:08 Сейчас в теме
(26) И где здесь "первый"? Тут только "любой единственный". То есть, как скуль на душу положит.
28. crree 23.03.25 22:41 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот