Публикации

БСП
Разработки

Найдено результатов: 347


Отслеживание изменений отбора

изменение отбора, обработчик изменения отбора
DiKSer 11 2
//Подключаем обработчик изменения на отбор в данном случае у регистра сведений список при открытии- 
Процедура ПриОткрытии()
    ПодключитьОбработчикИзмененияДанных("РегистрСведенийСписок.Отбор", "ОбработкаОтбора",Истина);
	
	ОбработкаОтбора(Неопределено);
КонецПроцедуры

Процедура ОбработкаОтбора(Элемент)
	
    // Элемент - то что изменилось в Отборе - например Период.ВидСравнения
    // тут можно обработать изменения отбора 
		
КонецПроцедуры

Отбор по таблице значений

Отбор строк по таблице значений
gorenski 1
СтруктураОтбора = Новый Структура("Номенклатура,ХарактеристикаНоменклатуры", ЗначениеОтбора.Номенклатура, ЗначениеОтбора.ХарактеристикаНоменклатуры);
РезультатОтбора = ТаблицаЗначений.НайтиСтроки(СтруктураОтбора);
//Если РезультатОтбора.Количество() > 0 Тогда
//	СтрокаОтбора = РезультатОтбора[0];
//КонецЕсли;
Для каждого СтрокаОтбора Из РезультатОтбора Цикл
	
КонецЦикла;

Интерактивный отбор дерева значений

В связи с тем, что у дерева значений на форме, нет интерактивного отбора, реализовываем свой отбор Постановка задачи: На управляемой форме имеем дерево значений, необходимо дать пользователю возможно производить отбор строк Решение, теория: Так как, соз...
markers 16 3

НастройкаОтборовНаУзле

ОбщийМодуль.ОбменДаннымиСервер
Автор: 1С
Функция НастройкаОтборовНаУзле(Знач ИмяПланаОбмена, Знач ВерсияКорреспондента, ИдентификаторНастройки = "") Экспорт
	Если ПустаяСтрока(ВерсияКорреспондента) Тогда
		ВерсияКорреспондента = "0.0.0.0";
	КонецЕсли;
	ОписаниеВариантаНастройки = ОбменДаннымиПовтИсп.ОписаниеВариантаНастройки(ИмяПланаОбмена, 
								ИдентификаторНастройки, ВерсияКорреспондента);
	
	Результат = Неопределено;
	Если ЗначениеЗаполнено(ОписаниеВариантаНастройки.Отборы) Тогда
		Результат = ОписаниеВариантаНастройки.Отборы;
	КонецЕсли;
	
	Если Результат = Неопределено Тогда
		Результат = Новый Структура;
	КонецЕсли;
	
	Возврат Результат;
КонецФункции

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

УстановитьФиксированныеОтборы

ОбщийМодуль.ОтчетыСервер
Автор: 1С
Процедура УстановитьФиксированныеОтборы(СтруктураОтборов, НастройкиКД, НастройкиОтчета) Экспорт
	Если ТипЗнч(НастройкиКД) <> Тип("НастройкиКомпоновкиДанных")
		Или СтруктураОтборов = Неопределено
		Или СтруктураОтборов.Количество() = 0 Тогда
		Возврат;
	КонецЕсли;
	ПараметрыКД = НастройкиКД.ПараметрыДанных;
	ОтборыКД = НастройкиКД.Отбор;
	Недоступный = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
	Для Каждого КлючИЗначение Из СтруктураОтборов Цикл
		Имя = КлючИЗначение.Ключ;
		Значение = КлючИЗначение.Значение;
		Если ТипЗнч(Значение) = Тип("ФиксированныйМассив") Тогда
			Значение = Новый Массив(Значение);
		КонецЕсли;
		Если ТипЗнч(Значение) = Тип("Массив") Тогда
			Список = Новый СписокЗначений;
			Список.ЗагрузитьЗначения(Значение);
			Значение = Список;
		КонецЕсли;
		ПараметрКД = ПараметрыКД.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных(Имя));
		Если ТипЗнч(ПараметрКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
			ПараметрКД.ИдентификаторПользовательскойНастройки = "";
			ПараметрКД.Использование    = Истина;
			ПараметрКД.РежимОтображения = Недоступный;
			ПараметрКД.Значение         = Значение;
			Продолжить;
		КонецЕсли;
		Если ТипЗнч(Значение) = Тип("СписокЗначений") Тогда
			ВидСравненияКД = ВидСравненияКомпоновкиДанных.ВСписке;
		Иначе
			ВидСравненияКД = ВидСравненияКомпоновкиДанных.Равно;
		КонецЕсли;
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(ОтборыКД, Имя, Значение, ВидСравненияКД, , Истина, Недоступный, "");
	КонецЦикла;
КонецПроцедуры

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

Открыть форму выбора с отбором (УФ)

Артур 46 2 3
&НаКлиенте
Процедура КнопкаВыбрать(Команда)

    НастройкиКомпоновки = Новый НастройкиКомпоновкиДанных;

    ГруппаОтбора = НастройкиКомпоновки.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
    ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
    
    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номер");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.всписке;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение=номера;

    ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); 
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДАТА");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.больше;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение=(объект.Дата);

    ПараметрыВыбора = Новый Структура;
    ПараметрыВыбора.Вставить("ФиксированныеНастройки", НастройкиКомпоновки);
    ПараметрыВыбора.Вставить("РежимВыбора",Истина);
    ПараметрыВыбора.Вставить("МножественныйВыбор",Истина);

    ОбработкаВыбора = Новый ОписаниеОповещения("ВыбратьДокументКонец", ЭтаФорма);

    ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаВыбора",ПараметрыВыбора,
            ЭтаФорма, , , , ОбработкаВыбора);
