Меню

1с настройки скд в хранилище значений

1с настройки скд в хранилище значений

Настройки пользователя в 1С обычно разделены на три части.

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

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

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

Где хранить все эти настройки в 1С?

Как настройки 1С сохраняли раньше

В толстом клиенте 1С платформа предлагала следующий стандартный вариант:

  • Когда требуется запомнить настройку 1С, программист использует функцию
    СохранитьЗначение(«ИмяНастройки», Значение);
  • Чтобы прочитать настройку 1С, используется функция
    Значение = ВосстановитьЗначение(«ИмяНастройки», Значение);

Соответственно программист создает кнопки сохранения и восстановления настроек 1С, а пользователь использует этот механизм (ну или программист сохраняет их автоматически).

В качестве значения можно использовать не только число или строку, но и например Структуру – тип, который позволяет хранить в себе множество значений с их наименованиями, например:
Настройки = Новый Структура();
Настройки.Вставить(«ИмяНастройки», Значение);
Значение = Настройки.ИмяНастройки;

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

Также программист был волен разрабатывать свои произвольные методы хранения настроек 1С с использованием обычных методов – например, с помощью работы с текстовыми и XML файлами – сохранять настройки 1С произвольным образом в файл.

В типовых конфигурациях настройки 1С отчетов сохранялись в регистр сведений. А настройки 1С отчетов СКД можно сохранить в файл XML.

Стандартное хранилище настроек 1С

Все эти возможности остались и в новой платформе 8.2, но появился наконец некий «стандартный метод» сохранения настроек – Хранилище настроек 1С.

Механизм делится на две части – стандартные и пользовательские хранилища настроек 1С. Стандартное реализовано в платформе 1С, пользовательские – это объект 1С, который создает и программирует программист.

Стандартное хранилище настроек 1С используется платформой по умолчанию в тонком клиенте для сохранения настроек 1С пользователя в следующих механизмах платформы:

  • Командный управляемый интерфейс
  • Формы
  • Настройки и варианты отчетов.

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

  • Когда требуется запомнить настройку
    ХранилищеОбщихНастроек.Сохранить(«ИмяОбъекта», «ИмяНастроек», Значение);
  • Чтобы прочитать настройку
    Значение = ХранилищеОбщихНастроек.Загрузить(«ИмяОбъекта», «ИмяНастроек», Значение);
  • Чтобы получить список настроек
    Список = ХранилищеОбщихНастроек.ПолучитьСписок(«ИмяОбъекта»);
Читайте также:  что будет если сбросить настройки связи

Настройки 1С сохраняются непосредственно в базе данных, в специальных таблицах.

Как видно, по сравнению со старым механизмом, добавился дополнительный разрез – имя объекта. Платформа, при автоматическом сохранении используется имя объекта 1С в метаданных с указанием вида, например:
Отчет.Продажи

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

Существуют следующие стандартные хранилища настроек 1С:

  • ХранилищеСистемныхНастроек
  • ХранилищеОбщихНастроек
  • ХранилищеНастроекДанныхФорм
  • ХранилищеПользовательскихНастроекОтчетов и ХранилищеВариантовОтчетов.

Программист может создать собственные хранилища настроек – в конфигураторе.

Это предполагается делать в следующих случаях:

  • Ссылочный контроль при хранении настроек 1С
  • Миграция настроек 1С при использовании УРБД
  • Специальная структура настроек 1С (для автоматического ее соблюдения)
  • Переопределение стандартных хранилищ.

Для создания собственного хранилища настроек 1С – необходимо добавить таковое в конфигураторе в окне конфигурации в ветке Общие/Хранилища настроек 1С.

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

Если в свойствах пустая строка – используется стандартное хранилище настроек 1С, иначе – используется выбранное, а стандартное не используется.

В тонком управляемом клиенте 1С использование хранилища возможно автоматически:

    В управляемой форме есть два параметра
    o Автоматическое сохранение данных – будет проводиться автоматически, в стандартное хранилище настроек форм
    o Сохранение данных в настройках 1С – использовать список – в списке реквизитов формы появится колонка Сохранение, в которой можно проставить галочки, который будут сохраняться, а также можно указать созданное хранилище настроек


В отчете (в том числе внешнем), появились параметры – Хранилище вариантов (отчетов) и Хранилище настроек 1С – в них нужно выбрать созданное хранилище 1С.

В толстом клиенте для использования требуется в коде на языке 1С прописывать непосредственный вызов сохранения настроек 1С:
ХранилищаНастроек.ИмяХранилища.Сохранить();

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

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

источник

Сохранение параметров (настроек отборов) СКД в справочнике

Есть некая обработка-отчет. В которой используется СКД, есть отборы и тп.

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

Читайте также:  oysters t80 3g настройки

Как в справочник запихнуть хранение отборов компоновщика.

Сам макет СКД расположен в обработке.

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

Сообщетственно в обработке будет выбиратся элемент справочника и восстанавливаться

Миллионер пытается программировать! Шок! Смотреть до конца!

Главный вывод — Стасу пора делать сервис вопросов-ответов за вознаграждение. С внутренней валютой и плюшками.\

Чтобы народ мог темы заводить с платным вознаграждением. Сайт брал какую то комиссию.
Люди задавали вопросы, отвечающие давали качественные ответы и помощь ведущие к результату.

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

