Выводятся неправильные данные в отчёте СКД

1. user1500067 06.04.21 11:34 Сейчас в теме +0.65 $m
Доброго времени суток! Столкнулся с проблемой вывода одних и тех же данных для разных документов (для каждого документа должно выводиться своё). Суть в том, что на основании Справочник.Запросы создаётся Документ.Телефонный звонок, потом уже на его основании создаётся Справочник.СделкиСКлиентами. Так вот в отчёте я прослеживаю ключевые показатели переходящие из одного в другое. Со связью Справочник.Запрос и Документ.ТелефонныйЗвонок проблем нет (выводятся для каждого документа и запроса правильные значения (связанные между собой)). Однако Документ.ТелефонныйЗвонок и Справочник.СделкиСКлиентами связать нормально не получается. В отчёте получается, что для разных телефонных звонок присваивается одно и тоже значение из Справочник.СделкиСКлиентами. Как исправить понять не могу, уже сломал голову. Подскажите, пожалуйста, варианты решения.

Прилагаю скриншот "Связи" в СКД

Вот код (и скриншот того, как это выглядит):
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	Запросы.Наименование,
	Запросы.ДатаСоздания,
	Запросы.Источник КАК ИсточникЗапроса,
	Запросы.Статус,
	Запросы.Ответственный КАК ОтветственныйМенеджер,
	Запросы.Ссылка КАК НаименованиеЗапроса,
	Запросы.Компания,
	Запросы.РегионКлиента,
	ТелефонныйЗвонок.Ссылка КАК СсылкаТелефон,
	ТелефонныйЗвонок.Дата,
	ТелефонныйЗвонок.Описание,
	Запросы.Телефон КАК ТелефонКлиента,
	СделкиСКлиентами.Статус КАК СтатусСделкиСКлиентом,
	СделкиСКлиентами.Ссылка КАК СделкаСКлиентом,
	СделкиСКлиентами.Менеджер,
	СделкиСКлиентами.Организация,
	СделкиСКлиентами.Партнер КАК Клиент
ИЗ
	Справочник.СделкиСКлиентами КАК СделкиСКлиентами
		ПОЛНОЕ СОЕДИНЕНИЕ Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
			ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Запросы КАК Запросы
			ПО ТелефонныйЗвонок.ВзаимодействиеОснование = Запросы.Ссылка
		ПО (СделкиСКлиентами.Источник = Запросы.Источник)
Показать
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
14. user1500067 07.04.21 08:51 Сейчас в теме
(13)Отказаться от создания справочника на основании документа не получится, такое задание)
Но я уже реализовал выполнение (вроде всё работает) нужной мне задачи с помощью вот такого кода:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   /////////////////////////////////// 
	ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
	
	 ТипДанныхЗаполнения = Тип("ДокументСсылка.ТелефонныйЗвонок"); 
	 ЗаполнитьПоЗапросу(
			ДанныеЗаполнения,
			ДанныеЗаполнения);
			
		//////////////////////////////////КонецПроцедуры
Показать


Процедура ЗаполнитьПоЗапросу(Знач Основание, ДанныеЗаполнения)

	Запрос = Новый Запрос("ВЫБРАТЬ
	                      |	ТелефонныйЗвонок.Ссылка КАК Ссылка
	                      |ИЗ
	                      |	Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
	                      |ГДЕ
	                      |	ТелефонныйЗвонок.Ссылка = &Ссылка");
	Запрос.УстановитьПараметр("Ссылка", Основание);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		
				СсылкаНаДокТелЗвонок = Выборка.Ссылка;
		КонецЕсли;
			
КонецПроцедуры
Показать
15. spacecraft 07.04.21 08:58 Сейчас в теме +0.3 $m
(14) масло мысленное. Зачем искать запросом эту же ссылку, которую и передаете в запрос? Она уже есть.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   /////////////////////////////////// 
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ТелефонныйЗвонок") Тогда
   СсылкаНаДокТелЗвонок = ДанныеЗаполнения;
КонецЕсли;
/////////////
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
11. spacecraft 06.04.21 13:23 Сейчас в теме
(1)
Однако Документ.ТелефонныйЗвонок и Справочник.СделкиСКлиентами связать нормально не получается.

Не указана какая взаимосвязь между ними. У справочника СделкиСКлиентами есть реквизит, в котором хранится ссылка на документ? Вот по нему и связывать нужно.
Абстрактный пример:
ИЗ
    Справочник.Запросы КАК Запросы
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СделкиСКлиентами КАК СделкиСКлиентами
            ПО (СделкиСКлиентами.ИмяРеквизитаНаДокументОснование = ТелефонныйЗвонок.Ссылка)
        ПО ТелефонныйЗвонок.ВзаимодействиеОснование = Запросы.Ссылка
12. user1500067 07.04.21 07:28 Сейчас в теме
(11) Я посмотрел в справочник.СделкиСКлиентами, насколько я понял в этом справочнике нет реквизита, в котором бы хранилась ссылка на документ.Телефонный звонок. Я так понимаю надо такой реквизит созлать и потом на его основании связывать. Вот только не могу понять, как его создать, чтобы там была ссылка на документ основание (Документ.ТелефонныйЗвонок). Не подскажите?
13. spacecraft 07.04.21 08:27 Сейчас в теме
(12) если тупо, то добавить реквизит типа Документ.ТелефонныйЗвонок и заполнять при создании на основании.
Но по хорошему нужно понимать бизнес логику всего этого решения. Самая идея создавать справочник на основании документа.... не однозначная.
14. user1500067 07.04.21 08:51 Сейчас в теме
(13)Отказаться от создания справочника на основании документа не получится, такое задание)
Но я уже реализовал выполнение (вроде всё работает) нужной мне задачи с помощью вот такого кода:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   /////////////////////////////////// 
	ТипДанныхЗаполнения = ТипЗнч(ДанныеЗаполнения);
	
	 ТипДанныхЗаполнения = Тип("ДокументСсылка.ТелефонныйЗвонок"); 
	 ЗаполнитьПоЗапросу(
			ДанныеЗаполнения,
			ДанныеЗаполнения);
			
		//////////////////////////////////КонецПроцедуры