КонецПроцедуры
 
&НаКлиенте
Процедура ВыбратьДокументКонец(Значение, ДопПараметры) Экспорт
    Если Значение = Неопределено Тогда ///Тут массив с выбранными документами получится 
        Возврат;
    КонецЕсли;
     
     
КонецПроцедуры

Перенести отбор СКД

Перенести отбор СКД из одного компоновщика в другой
acsent 82 15
Процедура ПеренестиОтбор(ОтборПриемник, ОтборИсточник)
	
	Для каждого ЭлементИсточник Из ОтборИсточник.Элементы Цикл
		
		Если ТипЗнч(ЭлементИсточник) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
			
			Если ТипЗнч(ЭлементИсточник.ЛевоеЗначение) = Тип("ПолеКомпоновкиДанных") Тогда
			
				Если ОтборПриемник.ДоступныеПоляОтбора.НайтиПоле(ЭлементИсточник.ЛевоеЗначение) = Неопределено Тогда
					Продолжить;
				КонецЕсли;	
			
			КонецЕсли;
		
		КонецЕсли;	
		
		ЭлементПриемник = ОтборПриемник.Элементы.Добавить(ТипЗнч(ЭлементИсточник));
		ЗаполнитьЗначенияСвойств(ЭлементПриемник, ЭлементИсточник);
		
		Если ТипЗнч(ЭлементИсточник) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
			ПеренестиОтбор(ЭлементПриемник, ЭлементИсточник);
		КонецЕсли;	
		
	КонецЦикла;	
	
КонецПроцедуры

ДополнитьОтборыИзСтруктуры

Устанавливает отборы по расширенной информации из структуры.
ОбщийМодуль.ВариантыОтчетов
Автор: 1С
// Устанавливает отборы по расширенной информации из структуры.
Процедура ДополнитьОтборыИзСтруктуры(Отбор, Структура, РежимОтображения = Неопределено) Экспорт
	Если РежимОтображения = Неопределено Тогда
		РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
	КонецЕсли;
	Для Каждого КлючИЗначение Из Структура Цикл
		ИмяПоля = КлючИЗначение.Ключ;
		ОтборПоля = КлючИЗначение.Значение;
		Тип = ТипЗнч(ОтборПоля);
		Если Тип = Тип("Структура") Тогда
			Условие = ВидСравненияКомпоновкиДанных[ОтборПоля.Вид];
			Значение = ОтборПоля.Значение;
		ИначеЕсли Тип = Тип("Массив") Тогда
			Условие = ВидСравненияКомпоновкиДанных.ВСписке;
			Значение = ОтборПоля;
		ИначеЕсли Тип = Тип("СписокЗначений") Тогда
			Условие = ВидСравненияКомпоновкиДанных.ВСписке;
			Значение = ОтборПоля.ВыгрузитьЗначения();
		ИначеЕсли Тип = Тип("ВидСравненияКомпоновкиДанных") Тогда
			Условие = ОтборПоля;
			Значение = Неопределено;
		Иначе
			Условие = ВидСравненияКомпоновкиДанных.Равно;
			Значение = ОтборПоля;
		КонецЕсли;
		ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
			Отбор,
			ИмяПоля,
			Значение,
			Условие,
			,
			Истина,
			РежимОтображения);
	КонецЦикла;
