ТекстЗапросаСпискаВзаимодействий (БСП)

Автор: 1С
ОбщийМодуль.Взаимодействия
БСП

Текст запроса списка взаимодействий. Формирует текст запроса динамического списка взаимодействий в зависимости от вида панели навигации

// Формирует текст запроса динамического списка взаимодействий в зависимости от вида панели навигации
// и типа переданного параметра.
//
// Параметры:
//  ЗначениеОтбора  - СправочникСсылка, ДокументСсылка - значение отбора панели навигации.
//
// Возвращаемое значение:
//   Строка   - текст запроса динамического списка.
//
Функция ТекстЗапросаСпискаВзаимодействий(ЗначениеОтбора = Неопределено) Экспорт
	
	ТекстЗапроса ="
	|ВЫБРАТЬ
	|	ВЫБОР
	|		КОГДА ЖурналДокументовВзаимодействия.Ссылка ССЫЛКА Документ.Встреча
	|			ТОГДА ВЫБОР
	|					КОГДА ЖурналДокументовВзаимодействия.ПометкаУдаления
	|						ТОГДА 10
	|					ИНАЧЕ 0
	|				КОНЕЦ
	|		КОГДА ЖурналДокументовВзаимодействия.Ссылка ССЫЛКА Документ.ЗапланированноеВзаимодействие
	|			ТОГДА ВЫБОР
	|					КОГДА ЖурналДокументовВзаимодействия.ПометкаУдаления
	|						ТОГДА 11
	|					ИНАЧЕ 1
	|				КОНЕЦ
	|		КОГДА ЖурналДокументовВзаимодействия.Ссылка ССЫЛКА Документ.ТелефонныйЗвонок
	|			ТОГДА ВЫБОР
	|					КОГДА ЖурналДокументовВзаимодействия.ПометкаУдаления
	|						ТОГДА 12
	|					ИНАЧЕ 2
	|				КОНЕЦ
	|		КОГДА ЖурналДокументовВзаимодействия.Ссылка ССЫЛКА Документ.ЭлектронноеПисьмоВходящее
	|			ТОГДА ВЫБОР
	|					КОГДА ЖурналДокументовВзаимодействия.ПометкаУдаления
	|						ТОГДА 13
	|					ИНАЧЕ 3
	|				КОНЕЦ
	|		КОГДА ЖурналДокументовВзаимодействия.Ссылка ССЫЛКА Документ.ЭлектронноеПисьмоИсходящее
	|			ТОГДА ВЫБОР
	|					КОГДА ЖурналДокументовВзаимодействия.ПометкаУдаления
	|						ТОГДА 14
	|					ИНАЧЕ ВЫБОР
	|							КОГДА ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Черновик)
	|								ТОГДА 15
	|							КОГДА ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Исходящее)
	|								ТОГДА 16
	|							ИНАЧЕ 4
	|						КОНЕЦ
	|				КОНЕЦ
	|		КОГДА ЖурналДокументовВзаимодействия.Ссылка ССЫЛКА Документ.СообщениеSMS
	|			ТОГДА ВЫБОР
	|					КОГДА ЖурналДокументовВзаимодействия.ПометкаУдаления
	|						ТОГДА 22
	|					ИНАЧЕ ВЫБОР
	|							КОГДА ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументаСообщениеSMS.Черновик)
	|								ТОГДА 17
	|							КОГДА ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументаСообщениеSMS.Исходящее)
	|								ТОГДА 18
	|							КОГДА ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументаСообщениеSMS.Доставляется)
	|								ТОГДА 19
	|							КОГДА ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументаСообщениеSMS.ЧастичноДоставлено)
	|								ТОГДА 21
	|							КОГДА ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументаСообщениеSMS.НеДоставлено)
	|								ТОГДА 23
	|							КОГДА ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументаСообщениеSMS.Доставлено)
	|								ТОГДА 24
	|							ИНАЧЕ 17
	|						КОНЕЦ
	|				КОНЕЦ
	|	КОНЕЦ КАК НомерКартинки,
	|	ЖурналДокументовВзаимодействия.Ссылка,
	|	ЖурналДокументовВзаимодействия.Дата,
	|	ЖурналДокументовВзаимодействия.ПометкаУдаления КАК ПометкаУдаления,
	|	ЖурналДокументовВзаимодействия.Номер,
	|	ЖурналДокументовВзаимодействия.Проведен,
	|	ЖурналДокументовВзаимодействия.Автор,
	|	ЖурналДокументовВзаимодействия.ВзаимодействиеОснование,
	|	ЖурналДокументовВзаимодействия.Входящий,
	|	ЖурналДокументовВзаимодействия.Тема,
	|	ЖурналДокументовВзаимодействия.Ответственный КАК Ответственный,
	|	ЕСТЬNULL(ПредметыВзаимодействий.Рассмотрено, ЛОЖЬ) КАК Рассмотрено,
	|	ЕСТЬNULL(ПредметыВзаимодействий.РассмотретьПосле, ДАТАВРЕМЯ(1, 1, 1)) КАК РассмотретьПосле,
	|	ЖурналДокументовВзаимодействия.Участники,
	|	ЖурналДокументовВзаимодействия.Тип,
	|	ЖурналДокументовВзаимодействия.УчетнаяЗапись,
	|	ЖурналДокументовВзаимодействия.ЕстьВложения,
	|	ЖурналДокументовВзаимодействия.Важность,
	|	ВЫБОР
	|		КОГДА ЖурналДокументовВзаимодействия.Важность = ЗНАЧЕНИЕ(Перечисление.ВариантыВажностиВзаимодействия.Высокая)
	|			ТОГДА 2
	|		КОГДА ЖурналДокументовВзаимодействия.Важность = ЗНАЧЕНИЕ(Перечисление.ВариантыВажностиВзаимодействия.Низкая)
	|			ТОГДА 0
	|		ИНАЧЕ 1
	|	КОНЕЦ КАК ВажностьНомерКартинки,
	|	%Предмет% КАК Предмет,
	|	ТИПЗНАЧЕНИЯ(ПредметыВзаимодействий.Предмет) КАК ТипПредмета,
	|	ЕСТЬNULL(ПредметыВзаимодействий.ПапкаЭлектронногоПисьма, ЗНАЧЕНИЕ(Справочник.ПапкиЭлектронныхПисем.ПустаяСсылка)) КАК Папка,
	|	ЖурналДокументовВзаимодействия.ПолученоОтправлено,
	|	ЖурналДокументовВзаимодействия.Размер,
	|	ЖурналДокументовВзаимодействия.СтатусИсходящегоПисьма
	|ИЗ
	|	ЖурналДокументов.Взаимодействия КАК ЖурналДокументовВзаимодействия
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПредметыПапкиВзаимодействий КАК ПредметыВзаимодействий
	|		ПО ЖурналДокументовВзаимодействия.Ссылка = ПредметыВзаимодействий.Взаимодействие
	|		%ТекстСоединенияТаблицаКонтактов%
	|{ГДЕ
	|	ЖурналДокументовВзаимодействия.Ссылка КАК Поиск
	|	%ОтборКонтакт%}";
	
	Если ЗначениеОтбора = Неопределено Тогда
		ТекстПредмет                    = "ЕСТЬNULL(ПредметыВзаимодействий.Предмет, НЕОПРЕДЕЛЕНО)";
		ТекстОтборКонтакт               = "";
		ТекстСоединениеТаблицаКонтактов = "";
	ИначеЕсли ВзаимодействияКлиентСервер.ЯвляетсяПредметом(ЗначениеОтбора) ИЛИ ВзаимодействияКлиентСервер.ЯвляетсяВзаимодействием(ЗначениеОтбора) Тогда
		ТекстПредмет                    = "ЕСТЬNULL(ВЫРАЗИТЬ(ПредметыВзаимодействий.Предмет КАК " + ЗначениеОтбора.Метаданные().ПолноеИмя() + "), НЕОПРЕДЕЛЕНО)";
		ТекстОтборКонтакт               = "";
		ТекстСоединениеТаблицаКонтактов = "";
	Иначе
		ТекстПредмет                    = "ЕСТЬNULL(ПредметыВзаимодействий.Предмет, НЕОПРЕДЕЛЕНО)";
		ТекстРазличные                  = "";
		ТекстОтборКонтакт               = ",
		                                   |КонтактыВзаимодействий.Контакт";
		ТекстСоединениеТаблицаКонтактов = "{ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактыВзаимодействий КАК КонтактыВзаимодействий
		                                   |ПО ЖурналДокументовВзаимодействия.Ссылка = КонтактыВзаимодействий.Взаимодействие}";
	КонецЕсли;
	
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Предмет%", ТекстПредмет);
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%РАЗЛИЧНЫЕ%", ТекстРазличные);
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ОтборКонтакт%", ТекстОтборКонтакт);
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ТекстСоединенияТаблицаКонтактов%", ТекстСоединениеТаблицаКонтактов);

	Возврат ТекстЗапроса; 

КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

УстановитьСвойстваДинамическогоСписка (БСП)

ПриИзмененииОтбораТипВзаимодействий (БСП)

ТекстЗапросаДляИзвлеченияТекста (БСП)

ИнициализироватьФормуСпискаВзаимодействий (БСП)

ТекстЗапросаПолногоОбъемаФайлов (БСП)

РазделительПакетаЗапросов (БСП)

ТекстОшибкиЗаполнения (БСП)

ПодготовитьЗапросДляПолученияСпискаШаблонов (БСП)

СформироватьСписокУчастников (БСП)

TurboConf - расширение Конфигуратора 1С