Меню

1с при изменении пользовательских настроек



Пользовательские настройки

Область применения: управляемое приложение.

Для эффективной работы пользователя с отчетом требуется определить состав быстрых и обычных пользовательских настроек. Состав настроек определяется основной целью использования отчета.


1. Общие рекомендации

1.1. Избегайте использования наименований настроек, которые могут быть истолкованы пользователями неоднозначно или быть для них непонятными.

Правильно Неправильно
«Оплатить позже» «Дата оплаты Меньше или равно …»

1.2. Для параметров, без указания которых запрос системы компоновки данных не выполнится или его выполнение не имеет смысла, следует в настройках взвести флажок «Запрещать незаполненные значения» и установить режим использования «Всегда».
1.3. Обязательные для заполнения параметры должны заполняться наиболее вероятными значениями.
Например, период «Этот месяц» для отчета «Выручка и себестоимость продаж».

2. Быстрые пользовательские настройки

2.1. Рекомендуется делать не более 5-7 быстрых настроек.
Правильно:

2.2. В состав быстрых пользовательских настроек следует включать только частотные настройки:

  • Параметры отчета (обязательные и необязательные). Это нужно потому, что контекстное меню отчета не позволяет пользователю «на лету» применять параметры.

Правильно – все параметры включены в быстрые настройки:

Неправильно – параметр «Данные по продажам» не включен в быстрые настройки:

2.3. Если в отчете несколько элементов, например, гистограмма и список, то в быстрых настройках рекомендуется предусмотреть возможность их отключения.
2.4. В быстрые настройки контекстных отчетов не следует включать отборы по полям, по которым устанавливается отбор через параметры в командах вызова отчета.

3. Обычные пользовательские настройки

3.1. Для настроек, которые являются нечастотными, лучше устанавливать режим редактирования «Обычный».

3.2. В состав обычных пользовательские настройки следует включать:

Например, в настройках отчета «Выручка и себестоимость продаж» зеленым выделены быстрые настройки. Остальные настройки – обычные.

Источник

Работа с пользовательскими настройками

1.1. Для хранения персональных настроек пользователя следует использовать хранилище общих настроек. Например, чтение и запись значения настройки «Задавать вопрос при выходе из программы» для текущего пользователя реализуется на встроенном языке с помощью объекта ХранилищеОбщихНастроек:

При этом для хранения настроек пользователя не следует использовать какие-либо другие способы, в частности, другие объекты метаданных (регистры, реквизиты и табличные части справочников и др.), внешние файлы и пр.

1.2. Для работы с пользовательскими настройками требуется, чтобы для пользователя было доступно право СохранениеДанныхПользователя.

1.3. Для обращения к каждой настройке в хранилище общих настроек необходимо использовать уникальный строковый ключ настройки. Например, значения основной организации и основного склада, с которыми работает текущий пользователь – это две разные настройки, которые хранятся раздельно под ключами «ОсновнаяОрганизация» и «ОсновнойСклад».

В то же время, некоторые настройки могут быть объединены в структуру, массив или соответствие, если все обращения к ним выполняются одновременно, как к одной настройке. Например, параметры прокси-сервера для доступа к сети Интернет представляют из себя набор из нескольких значений (адрес прокси-сервер, имя и пароль пользователя), однако хранятся все вместе в виде одной структуры как одна самостоятельная настройка.

2.1. В конфигурации должно быть предусмотрено общее место для редактирования всех пользовательских настроек. Как правило, это общая форма персональных настроек пользователя.

Пример реализации формы персональных настроек «Мои настройки» имеется в демонстрационной конфигурации Библиотеки стандартных подсистем.

2.2. В то же время, форма персональных настроек может являться не единственным местом для их редактирования. Для повышения удобства работы пользователя поля с отдельными настройками могут быть размещены непосредственно в тех рабочих местах, к которым эти настройки относятся. Например, флажок «Больше не показывать подсказки при редактировании файла» может быть размещен прямо на форме с самой подсказкой, которая выводится при работе с файлами.

2.3. Форма персональных настроек пользователя, другие формы (рабочие места), а также отдельные элементы форм для работы с персональными настройками должны быть доступны только пользователям с правом СохранениеДанныхПользователя.