КонецПроцедуры

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

УстановитьЭлементОтбора

Добавить или заменить существующий элемент отбора.
ОбщийМодуль.ОбщегоНазначенияКлиентСервер
Автор: 1С
// Добавить или заменить существующий элемент отбора.
//
// Параметры:
//  ОбластьПоискаДобавления - КоллекцияЭлементовОтбораКомпоновкиДанных - контейнер с элементами и группами отбора,
//                                     например, Список.Отбор или группа в отборе.
//  ИмяПоля                 - Строка - имя поля компоновки данных (заполняется всегда).
//  ПравоеЗначение          - произвольный - сравниваемое значение.
//  ВидСравнения            - ВидСравненияКомпоновкиДанных - вид сравнения.
//  Представление           - Строка - представление элемента компоновки данных.
//  Использование           - Булево - использование элемента.
//  РежимОтображения        - РежимОтображенияЭлементаНастройкиКомпоновкиДанных - режим отображения.
//  ИдентификаторПользовательскойНастройки - Строка - см. ОтборКомпоновкиДанных.ИдентификаторПользовательскойНастройки
//                                                    в синтакс-помощнике.
//
Процедура УстановитьЭлементОтбора(ОбластьПоискаДобавления,
								Знач ИмяПоля,
								Знач ПравоеЗначение = Неопределено,
								Знач ВидСравнения = Неопределено,
								Знач Представление = Неопределено,
								Знач Использование = Неопределено,
								Знач РежимОтображения = Неопределено,
								Знач ИдентификаторПользовательскойНастройки = Неопределено) Экспорт
	
	ЧислоИзмененных = ИзменитьЭлементыОтбора(ОбластьПоискаДобавления, ИмяПоля, Представление,
							ПравоеЗначение, ВидСравнения, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки);
	
	Если ЧислоИзмененных = 0 Тогда
		Если ВидСравнения = Неопределено Тогда
			Если ТипЗнч(ПравоеЗначение) = Тип("Массив")
				Или ТипЗнч(ПравоеЗначение) = Тип("ФиксированныйМассив")
				Или ТипЗнч(ПравоеЗначение) = Тип("СписокЗначений") Тогда
				ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
			Иначе
				ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			КонецЕсли;
		КонецЕсли;
		Если РежимОтображения = Неопределено Тогда
			РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
		КонецЕсли;
		ДобавитьЭлементКомпоновки(ОбластьПоискаДобавления, ИмяПоля, ВидСравнения,
								ПравоеЗначение, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки);
	КонецЕсли;
	
КонецПроцедуры

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

УстановитьЭлементОтбора

Добавить или заменить существующий элемент отбора.
ОбщийМодуль.ОценкаПроизводительностиКлиентСервер
Автор: 1С
// Добавить или заменить существующий элемент отбора.
//
// Параметры:
//  ОбластьПоискаДобавления - контейнер с элементами и группами отбора, например.
//                  Список.Отбор или группа в отборе.
//  ИмяПоля                 - Строка - имя поля компоновки данных (заполняется всегда).
//  ПравоеЗначение          - произвольный - сравниваемое значение.
//  ВидСравнения            - ВидСравненияКомпоновкиДанных - вид сравнения.
//  Представление           - Строка - представление элемента компоновки данных.
//  Использование           - Булево - использование элемента.
//  РежимОтображения        - РежимОтображенияЭлементаНастройкиКомпоновкиДанных - режим отображения.
//  ИдентификаторПользовательскойНастройки - Строка - см. ОтборКомпоновкиДанных.ИдентификаторПользовательскойНастройки
//                                                    в синтакс-помощнике.
//
Процедура УстановитьЭлементОтбора(ОбластьПоискаДобавления,
								Знач ИмяПоля,
								Знач ПравоеЗначение = Неопределено,
								Знач ВидСравнения = Неопределено,
								Знач Представление = Неопределено,
								Знач Использование = Неопределено,
								Знач РежимОтображения = Неопределено,
								Знач ИдентификаторПользовательскойНастройки = Неопределено) Экспорт
	
	ЧислоИзмененных = ИзменитьЭлементыОтбора(ОбластьПоискаДобавления, ИмяПоля, Представление,
							ПравоеЗначение, ВидСравнения, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки);
	
	Если ЧислоИзмененных = 0 Тогда
		Если ВидСравнения = Неопределено Тогда
			Если ТипЗнч(ПравоеЗначение) = Тип("Массив")
				Или ТипЗнч(ПравоеЗначение) = Тип("ФиксированныйМассив")
				Или ТипЗнч(ПравоеЗначение) = Тип("СписокЗначений") Тогда
				ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
			Иначе
				ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			КонецЕсли;
		КонецЕсли;
		Если РежимОтображения = Неопределено Тогда
			РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
		КонецЕсли;
		ДобавитьЭлементКомпоновки(ОбластьПоискаДобавления, ИмяПоля, ВидСравнения,
								ПравоеЗначение, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки);
	КонецЕсли;
	
