ТаблицаДоступныхРеспондентуАнкет (БСП)

Автор: 1С
ОбщийМодуль.Анкетирование
БСП

Таблица доступных респонденту анкет. Получает таблицу доступных на данный момент респонденту анкет.

// Получает таблицу доступных на данный момент респонденту анкет.
//
// Параметры:
//  Респондент  - СправочникСсылка - респондент для которого получается список анкет.
//
// Возвращаемое значение:
//   ТаблицаЗначений   - таблица, содержащая информацию о доступных респонденту анкетах.
//   Неопределено       - в случае если для респондента нет доступных анкет.
//
Функция ТаблицаДоступныхРеспондентуАнкет(Респондент) Экспорт
	
	Если  ЗначениеЗаполнено(Респондент) Тогда
		
		Запрос = Новый Запрос;
		Запрос.Текст =
		"ВЫБРАТЬ
		|	НазначениеОпросов.Ссылка КАК Ссылка,
		|	НазначениеОпросов.СвободныйОпрос КАК СвободныйОпрос,
		|	НазначениеОпросов.ДатаОкончания КАК ДатаОкончания,
		|	НазначениеОпросов.Наименование КАК Наименование
		|ПОМЕСТИТЬ ДействующиеОпросы
		|ИЗ
		|	Документ.НазначениеОпросов КАК НазначениеОпросов
		|ГДЕ
		|	НазначениеОпросов.Проведен
		|	И НЕ НазначениеОпросов.ПометкаУдаления
		|	И НазначениеОпросов.ТипРеспондентов = &ТипРеспондентов
		|	И (НазначениеОпросов.ДатаНачала = &ПустаяДата
		|			ИЛИ НАЧАЛОПЕРИОДА(НазначениеОпросов.ДатаНачала, ДЕНЬ) < &ТекущаяДата)
		|	И (НазначениеОпросов.ДатаОкончания = &ПустаяДата
		|			ИЛИ КОНЕЦПЕРИОДА(НазначениеОпросов.ДатаОкончания, ДЕНЬ) > &ТекущаяДата)
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ДействующиеОпросы.Ссылка КАК Ссылка,
		|	ДействующиеОпросы.ДатаОкончания КАК ДатаОкончания,
		|	ДействующиеОпросы.Наименование КАК Наименование
		|ПОМЕСТИТЬ ДействующиеОпросыОтборПоРеспонденту
		|ИЗ
		|	ДействующиеОпросы КАК ДействующиеОпросы
		|ГДЕ
		|	ДействующиеОпросы.СвободныйОпрос
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	НазначениеОпросовРеспонденты.Ссылка,
		|	НазначениеОпросов.ДатаОкончания,
		|	НазначениеОпросов.Наименование
		|ИЗ
		|	Документ.НазначениеОпросов.Респонденты КАК НазначениеОпросовРеспонденты
		|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.НазначениеОпросов КАК НазначениеОпросов
		|		ПО НазначениеОпросовРеспонденты.Ссылка = НазначениеОпросов.Ссылка
		|ГДЕ
		|	НазначениеОпросовРеспонденты.Респондент = &Респондент
		|	И НазначениеОпросовРеспонденты.Ссылка В
		|			(ВЫБРАТЬ
		|				ДействующиеОпросы.Ссылка
		|			ИЗ
		|				ДействующиеОпросы КАК ДействующиеОпросы
		|			ГДЕ
		|				НЕ ДействующиеОпросы.СвободныйОпрос)
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	Анкета.Ссылка КАК Ссылка,
		|	Анкета.ДатаРедактирования КАК Дата,
		|	Анкета.Проведен КАК Проведен,
		|	Анкета.Опрос КАК Опрос
		|ПОМЕСТИТЬ АнкетыПоДействующимЗапросам
		|ИЗ
		|	Документ.Анкета КАК Анкета
		|ГДЕ
		|	Анкета.Опрос В
		|			(ВЫБРАТЬ
		|				ДействующиеОпросыОтборПоРеспонденту.Ссылка
		|			ИЗ
		|				ДействующиеОпросыОтборПоРеспонденту КАК ДействующиеОпросыОтборПоРеспонденту)
		|	И Анкета.Респондент = &Респондент
		|	И НЕ Анкета.ПометкаУдаления
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА АнкетыПоДействующимЗапросам.Ссылка ЕСТЬ NULL
		|			ТОГДА ""Опросы""
		|		ИНАЧЕ ""Анкеты""
		|	КОНЕЦ КАК Статус,
		|	ВЫБОР
		|		КОГДА АнкетыПоДействующимЗапросам.Ссылка ЕСТЬ NULL
		|			ТОГДА ДействующиеОпросыОтборПоРеспонденту.Ссылка
		|		ИНАЧЕ АнкетыПоДействующимЗапросам.Ссылка
		|	КОНЕЦ КАК АнкетаОпрос,
		|	ДействующиеОпросыОтборПоРеспонденту.ДатаОкончания КАК ДатаОкончания,
		|	ДействующиеОпросыОтборПоРеспонденту.Наименование КАК Наименование,
		|	АнкетыПоДействующимЗапросам.Дата КАК ДатаАнкеты,
		|	ЕСТЬNULL(АнкетыПоДействующимЗапросам.Проведен, ЛОЖЬ) КАК Проведен
		|ПОМЕСТИТЬ НеотвеченныеОпросыСохраненныеАнкеты
		|ИЗ
		|	ДействующиеОпросыОтборПоРеспонденту КАК ДействующиеОпросыОтборПоРеспонденту
		|		ЛЕВОЕ СОЕДИНЕНИЕ АнкетыПоДействующимЗапросам КАК АнкетыПоДействующимЗапросам
		|		ПО ДействующиеОпросыОтборПоРеспонденту.Ссылка = АнкетыПоДействующимЗапросам.Опрос
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|	НеотвеченныеОпросыСохраненныеАнкеты.Статус КАК Статус,
		|	НеотвеченныеОпросыСохраненныеАнкеты.АнкетаОпрос КАК АнкетаОпрос,
		|	НеотвеченныеОпросыСохраненныеАнкеты.ДатаОкончания КАК ДатаОкончания,
		|	НеотвеченныеОпросыСохраненныеАнкеты.Наименование КАК Наименование,
		|	НеотвеченныеОпросыСохраненныеАнкеты.ДатаАнкеты КАК ДатаАнкеты
		|ИЗ
		|	НеотвеченныеОпросыСохраненныеАнкеты КАК НеотвеченныеОпросыСохраненныеАнкеты
		|ГДЕ
		|	НЕ НеотвеченныеОпросыСохраненныеАнкеты.Проведен";
		
		Запрос.УстановитьПараметр("Респондент", Респондент);
		Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
		Запрос.УстановитьПараметр("ПустаяДата" ,Дата(1, 1, 1));
		Запрос.УстановитьПараметр("ТипРеспондентов", Справочники[Респондент.Метаданные().Имя].ПустаяСсылка());
		
		Результат = Запрос.Выполнить();
		
		Если НЕ Результат.Пустой() Тогда
			
			Возврат Результат.Выгрузить();
			
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Неопределено;
	
КонецФункции

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

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

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

ЗаполнитьДеревоШаблонаАнкеты (БСП)

НачатьИнтервью (БСП)

ПолучитьНаборыСвойствОбъекта (БСП)

ПереключитьВидимостьГруппТелаАнкеты (БСП)

УдалитьВопросыШаблонаАнкеты (БСП)

НовыйЗапросПоДоступнымКомандам (БСП)

УстановитьКорневойЭлементДереваАнкеты (БСП)

Получить данные временной таблицы

СформироватьНумерациюДерева (БСП)

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз