1с как обработке сохранить настройки
Добрый день.
Подскажите пож-та, как лучше всего организовать сохранение настроек внешней обработки, не зависимо от пользователя?
Регистра сохраненные настройки нет. Управляемые формы.
На нет и суда нет.
Сделай регистр, в чём вопрос?
в бсп в справочнике внешних обработок хранится
(2) тогда сами придумайте справочник ДополнительныеОтчетыИОбработки, добавьте в него реквизит ХранилищеНастроек с типом ХранилищеЗначения и храните там для каждой внешней обработки структуру с настройками
Ну, для конкретной базы можно в ХранилищеОбщихНастроек писать/читать.
Сохранение настроек внешней обработки
Стандартно — используется регистр сведений СохраненнаяНастройка. Сами настройки — помещаются в структуру, структура в хранилище значения — в реквизит Сохраненная настройка..
4. vadim1011985 97 20.01.16 17:23 Сейчас в теме
Вообще можно сделать проще. У Формы устанавливаем галочки «Сохранить значения», «восстанавилавать значения» Список реквизитов заполняется в «СохраняемыеЗначения» Пользователю остается после заполнения реквизитов нажать «Сохранить значение» на панели действия формы.
odamcha; paran; + 2 – Ответить
5. yz2508 08.10.19 10:47 Сейчас в теме
Функции для управляемой формы. Сохраняют, восстанавливают все поля ввода формы в/из настройки. Есть функция удаления настроек.
//// Начало Обработка пользовательский настроек &НаСервере Процедура СохранитьНастройкиНаСервере(КлючОбъекта, КлючНастроек, Пользователь = Неопределено) // ключи могут быть произвольными строками, например: //КлючОбъекта = "СохранениеНастроекПользователяФорма"; //КлючНастроек = "ВсеНастройки"; Настройки = Новый Структура; Для Каждого Элем ИЗ Элементы Цикл Если ТипЗнч(Элем) = Тип("ПолеФормы") Тогда Если Объект.Свойство(Элем.Имя) Тогда Настройки.Вставить(Элем.Имя, Объект[Элем.Имя]); Иначе Настройки.Вставить(Элем.Имя, ЭтаФорма[Элем.Имя]); КонецЕсли; КонецЕсли; КонецЦикла; //если пользователя не указать (значение Неопределено), // то настройки будут сохранены для ТЕКУЩЕГО пользователя ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки,, Пользователь); КонецПроцедуры &НаСервере Процедура ВосстановитьНастройкиНаСервере(КлючОбъекта, КлючНастроек, Пользователь = Неопределено) //КлючОбъекта = "СохранениеНастроекПользователяФорма"; //КлючНастроек = "ВсеНастройки"; СтруктураНастроек = Неопределено; Попытка СтруктураНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта,КлючНастроек, ,Пользователь); // если настроек нет, то будет возвращено значение "Неопределено" Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Если СтруктураНастроек <> Неопределено Тогда Для Каждого Настройка Из СтруктураНастроек Цикл Если Объект.Свойство(Настройка.Ключ) Тогда Объект[Настройка.Ключ] = Настройка.Значение; Иначе ЭтаФорма[Настройка.Ключ] = Настройка.Значение; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры &НаСервере Процедура УдалитьНастройкиНаСервере(КлючОбъекта, КлючНастроек, Пользователь = Неопределено) //КлючОбъекта = "СохранениеНастроекПользователяФорма"; //КлючНастроек = "ВсеНастройки"; //Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь(); ХранилищеОбщихНастроек.Удалить(КлючОбъекта, КлючНастроек, Пользователь); Сообщить("Настройки " + КлючОбъекта + " для " + Пользователь + " удалены"); КонецПроцедуры //// Окончание Обработка пользовательский настроек
user591389_aska_rabota; kobayoshi; AndreyKyiv07; Merkalov; niki295; + 5 – Ответить
6. Merkalov 8 26.05.21 04:08 Сейчас в теме
(5)
Обнаружил один нюанс связанный с передачей пользователя в параметрах. Столкнулся с проблемой права доступа, ибо сначала передавал туда текущего пользователя из параметров сеанса, БСП отсутствует в самописке.
<ИмяПользователя>(необязательный)
Тип: Строка.
Имя пользователя, настройки которого сохраняются.
Если не указан, то сохраняются настройки текущего пользователя.
В случае переименования пользователя прежние настройки не заменяются. Если будет создан пользователь, имя которого совпадает с именем прежнего пользователя, для него будут использованы существующие настройки.
Если указан пользователь, не являющийся текущим пользователем, т.е. делается попытка обратиться к настройкам, не принадлежащим текущему пользователю, то требуется наличие у текущего пользователя права АдминистрированиеДанных.ИмяПользователя>
Передавать в этом параметре нужно «ПользователиИнформационнойБазы.ТекущийПользователь(). Имя «.
Если не передавать пользователя, то автоматически подставится текущий, проблема лишь в том как потом удалить настройки текущего пользователя, потому что в методе «Удалить» у объекта ХранилищеОбщихНастроек параметр «Пользователь» является обязательным и по какому имени там насохранялись настройки неизвестно, поэтому советую все же передавать имя пользователя.
Сохранение произвольных параметров для внешней обработки
При работе с внешними обработками/печатными формами нередко возникают случаи, когда в самой обработке используются дополнительные параметры.
В предыдущих версиях типовых (УТ10.3, БП 2.0, ЗУП 2.5) никаких проблем с этим не было, т.к. был механизм Дополнительных параметров, позволяющий сохранять и использовать произвольные параметры при работе с внешней обработкой, однако, в новых версиях (УТ11, БП 3.0, ЗУП 3.1 и т.д.) нас лишили этого удобного механизма.
Ниже предлагается описание одного из способов сохранения и использования произвольных доп.параметров для внешних обработок. Для этой цели воспользуемся объектом «ХранилищеОбщихНастроек».
У этого объекта есть метод
По умолчанию (если параметр не задан) настройки сохраняются для текущего пользователя. Важно понимать, что во-первых, это просто строка, а во-вторых, в случае если у пользователя, вызвашего этот метод есть право «АдминистрированиеДанных» он может работать с настройками других пользователей и мы можем сохранить общие настройки для некого виртуального «пользователя» ВнешниеОбработки, естественно, никакого пользователя ВнешниеОбработки у нас в базе нет, это просто ключ, в разрезе которого мы будем хранить настройки для всех внешних обработок.
в нашем случае ключом будет Имя внешней обработки для которой сохраняем настройки, а — строка «ДополнительныеПараметры»(имя можно придумать любое).
Сами настройки передаются в параметре тип параметра произвольный. Удобнее всего для наших целей использовать структуру.
Вот собственно и все. Далее в самой внешней обработке мы сможем считать настройки с помощью метода
Для удобства работы с доп.параметрами можно создать отдельную обработку с помощью которой устанавливать/копировать настройки для любой внешней обработки из тех, что используются в нашей базе.
Буду рад, если кому-то пригодится этот прием в работе. Также,если после прочтения остались вопросы с удовольствием отвечу на них в комментариях.
Обработки 1С
В этой статье мы узнаем, что такое обработки в платформе 1С 8.3 и для каких целей они нужны. Научимся создавать обработки в качестве объектов метаданных конфигурации 1С, научимся создавать внешние обработки, создавать формы обработок, добавлять обработки в подсистемы и давать права на обработки пользователям, а также узнаем, как открыть внешнюю обработку в 1С.
В платформе 1С, помимо объектов конфигурации, которые так или иначе связаны ведением учета (например, Справочники – для хранения однотипной информации, Документы – для отображения событий), существует объект, который напрямую не связан с ведением учета, и с помощью которого можно осуществлять различные вспомогательные действия (групповая обработка справочников и документов, загрузка – выгрузка информации и т.д.). Этот объект – Обработка. Обработки могут быть как объекты какой-то конфигурации, а также внешние – в этом случае сама обработка будет храниться где-то на жестком диске, её можно будет открыть в пользовательском клиенте 1С предприятия, и выполнить нужные действия.
Создать обработку 1С
Для того, чтобы создать обработку, в конфигураторе 1С в дереве метаданных необходимо выделить ветку Обработки, вызвать контекстное меню и выполнить команду «Добавить».
После выполнения этой команды, будет создана пустая обработка, которая появится в дереве метаданных в соответствующей ветке, а также откроется окно менеджера обработки.