КонецПроцедуры

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

ИнтерактивноеИзменениеВыгрузкиОписаниеДетальногоОтбора

Определяет описание детального отбора. При пустом отборе возвращает пустую строку.
ОбщийМодуль.ОбменДаннымиСервер
Автор: 1С
// Определяет описание детального отбора. При пустом отборе возвращает пустую строку.
//
// Параметры:
//     ДополнениеВыгрузки - Структура, РеквизитФормыКоллекция - описание параметров выгрузки.
//
// Возвращаемое значение:
//     Строка - описание отбора.
//
Функция ИнтерактивноеИзменениеВыгрузкиОписаниеДетальногоОтбора(Знач ДополнениеВыгрузки) Экспорт
	Возврат ПредставлениеДетальногоДополненияВыгрузки(ДополнениеВыгрузки.ДополнительнаяРегистрация, "");
КонецФункции

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

ИнтерактивноеИзменениеВыгрузкиОписаниеДополненияОбщегоОтбора

Определяет описание общего отбора. При пустом отборе возвращает пустую строку.
ОбщийМодуль.ОбменДаннымиСервер
Автор: 1С
// Определяет описание общего отбора. При пустом отборе возвращает пустую строку.
//
// Параметры:
//     ДополнениеВыгрузки - Структура, РеквизитФормыКоллекция - описание параметров выгрузки.
//
// Возвращаемое значение:
//     Строка - описание отбора.
//
Функция ИнтерактивноеИзменениеВыгрузкиОписаниеДополненияОбщегоОтбора(Знач ДополнениеВыгрузки) Экспорт
	
	ДанныеКомпоновщика = ПолучитьИзВременногоХранилища(ДополнениеВыгрузки.АдресКомпоновщикаВсехДокументов);
	
	Источник = Новый ИсточникДоступныхНастроекКомпоновкиДанных(ДанныеКомпоновщика.СхемаКомпоновки);
	Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных;
	Компоновщик.Инициализировать(Источник);
	Компоновщик.ЗагрузитьНастройки(ДанныеКомпоновщика.Настройки);
	
	Возврат ПредставлениеОтбораДополненияВыгрузки(Неопределено, Компоновщик, "");
КонецФункции

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

Открытие формы выбора с отбором