3.1. При работе с хранилищем общих настроек следует иметь в виду, что настройки не мигрируют между узлами информационной базы, а специфичны для определенного узла. При необходимости, передача настроек пользователей между узлами может быть реализована дополнительно средствами встроенного языка.

3.2. Все настройки в хранилище общих настроек сохраняются в разрезе пользователей информационной базы, по строковому имени пользователя. Поэтому в случае переименования пользователя прежние настройки теряются. В частности, если впоследствии будет создан пользователь, имя которого совпадает с именем переименованного пользователя, то для него будут использованы ранее сохраненные настройки.

Для того чтобы этого избежать, рекомендуется переносить настройки при переименовании пользователя, и очищать настройки при удалении.

При использовании в конфигурации Библиотеки стандартных подсистем (БСП) в распоряжении разработчика имеются обработчики записи и удаления пользователя информационной базы (см. процедуры ПриЗаписиПользователяИнформационнойБазы и ПослеУдаленияПользователяИнформационнойБазы в общем модуле ПользователиПереопределяемый), в которых возможно выполнить перенос и удаление настроек. Пример использования см. в демонстрационной конфигурации БСП.

Источник

Отчет СКД, программный вывод, при смене настроек (польз) формирует по по старым настройкам

Здравствуйте, прошу помочь. Программно вывожу отчет СКД, если изменить настройки (допустим сфомировать за другой период). То выводит данные, из настроек, которые заполнили впервый раз, после открытия (т.е. первые настройки сохраняются, и формируется только по ним отчет). Как программно обновлять настройки каждый раз? В какой процедуре? Короче «плаваю» в этом вопросе. Форма отчета пустая..

При программном выводе отчета у меня только одна процедура:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

1) Начало: СтандартнаяОбработка = Ложь;

2) Программное заполнение полей СКД: .

3) Завершение процедуры:

//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
//Передаем внешний набор данных
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);

//Очищаем поле табличного документа
ДокументРезультат.Очистить();

//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

Источник

Программное заполнение пользовательских параметров и отборов СКД

1. Пользовательские настройки СКД

При программном заполнении параметров отчета СКД часто возникает ситуация, когда нужно программно установить параметры отчета или добавить отборы.

Проблема возникает в том, что не всегда эти параметры или отборы отображаются на форме так, как нам бы хотелось.

В общем случае, для того, чтобы открыть отчет с заполненными параметрами используется следующая конструкция:

В данной статье описаны примеры того, как нужно заполнять параметры СКД, чтобы они отображались на форме так, как нужно, а именно Настройки и ПользовательскиеНастройки компоновщика данных.

1.1. Установка пользовательских параметров СКД

Для установки значения параметра обычно используется такая конструкция:

Данный код установит значение параметра, но при заполнении отчета переданными настройками значение параметра не отобразится на форме и реквизит будет пустым.

Для того, чтобы пользователь видел значение параметра на форме нужно добавить следующую конструкцию:

Данный код по значению идентификатора пользовательской настройки находит элемент этой настройки и устанавливает значение параметра еще и там.

1.2. Установка пользовательских отборов СКД

1.2.1. Пример открытия отчета с фиксированным отбором

В общем случае для того, чтобы открыть отчет с отбором можно использовать следующие конструкции

В данном случае форма откроется с отбором, но отбор не будет доступен для редактирования.

1.2.2. Пример открытия отчета с пользовательским отбором

Для того, чтобы отбор появился на форме и был доступен как в быстры отборах, так и на вкладке «отбор», нужно использовать следующую конструкцию:

В данном случае ненужно заполнять отбор обычных настроек компоновщика (так как в таком случае элементы формы будут задублированы), нужно взять из настроек идентификатор пользовательских настроек и по нему найти их.

После чего добавить отбор в пользовательские настройки. Он появится на форме, в быстрых настройках СКД, и на вкладке «Отборы».

Если пользовательские отборы нужно объединить в группу отборов («И», «Или», «Не»), тогда нужно сначала добавить группу пользовательского отбора:

У группы отборов есть свойство «Элементы», чтобы элемент отбора был подчинен данной группе (находился в этой группе) Отбор нужно добавлять именно в эту группу.

Related Posts

19 Comments

