1. Nadushka74 1 11.01.17 12:19 Сейчас в теме

Программно задать отборы в СКД

Как Задать В СКД программно данные для отбора. Если это значение предопредленное то там все проще не бывает, а если это обычное значение справочника, и нужно чтоб было оно заполнено и пользователь не задавал его сам.
Ответы
Избранное Подписка Сортировка: Древо
2. docerman 45 11.01.17 12:31 Сейчас в теме
Заполнить нужно один раз - затем сохранить настройки и использовать сохраненные настройки. Или сохраните настройки под собой, а пользователь пусть пользуется вашими настройками.
3. user667308_icscloud 11.01.17 12:36 Сейчас в теме
НайтиПоКоду или НайтиПоНаименованию
4. Nadushka74 1 11.01.17 13:43 Сейчас в теме
5. user667308_icscloud 11.01.17 13:45 Сейчас в теме
там же, где вы указываете предопределенное значение.
6. docerman 45 11.01.17 13:52 Сейчас в теме
НайтиПоКоду или НайтиПоНаименованию - это не кошерно. И код и наименование пользователи могут поменять.
10. user667308_icscloud 11.01.17 15:23 Сейчас в теме
(6)
НайтиПоКоду или НайтиПоНаименованию - это не кошерно. И код и наименование пользователи могут поменять.

Согласен, поменять могут, но вроде условие топикстартера было:
и пользователь не задавал его сам.


Подскажите, как тогда в приведенном Вами примере, задать отбор по конкретной организации из справочника (не прибегая к выбору пользователем и предопределенному значению)?
11. docerman 45 11.01.17 15:58 Сейчас в теме
(10) Делаем сами настройки в режиме предприятия, а пользователь пользуется нашими настройками. В результате пользователь не делает выбор.
7. bad_wag 18 11.01.17 13:54 Сейчас в теме
Примерно так:

НастройкиКомпоновкиДанных = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

ГруппаОтбора = НастройкиКомпоновкиДанных.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

Элемент1 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Элемент1.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
Элемент1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Наименование");
Элемент1.ПравоеЗначение = ЗначениеОтбора;
Показать
8. docerman 45 11.01.17 13:56 Сейчас в теме
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	Если ЗначениеЗаполнено(Организация) Тогда
		УстановитьОтборСКД("Организация", ВидСравненияКомпоновкиДанных.Равно, Организация);
	Иначе
		УстановитьОтборСКД("Организация", ВидСравненияКомпоновкиДанных.Равно, Неопределено);
	КонецЕсли;
	
КонецПроцедуры

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

//Организация - реквизит отчета
Показать
9. docerman 45 11.01.17 13:57 Сейчас в теме
12. docerman 45 11.01.17 16:01 Сейчас в теме
Или добавляем свою константу с соответствующим типом и обращаемся к ней - это в том случае если СКД используется не для отчета.
13. user667308_icscloud 12.01.17 07:55 Сейчас в теме
(12)
Или добавляем свою константу с соответствующим типом и обращаемся к ней - это в том случае если СКД используется не для отчета.

Тогда уж если развивать эту тему, то плодить константы тоже не кошерно, кошернее будет создать РС или ПВХ под настройки. :-)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 110 000 руб. до 120 000 руб.
Полный день

Аналитик 1С
Санкт-Петербург
зарплата от 80 000 руб.
Полный день

Программист 1С
Самара
зарплата от 50 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 120 000 руб.
Полный день

Программист 1С
Волгоград
зарплата от 45 000 руб. до 90 000 руб.
Полный день