Обработка создана, и вы можете с ней работать: задать имя обработки, синоним и т.д.
Создать внешнюю обработку 1С
Для того, чтобы создать внешнюю обработку, нужно или выполнить команду «Новый» по пути «Главное меню» — «Файл».

Или нажать на кнопку «Новый» в меню «Стандартная».

После откроется окно «Выбор вида документа», в котором необходимо выбрать «Внешняя обработка».

Откроется окно менеджера внешней обработки, и вы можете проделать с ней все нужные операции.

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

Или выполнить команду «Сохранить» по пути: «Главное меню» — «Файл».

Или просто нажать сочетание клавиш Ctrl + S.
После этих действий откроется окно, в котором можно выбрать каталог, где будет храниться эта внешняя обработка, а также ввести название файла.

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

Замечу, что файлы всех внешних обработок имеют расширение epf.
Добавить внешнюю обработку 1С
Иногда возникают задачи добавить внешнюю обработку в конфигурацию 1С. Чтобы это сделать, необходимо выделить ветку «Обработки» дерева метаданных конфигурации, вызвать контекстное меню и выполнить в нем команду «Вставить внешнюю обработку, отчет…».

В открывшемся окне необходимо выбрать нужную обработку.

После, обработка появится в дереве.

Сохранить обработку 1С в файл
Может возникнуть обратная задача: сохранить обработку из какой-то конфигурации в файл, т.е. сделать внешнюю обработку из простой обработки.
Делается это достаточно просто: нужно выделить обработку в дереве конфигурации, вызвать контекстное меню и выполнить команду «Сохранить как внешнюю обработку, отчет…»