по-моему, в СП и любой типовой в общем модуле по СКД примеров гораздо больше.

хотя спасибо за то, что скопировали пару строк кода из первой попавшейся формы или модуля.

(1) Вы не поверите… Нету там ничего. В своё время решал похожую задачу, отладчик замучал (но решил).

Как раз сегодня решил такую задачку, только там сделал не через пользовательские настройки,а просто через настройки.

Во всех примерах добавления не было одной строки:

ЭлементОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();

И из-за неё потерял кучу времени, так как без этого не будут работать отборы.

Опять ИТС и БСП перепечатывают.

Это про какую конфу, вид клиента? Где этот код расположен? в форме / в модуле, сервер / клиент, обычное приложение / управляемое? Конфа с БСП / без БСП?

где можно применить эти советы?

(1) А вы загляните и скиньте примеры методов, которые делают тоже самое..

(4)Я не претендовал на то, что это статья уникальна в своем роде. На ИТС по вашей ссылке описан один из методов БСП, если хотите, то в данной статье просто показано, как это работает внутри.

П.С. Если не интересно, то можно всегда пройти мимо =)

(7) откройте общий модуль ОбщегоНазначенияКлиентСервер изучайте примеры, а если проискать по общим модулям «Отбор», то можно еще найти примеры.

А в примерах автора топика я не увидел, что есть хоть намек на иерархии, а в настойках иерархия сплошь и рядом.

(5) В самом начале есть пример кода, который открывает отчет СКД с параметрами.

Все чего там не хватает это

В другие примерах речь как раз идет о том, как заполнить компоновщик настроек, чтобы отборы были такими, какими ожидает их видеть пользователь.

Вернемся к вашим вопросам.

1. «Это про какую конфу». Это про любую конфу, т.к. речь идет о механизмах платформы 1с 8.3

2. «Вид клиента». Естественно, что объект вы создаете на сервере, а открываете отчет на клиенте (у данной статьи нет цели рассказывать про клиент серверную архитектуру)

3. «Где этот код расположен». В месте, где вам нужно открыть отчет =)

4. «обычное приложение / управляемое?». Управляемое приложение

5. «Конфа с БСП / без БСП». Без разницы, это не функционал БСП.

П.С. По-моему часть ваших вопросов только ради вопросов…

Ковырять типовые конфы, чтобы это найти- лучше сразу в дурдом. Автор молодец, вот только для меня поздно. Уже сам с большими мучениями это освоил.

неее, просто мне задача такая часто попадается, и поэтому очень интересно, т.к. каждый раз как в первый раз трачу кучу времени в отладчике, чтобы понять, куда программно вставить значение, чтобы все красиво было. С nой попытки я нахожу куда сунуть настройки, чтобы работало, а с nХ2 — чтобы и отображалось корректно. И везде все решается по разному.

Например сейчас я ковыряюсь в старушке УПП, в которой кучка отчетов на СКД. И надо открывать эти отчеты с уже установленными настройками. Это обычные формы и там пользовательские настройки храняться и отображаются совсем другими механизмами, там для каждого варианта есть элемент справочника, где в хранилище значений лежат настройки и не только СКДшные. Там пользовательские настройки реализованы отдельно от того, что есть в платформе.

Ранее еб***ся с УТ 11.4. Там вроде СКД и УФ, но не совсем, т.к. есть БСП и общая формаОтчета с кучей кода в своем модуле и мне было очень грустно его читать, чтобы открыть отчет в котором на форме все красиво.

Из Вашего ответа я понял, что в УТ 11 я смогу протестить этот код и если все получиться «намотать на ус»

Я так полагаю, что речь идет о группах отборов «И», «Или», «Не».

Если так, то я учел ваш комментарий и дописал статью.

(11) Я, думаю у многих была такая ситуация, когда вы что-то велосипедили день-два, а потом произносили «твою …», когда обнаружили требуемый функционал в модуле формы, объекта, менеджера.

В типовых конфигурациях сотни общих модулей, менеджеров в которых миллионы строк кода, который очень часто лаконичен, рационален и решает задачи эффективнее, чем я мог додуматься сам.

Глупо игнорировать сей факт, игнорировать навыки поиска, лепить свои горбатые блокнотики и пытаться выдать тривиальные бояны за нечто исключительное.