Кстати, Маня. А как ты собираешься боротся с отмывом через тебя бабла террористами, например? Я создам две учетки, на одной задам вопрос, на другой отвечу, а ФСБъ придет к тебе.

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

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

источник

Сохранение СКД в хранилище значений.

Есть справочник. В нем реквизит СхемаКомпоновки (тип ХранилищеЗначения). В модуле формы есть реквизит ТекущаяСхема (тип СхемаКомпоновкиДанных), который принимает в себя объект из реквизита СхемаКомпоновки. Далее с текущей схемой работаем через КонструкторСхемыКомпоновкиДанных в форме. При записи снова конвертим в хранилище (в реквизит справочника).
Так вот — куда то исчезают Настройки по умолчанию. Простейший код

Сообщить(«До сохранения «+ТекущаяСхема.НастройкиПоУмолчанию.ПараметрыДанных.Элементы.Количество());
СхемаКомпоновки = Новый ХранилищеЗначения(ТекущаяСхема);
ТекущаяСхема = СхемаКомпоновки.Получить();
Сообщить(«После сохранения «+ТекущаяСхема.НастройкиПоУмолчанию.ПараметрыДанных.Элементы.Количество());

Выдает
До сохранения 4
После сохранения 0

Хотя самое парадоксальное, что если после этого открыть ТекущаяСхема в конструкторе — настройки по умолчанию заполнены! Это почему так?

Неа. Это в промежуточный файл сохранять чтоли?
Еще непонятный мне эффект.

уже не пустые! (и это видно в самом конструкторе). Откуда он их тогда берет, если не из ТекущейСхемы?

источник

Хранилище настроек в 1С

Назначение объекта конфигурации «Хранилище настроек» понятно из названия — хранить различные пользовательские настройки. Область применения данного объекта широка — в любой, хоть сколь-нибудь серьезной конфигурации требуется хранить какие-либо пользовательские настройки.

Читайте также:  как сбросить планшет до заводских настроек если забыл графический ключ

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

Хранилища настроек в конфигураторе

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

Стандартные хранилища настроек

Итак, по умолчанию, в конфигурации имеются следующие хранилища настроек:

  • ХранилищеВариантовОтчетов — для доступа к настройкам вариантов отчетов.
  • ХранилищеПользовательскихНастроекОтчетов — для доступа к пользовательским настройкам отчетов.
  • ХранилищеНастроекДанныхФорм — для доступа к пользовательским настройкам данных форм.
  • ХранилищеОбщихНастроек — для доступа к общим настройкам.
  • ХранилищеСистемныхНастроек — для доступа к системным настройкам.
  • ХранилищеПользовательскихНастроекДинамическихСписков — для доступа к пользовательским настройкам динамических списков.

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

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

Для работы с хранилищами настроек (как со стандартными, так и с добавленными программистом) используются следующие методы.

источник

1с настройки скд в хранилище значений

ХранилищеЗначения (хранилище значений 1С) – это объект в языке 1С, который позволяет хранить в базе данных прочие значения, например картинки и файлы, структуры и таблицы значений.

Сначала мы создаем значение, например:
Знч = Новый ТаблицаЗначений();
Потом помещаем его в хранилище значений 1С:
Хранилище = Новый ХранилищеЗначения(Знч, Новый СжатиеДанных(9));
Сжатие данных в хранилище значений 1С с параметром «9» означает, что данные будут храниться в архивированном виде, с максимальной степенью сжатия.

Чтобы сохранить такое значение в базу данных, нужно создать объект конфигурации (справочник, документ и т.п.), у которого добавить реквизит с типом ХранилищеЗначения.
СправочникСсылка = Справочники.Хранилище.СоздатьЭлемент();
СправочникСсылка.ХранилищеЗначения = Хранилище;
СправочникСсылка.Записать();
Кроме хранения таких значений в базе данных, с помощью хранилища значений 1С, мы также можем сохранить такое значение в файл, например:
Настройки = Новый Структура();
Настройки.Вставить(«ПоУмолчанию», Истина);
Настройки.Вставить(«Наименование», «Наименование1»);

Хранилище = Новый ХранилищеЗначения(Настройки, Новый СжатиеДанных(9));
ЗначениеВФайл(«C:\», Хранилище);

Пример – сохранение значения из файла
//Значение — картинка из файла
Файл = Новый Картинка(«C:\ФайлКартинки.jpg»);
Хранилище = Новый ХранилищеЗначения(Файл, Новый СжатиеДанных(9));

//Значение — произвольный файл
Файл = Новый ДвоичныеДанные(«C:\ИсполняемыйФайл.exe»);
Хранилище = Новый ХранилищеЗначения(Файл, Новый СжатиеДанных(9));

//Значение — текстовый файл
Файл = Новый ЧтениеТекста(«C:\ТекстовыйФайл.txt»);
ТекстовыеДанные = Файл.Прочитать();
Хранилище = Новый ХранилищеЗначения(ТекстовыеДанные, Новый СжатиеДанных(9));
Значение, помещенное в хранилище значений 1С нельзя использовать, пока оно там находится. Чтобы работать с ним, его нужно «распаковать» обратно, например:
Знч = Хранилище.Получить();
Если Знч = Неопределено Тогда
Сообщить(«Ошибка получения значения из хранилища»);
КонецЕсли;

источник

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

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