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