Приведен пример открытия формы выбора с отбором по контрагенту и по периоду, как для управляемых форм так и для обычных. Для открытия форм следует применять метод глобального контекста ОткрытьФорму (при использовании версии платформы 1С:Предприятие 8.2 ...
Razlagutt 7 1

Создать отбор в скд

создает отбор в схеме компоновки данных
vxxsas 3 1
//очистка тек. отбора
КомпоновщикНастроек.Настройки.Отбор.Элементы.Очистить();

НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
НовыйЭлементОтбора.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Контрагент.ОсновнойМенеджерПокупателя");
НовыйЭлементОтбора.Использование  = Истина;
НовыйЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлементОтбора.ПравоеЗначение = глЗначениеПеременной("глТекущийПользователь");

//очистим таб поле
ЭлементыФормы.Результат.Очистить();
//перекомпонуем результат
СкомпоноватьРезультат(ЭлементыФормы.Результат, ДанныеРасшифровки);

Изменение событий в отборе СКД

Изменение событий в отборе СКД (обычные формы)
acsent 82 15
ЭлементыФормы.Отбор.Колонки.ПравоеЗначениеДляКраткогоОтображенияЭлемента.ЭлементУправления.УстановитьДействие("НачалоВыбора", Новый Действие("ОтборНачалоВыбора"));

Процедура ОтборНачалоВыбора(Элемент, СтандартнаяОбработка)
	
	ТекущиеДанные = ЭлементыФормы.Отбор.ТекущиеДанные;
	Если Строка(ТекущиеДанные.ЛевоеЗначение) = "Родитель" Тогда
		
		СтандартнаяОбработка = Ложь;
		Форма = Справочники.Номенклатура.ПолучитьФормуВыбораГруппы(, Элемент);
		Форма.Открыть();
		
	КонецЕсли;	
	
КонецПроцедуры	

ДанныеОтбораЖурналаРегистрации

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

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

ОбработатьПодменюОтборПоТипуВзаимодействий

ОбщийМодуль.Взаимодействия
Автор: 1С
Процедура ОбработатьПодменюОтборПоТипуВзаимодействий(Форма) Экспорт

	ШаблонЗаголовка = НСтр("ru = 'Тип взаимодействий: %1'");
	ПредставлениеТипа = СписокОтборовПоТипуВзаимодействий(Форма.ТолькоПочта).НайтиПоЗначению(Форма.ТипВзаимодействия).Представление;
	Форма.Элементы.СписокТипВзаимодействия.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка, ПредставлениеТипа);
	Для Каждого ЭлементПодменю Из Форма.Элементы.СписокТипВзаимодействия.ПодчиненныеЭлементы Цикл
		Если ЭлементПодменю.Имя = ("УстановитьОтборТипВзаимодействия_СписокТипВзаимодействия_" + Форма.ТипВзаимодействия) Тогда
			ЭлементПодменю.Пометка = Истина;
		Иначе
			ЭлементПодменю.Пометка = Ложь;
		КонецЕсли;
	КонецЦикла	

КонецПроцедуры

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

СписокОтборовПоТипуВзаимодействий

ОбщийМодуль.Взаимодействия
Автор: 1С
Функция СписокОтборовПоТипуВзаимодействий(ТолькоПочта) Экспорт
	
	СписокОтборов = Новый СписокЗначений;
	
	СписокОтборов.Добавить("Все", НСтр("ru = 'Все'"));
	СписокОтборов.Добавить("ВсеПисьма", НСтр("ru = 'Все письма'"));
	Если Не ТолькоПочта Тогда
		СписокОтборов.Добавить("Встречи", НСтр("ru = 'Встречи'"));
		СписокОтборов.Добавить("ТелефонныеЗвонки", НСтр("ru = 'Телефонные звонки'"));
		СписокОтборов.Добавить("ЗапланированныеВзаимодействия", НСтр("ru = 'Запланированные взаимодействия'"));
		СписокОтборов.Добавить("СообщенияSMS", НСтр("ru = 'Сообщения SMS'"));
	КонецЕсли;
	СписокОтборов.Добавить("ВходящиеПисьма", НСтр("ru = 'Входящие'"));
	СписокОтборов.Добавить("ПисьмаЧерновики", НСтр("ru = 'Черновики'"));
	СписокОтборов.Добавить("ИсходящиеПисьма", НСтр("ru = 'Исходящие'"));
	СписокОтборов.Добавить("Отправленные", НСтр("ru = 'Отправленные'"));
	СписокОтборов.Добавить("УдаленныеПисьма", НСтр("ru = 'Удаленные'"));
	Если Не ТолькоПочта Тогда
		СписокОтборов.Добавить("ИсходящиеЗвонки", НСтр("ru = 'Исходящие звонки'"));
		СписокОтборов.Добавить("ВходящиеЗвонки", НСтр("ru = 'Входящие звонки'"));
	КонецЕсли;
	
	Возврат СписокОтборов;
	
КонецФункции

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

ПараметрыОтбораСкрываемыхДанных

ОбщийМодуль.ЗащитаПерсональныхДанных
Автор: 1С
Функция ПараметрыОтбораСкрываемыхДанных() Экспорт
	
	Возврат Новый Структура("ОсновноеПолеОтбора,Субъекты");
	