Показать


Процедура ЗаполнитьПоЗапросу(Знач Основание, ДанныеЗаполнения)

	Запрос = Новый Запрос("ВЫБРАТЬ
	                      |	ТелефонныйЗвонок.Ссылка КАК Ссылка
	                      |ИЗ
	                      |	Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
	                      |ГДЕ
	                      |	ТелефонныйЗвонок.Ссылка = &Ссылка");
	Запрос.УстановитьПараметр("Ссылка", Основание);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		
				СсылкаНаДокТелЗвонок = Выборка.Ссылка;
		КонецЕсли;
			
КонецПроцедуры
Показать
15. spacecraft 07.04.21 08:58 Сейчас в теме +0.3 $m
(14) масло мысленное. Зачем искать запросом эту же ссылку, которую и передаете в запрос? Она уже есть.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
   /////////////////////////////////// 
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ТелефонныйЗвонок") Тогда
   СсылкаНаДокТелЗвонок = ДанныеЗаполнения;
КонецЕсли;
/////////////
2. DenisVol 3 06.04.21 11:43 Сейчас в теме
может не полное соеденение надо использовать
3. user1500067 06.04.21 11:44 Сейчас в теме
(2)Пробовал, наверно, все варианты и комбинации соединений. В противном случае либо ничего не выводится, либо тоже самое
4. vlad636 4 06.04.21 11:49 Сейчас в теме
Попробуйте так:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Запросы.Наименование,
    Запросы.ДатаСоздания,
    Запросы.Источник КАК ИсточникЗапроса,
    Запросы.Статус,
    Запросы.Ответственный КАК ОтветственныйМенеджер,
    Запросы.Ссылка КАК НаименованиеЗапроса,
    Запросы.Компания,
    Запросы.РегионКлиента,
    ТелефонныйЗвонок.Ссылка КАК СсылкаТелефон,
    ТелефонныйЗвонок.Дата,
    ТелефонныйЗвонок.Описание,
    Запросы.Телефон КАК ТелефонКлиента,
    СделкиСКлиентами.Статус КАК СтатусСделкиСКлиентом,
    СделкиСКлиентами.Ссылка КАК СделкаСКлиентом,
    СделкиСКлиентами.Менеджер,
    СделкиСКлиентами.Организация,
    СделкиСКлиентами.Партнер КАК Клиент
ИЗ
    Справочник.СделкиСКлиентами КАК СделкиСКлиентами
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
        ПО (СделкиСКлиентами.Источник = Запросы.Источник)
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Запросы КАК Запросы
        ПО ТелефонныйЗвонок.ВзаимодействиеОснование = Запросы.Ссылка
Показать
6. user1500067 06.04.21 11:50 Сейчас в теме
(4) Выдаёт ошибку: Поле не найдено "Запросы.Источник"
7. vlad636 4 06.04.21 11:53 Сейчас в теме
(6)
ИЗ
    Справочник.СделкиСКлиентами КАК СделкиСКлиентами
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Запросы КАК Запросы
        ПО ТелефонныйЗвонок.ВзаимодействиеОснование = Запросы.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
        ПО (СделкиСКлиентами.Источник = Запросы.Источник)

а так?
9. user1500067 06.04.21 11:54 Сейчас в теме
(7) Ошибка
Прикрепленные файлы:
5. DenisVol 3 06.04.21 11:49 Сейчас в теме
ИЗ
    Справочник.СделкиСКлиентами КАК СделкиСКлиентами
        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
            ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Запросы КАК Запросы
            ПО ТелефонныйЗвонок.ВзаимодействиеОснование = Запросы.Ссылка
        И (СделкиСКлиентами.Источник = Запросы.Источник)

Показать
8. user1500067 06.04.21 11:53 Сейчас в теме
(5) Ошибка: Ожидается имя таблицы " И СделкиСКлиентами.Источник = Запросы.Источник"
10. DenisVol 3 06.04.21 12:42 Сейчас в теме
ИЗ
    Справочник.Запросы КАК Запросы
        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ТелефонныйЗвонок КАК ТелефонныйЗвонок
            ПО ТелефонныйЗвонок.ВзаимодействиеОснование = Запросы.Ссылка
                 ПОЛНОЕ СОЕДИНЕНИЕ    Справочник.СделкиСКлиентами КАК СделкиСКлиентами            
                    ПО (СделкиСКлиентами.Источник = Запросы.Источник)

Показать
Оставьте свое сообщение

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