Если вы не согласны со мной сейчас, то вам еще необходимо время и опыт на понимание того, что я прав.

(12) Посмотрел код типовой УТ 11, должно все сработать, если делать по аналогии с тем. что написано в статье. Т.е. передавать пользовательские настройки через параметры открытия формы.

П.С. Сам в УТ 11 не пробовал =)

Новичек хочет разобраться в теме и вы предлагаете ему миллионы строк лаконичного кода. Может лучше начать с простых примеров? Не?

Куча материалов о программной работе с СКД и ни одного нормального материала, для решения тех или иных задач без программирования, только при помощи использования самой СКД.

Например, если отчет — у него несколько вложенных. На форме параметр — список складов. Пользователь если устанавливает отбор — то он во вложенных схемах отработать должен. Если снимает, то отчеты выводятся без отбора по складу. Если с заполненным параметром все вроде как работает, то стоит на форме снять галочку отбора по складу, как вложенные схемы выдают «Не заполнено значение параметра», и это при том, что в самом запросе вложенной схемы используется конструкция

(17) здравствуйте, использование СКД без программирования в таких задачах , на мой взгляд, только усложняет код, который тяжело сопровождать. В вашем случае нужно ставить конкретные вопросы на форуме, а не искать решения по поиску.

П.с. скорее всего ваша задача решается проще, чем то, как вы ее пытаетесь решить

Спасибо большое за подсказку — тоже потерял кучу времени на этом.

Источник

Установка флага «Включать в пользовательские настройки» программно

Не могу понять как из кода установить флаг «Включать в пользовательские настройки» для пользовательских настроек динамического списка.

Имею вот такой код:

//Создаем пользовательский отбор
ПользовательскийОтбор = Список.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ЭтаФорма.Список.КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки);
ПользовательскийОтбор.Элементы.Очистить();

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

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

Тут на форуме нашел ветку с подобным обсуждением, где говорилось о том, что дело в идентификаторе пользовательских настроек, но я не могу понять в чем конкретно проблема

(1) Проблема в том, что если в режиме предприятия у динамического списка в меню ЕЩЕ->Настроить список. ->Отбор->Свойства элемента пользовательских настроек есть галка «Включать в пользовательские настройки».

Как эту галку поставить из кода?

Тип: Тип.
Тип добавляемого элемента. Элементами коллекции могут быть объекты следующих типов:
СтруктураНастроекКомпоновкиДанных.
Возвращаемое значение:

Добавляет новый элемент коллекции и возвращает его.

Источник

Создание настроек компоновки данных из встроенного языка

В данной статье показаны примеры того, каким образом можно добавлять некоторые элементы настроек компоновки данных при помощи встроенного языка.

Добавление выбранного поля

Пример добавления выбранного поля:

// Добавим выбранное поле для вывода в отчет.
ВыбранноеПоле = Настройки . Выбор . Элементы . Добавить ( Тип ( «ВыбранноеПолеКомпоновкиДанных» ) ) ;
ВыбранноеПоле . Поле = Новый ПолеКомпоновкиДанных ( «КоличествоОстаток» ) ;

В данном примере в список выбранных полей было добавлено поле КоличествоОстаток .

Для указания взаимного расположения полей в список выбранных полей можно добавить группу выбранных полей и поместить выбранные поля в нее.

В данном примере создана группа выбранных полей, в нее помещено два поля. Группе указано, каким образом располагать поля, вложенные в нее. Для поля Склад.Код установлен заголовок.

Добавление отбора

Пример добавления элемента отбора:

В данном примере в отчет добавлен элемент отбора с видом сравнения «В Группе».

В отбор можно добавлять сложные условия. Делается это при помощи групп элементов отбора.

Пример добавления группового условия:

В данном примере добавлено условие КоличествоОстаток >= 100 И КоличествоОстаток

Добавление упорядочивания

Пример добавления упорядочивания:

В данном примере показано добавление упорядочивания по полю КоличествоОстаток в убывающем порядке.

Установка параметров вывода

Пример установки параметров вывода:

В данном примере отчету установлен макет оформления и указано, что выводить отбор в результат отчета не нужно.