КонецФункции

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

ПолучитьЗначенияНастройкиОтборов

ОбщийМодуль.ОбменДаннымиСервер
Автор: 1С
Функция ПолучитьЗначенияНастройкиОтборов(СтруктураНастроекВнешнегоСоединения) Экспорт
	
	Результат = Новый Структура;
	
	// объектные типы
	Для Каждого НастройкаОтбора Из СтруктураНастроекВнешнегоСоединения Цикл
		
		Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Структура") Тогда
			
			РезультатВложенный = Новый Структура;
			
			Для Каждого Элемент Из НастройкаОтбора.Значение Цикл
				
				Если СтрНайти(Элемент.Ключ, "_Ключ") > 0 Тогда
					
					Ключ = СтрЗаменить(Элемент.Ключ, "_Ключ", "");
					
					Массив = Новый Массив;
					
					Для Каждого ЭлементМассива Из Элемент.Значение Цикл
						
						Если Не ПустаяСтрока(ЭлементМассива) Тогда
							
							Значение = ЗначениеИзСтрокиВнутр(ЭлементМассива);
							
							Массив.Добавить(Значение);
							
						КонецЕсли;
						
					КонецЦикла;
					
					РезультатВложенный.Вставить(Ключ, Массив);
					
				КонецЕсли;
				
			КонецЦикла;
			
			Результат.Вставить(НастройкаОтбора.Ключ, РезультатВложенный);
			
		Иначе
			
			Если СтрНайти(НастройкаОтбора.Ключ, "_Ключ") > 0 Тогда
				
				Ключ = СтрЗаменить(НастройкаОтбора.Ключ, "_Ключ", "");
				
				Попытка
					Если ПустаяСтрока(НастройкаОтбора.Значение) Тогда
						Значение = Неопределено;
					Иначе
						Значение = ЗначениеИзСтрокиВнутр(НастройкаОтбора.Значение);
					КонецЕсли;
				Исключение
					Значение = Неопределено;
				КонецПопытки;
				
				Результат.Вставить(Ключ, Значение);
				
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЦикла;
	
	// примитивные типы
	Для Каждого НастройкаОтбора Из СтруктураНастроекВнешнегоСоединения Цикл
		
		Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Структура") Тогда
			
			РезультатВложенный = Результат[НастройкаОтбора.Ключ];
			
			Если РезультатВложенный = Неопределено Тогда
				
				РезультатВложенный = Новый Структура;
				
			КонецЕсли;
			
			Для Каждого Элемент Из НастройкаОтбора.Значение Цикл
				
				Если СтрНайти(Элемент.Ключ, "_Ключ") <> 0 Тогда
					
					Продолжить;
					
				ИначеЕсли НастройкаОтбора.Значение.Свойство(Элемент.Ключ + "_Ключ") Тогда
					
					Продолжить;
					
				КонецЕсли;
				
				Массив = Новый Массив;
				
				Для Каждого ЭлементМассива Из Элемент.Значение Цикл
					
					Массив.Добавить(ЭлементМассива);
					
				КонецЦикла;
				
				РезультатВложенный.Вставить(Элемент.Ключ, Массив);
				
			КонецЦикла;
			
		Иначе
			
			Если СтрНайти(НастройкаОтбора.Ключ, "_Ключ") <> 0 Тогда
				
				Продолжить;
				
			ИначеЕсли СтруктураНастроекВнешнегоСоединения.Свойство(НастройкаОтбора.Ключ + "_Ключ") Тогда
				
				Продолжить;
				
			КонецЕсли;
			
			// Экранирование перечисления
			Если ТипЗнч(НастройкаОтбора.Значение) = Тип("Строка")
				И (     СтрНайти(НастройкаОтбора.Значение, "Перечисление.") <> 0
					ИЛИ СтрНайти(НастройкаОтбора.Значение, "Enumeration.") <> 0) Тогда
				
				Результат.Вставить(НастройкаОтбора.Ключ, ПредопределенноеЗначение(НастройкаОтбора.Значение));
				
			Иначе
				
				Результат.Вставить(НастройкаОтбора.Ключ, НастройкаОтбора.Значение);
				
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЦикла;
	
	Возврат Результат;
КонецФункции

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