Откроется окно «Сохранить как», в котором нужно выбрать месторасположение обработки, а также, если это необходимо, изменить название.

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

Можно включить в подсистему другим способом. Необходимо выделить нужную обработку, вызвать контекстное меню и выполнить в этом меню команду «Дополнительно».

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

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

Но, если мы попробуем её найти в пользовательском клиенте, то ни чего не найдем. Также, её не будет в командном интерфейсе подсистемы.

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

Если вы нажмете на кнопку «Далее», то можете выбрать какие реквизиты обработки будут включены на форму, а если нажать на кнопку «Готово», то форма будет создана без реквизитов.

После этого, обработка появится в командном интерфейсе подсистемы.

Замечу, что основная форма обработки указана в свойстве обработки «Основная форма», если мы это свойство очистим.

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

Права на обработку 1С
Чтобы пользователь мог работать с обработкой, ему нужно дать права на неё. Для этого, необходимо у соответствующей роли для обработки установить права Использовать и Просмотр.

Если вы установите только право Использовать, то пользователь не сможет видеть обработку в интерфейсе. Он сможет только обращаться в ней посредством программного кода.
Если Вы внедряете обработку в какую-то типовую конфигурацию, то лучше для этого создать отдельную роль, а не изменять текущую. Тогда у вас будет меньше проблем с обновлением в будущем.
Открыть обработку 1с
Для того, чтобы открыть обработку 1С в пользовательском клиенте «1С: Предприятия», необходимо, чтобы она была добавлена в командный интерфейс нужной подсистемы, а также на обработку были даны пользователю соответствующие права. Если всё это сделано, то обработка появится в меню «Сервис» подсистемы, в которую её добавили.

И при выполнении команды с именем обработки будет открыта форма обработки.

Я немного изменил управляемую форму обработки, добавив надпись.
Управляемая форма открылась в независимом окне, если мы хотим, чтобы она открылась поверх окон, то нужно у основной формы обработки установить в свойство «Режим открытия окна» или значение «Блокировать весь интерфейс», или значение «Блокировать окно владельца».

После таких настроек, обработка будет открываться по верх окон.

Открыть внешнюю обработку 1С
Если вы хотите открыть внешнюю обработку 1С, то следует выполнить команду «Открыть», которая находится по пути «Сервис и настройки» — «Файл» (для версии платформы начиная с 8.3.15).

В окне «Открыть» необходимо найти и выбрать нужную вам обработку.

После выйдет предупреждение безопасности, если вы знаете, что это за обработка, то нажимаете кнопку «Да».

Форма внешней обработки открылась.

Замечу, что в моем случае открылась форма обработки в отдельном окне, потому что, во-первых, я создал основную форму внешней обработки, а во-вторых, установил у основной формы в свойство «Режим открытия окна» значение блокировать окно владельца.

Чтобы пользователь мог открывать внешние обработки, ему необходимо установить право «Интерактивное открытие внешних обработок».

Другие статьи по конфигурированию в 1С:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