Добавление условного оформления

Пример добавления условного оформления:

В данном примере добавлено оформление на поле КоличествоОстаток . Поле будет отображаться красным цветом, в случае если его значение больше или равно 100 и меньше или равно 200.

Добавление группировки

Пример добавление группировки:

// Добавим новую группировку в структуру отчета.
Группировка = Настройки . Структура . Добавить ( Тип ( «ГруппировкаКомпоновкиДанных» ) ) ;

// Укажем, по каким полям нужно группировать.
ПолеГруппировки = Группировка . ПоляГруппировки . Элементы . Добавить ( Тип ( «ПолеГруппировкиКомпоновкиДанных» ) ) ;
ПолеГруппировки . Поле = Новый ПолеКомпоновкиДанных ( «Номенклатура» ) ;

// Укажем тип иерархии.
ПолеГруппировки . ТипГруппировки = ТипГруппировкиКомпоновкиДанных . Иерархия ;

В данном примере добавлена группировка по полю Номенклатура с иерархией.

Заметим, что группировке нужно указать, какие поля в ней нужно выводить, как упорядочивать группировку. Если нужно, чтобы состав выводимых полей и полей упорядочивания определялся системой самостоятельно на основании полей группировки и вышестоящих группировок и отчета, то нужно добавить в выбранные поля и поля упорядочивания авто поля.

Пример добавления автополей в порядок и выбранные поля.

// Укажем, что поля, которые нужно выводить в группировке, система должна определять самостоятельно.
Группировка . Выбор . Элементы . Добавить ( Тип ( «АвтоВыбранноеПолеКомпоновкиДанных» ) ) ;

// Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить группировку.
Группировка . Порядок . Элементы . Добавить ( Тип ( «АвтоЭлементПорядкаКомпоновкиДанных» ) ) ;

Добавление детальных записей

Детальные записи являются группировкой, в которой отсутствуют поля группировки.

Пример добавления детальных записей, вложенных в группировку:

// Добавим в отчет детальные записи, вложенные в группировку.
ДетальныеЗаписи = Группировка . Структура . Добавить ( Тип ( «ГруппировкаКомпоновкиДанных» ) ) ;

// Укажем, что поля, которые нужно выводить в детальных записях, система должна определять самостоятельно.
ДетальныеЗаписи . Выбор . Элементы . Добавить ( Тип ( «АвтоВыбранноеПолеКомпоновкиДанных» ) ) ;

// Укажем, что системе необходимо самостоятельно определять порядок, в котором выводить детальные записи.
ДетальныеЗаписи . Порядок . Элементы . Добавить ( Тип ( «АвтоЭлементПорядкаКомпоновкиДанных» ) ) ;

// Добавим детальным записям оформление.
ЭлементУсловногоОформления = ДетальныеЗаписи . УсловноеОформление . Элементы . Добавить ( ) ;
// Укажем наклонный шрифт.
ЭлеменОформления = ЭлементУсловногоОформления . Оформление . НайтиЗначениеПараметра ( Новый ПараметрКомпоновкиДанных ( «Шрифт» ) ) ;
ЭлеменОформления . Использование = Истина ;
ЭлеменОформления . Значение = Новый Шрифт ( , , , Истина ) ;

В данном примере детальные записи добавлены в группировку, в детальные записи добавлены автополя выбора и порядка, указано условное оформление, которое будет действовать в этих детальных записях.

Добавление диаграммы

Пример добавления диаграммы:

В данном примере в отчет добавлена диаграмма, в диаграмму добавлена серия, в серии указано, каким образом ее нужно упорядочивать.

Добавление таблицы

Пример добавления таблицы:

В данном примере в отчет добавлена таблица, в таблице в строках выводится группировка по полю Номенклатура , а в колонках выводится группировка по полю Склад .

Пример

Приведенный в данной статье пример можно посмотреть во внешнем отчете ПримерПрограммнойРаботыСНастройкамиКомпоновкиДанных, который можно найти в каталоге C:\Its\EXE\ExtReps\Samples8\

Вы можете установить их на компьютер прямо сейчас

Данный внешний отчет работает на конфигурации «Примеры 8.1».

Источник

Читайте также:  1с розница настройка ордерной схемы

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector