Очистка хранилища настроек пользователей. Работа с хранилищем конфигурации удаленно. Настройка сервера хранилища конфигураций. Метод работы с хранилищем конфигурации по tcp Где хранятся настройки отчетов в 1с 8.3

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

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

Для решения этой задачи нам понадобиться:

1. хороший интернет на всех компьютерах, где идет разработка
2. компьютер, который виден из вне по белому IP

Как правило компьютер с белым IP – сервер в офисе. Начинать разворачивание хранилища конфигурации надо с его настройки. Первым делом поставим на него платформу 1С. При установке нужно указать наличие компоненты Сервер хранилища конфигурации. Обратите внимание на релиз платформы, дело в том, что при данной методике работы нужна одинаковая версия платформы, на всех компьютерах. И в вашем офисе, и дома, и у заказчика.

После установки, сам сервер хранилища в службах не появиться. Его надо зарегистрировать. Файл службы называется crserver.exe и лежит в каталоге bin .


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

Теперь регистрируем службу сервера хранилищ. Для этого жмем «пуск», «выполнить», набираем «cmd», жмем Enter и в командной строке пишем:
"C:\Program Files (x86)\1cv8\8.3.4.408\bin\crserver.exe" -instsrvc -d "C:\Обмен\Хранилища"

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

Тут надо убедиться, что служба запущена и что у неё стоит автозапуск. Поскольку при регистрации мы не указали пользователя, то запускается она под системной учетной записью. Это удобно, но возможно не безопасно, при необходимости исправьте это в свойствах службы.
Теперь нам надо создать хранилище. Эта процедура долгая, поэтому рекомендую делать это в локальной сети, где находится наш сервер. Создаем, его как обычно, только в строке с путём указываем не сетевую папку, а путь в следующем формате:
tcp://Server1C/ХранилищеПроекта1\

Где Server1C – имя компьютера в локальной сети. Можно указать IP адрес этого компьютера. ХранилищеПроекта1 – имя каталога для нового хранилища. После создания на сервере хранилище будет лежать в папке C:\Обмен\Хранилища\ХранилищеПроекта1 .

Хоть мы и используем сервер хранилищ, но по своей сути это та же файловая база формата 1CD и к ней можно подключиться старым способом, указав в строке подключения сетевой каталог:
\\Server1C\Обмен\Хранилища\ХранилищеПроекта1

Тут есть несколько нюансов:
1. При работе по tcp с файлом базы работает процесс запущенный относительно файла локально, что обеспечивает некую надежность. Ранее я писал, что даже из-за использования wi-fi база хранилища может посыпаться, печальный опыт был. В этом случае система становится более устойчива к сбоям в сети.
2. При работе по tcp нужны одинаковые версии релизов платформы у всех участников, при файловом общении – нет.
3. Общая папка – папка с полным доступом для всех участников. Люди запросто могут случайно (а может и не случайно) накидать туда мусора, стереть пару «не нужных» файлов, в общем нагадить.

Исходя из этих нюансов, возможно есть смысл даже внутри локальной сети в некоторых случаях разворачивать сервер хранилища.
Теперь о доступе из вне. Сервер хранилищ работает на порту 1542. Если внешний белый IP адрес указывает непосредственно на Ваш сервер, то нужно позаботиться об открытии этого порта. Если внешний IP указывает на роутер, то надо настроить проброску. В моем случае была проброска, сисадмин выдели свободный порт для этого. У меня строка подключения выглядела так:
tcp://36.21.65.20:1501/ХранилищеПроекта1\

Комфорт работы с таким хранилищем полностью зависит от скорости интернета, поэтому всякие там usb модемы в модульных помещениях (почти всех торговых центрах) – плохая практика. Если в модеме нет стабильного 3G и он постоянно переходит на GPRS, то я бы даже не стал пытаться.

Еще, на последок, расскажу об обновлении платформы. Т.к. свежая 1С 8.3 сейчас выходит часто, то это актуально. Переустанавливать платформу надо везде сразу, это и так ясно. При переустановке на сервере служба автоматом не обновиться. Если делать все по правильному, т.е. зарегистрировать приложение crserver.exe из папки bin со свежим релизом платформы, то т.к. называется служба так же, то старая служба пометится на удаление, потребуется перезагрузка сервера. Можно поступить проще. Заходим в службы, останавливаем сервер хранилищ. Смотрим в свойствах строку запуска и копируем её в буфер обмена. Лезем в редактор реестра (regedit ) и ищем в реестре эту строку. Правим в ней номер релиза (он присутсвует в имени папки). Запускаем службу обратно. Все. Если Вы накосячили, то служба у Вас не запуститься. После запуска зайдите в свойства службы и визуально убедитесь, что она стартанула из папки с новым релизом.

На сегодня все, спасибо за внимание

Настройки пользователя в 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С, иначе – используется выбранное, а стандартное не используется.

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

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

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

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

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

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

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

Многим хватит двух функций: СохранитьЗначение(<Имя>, <Значение>) и парную к ней ВосстановитьЗначение(<Имя>) . но это только для толстого клиента. Если почитать справку, то видно, что настройка сохраняется для пары база-пользователь. Нужно не забывать, что сохранять можно не только простые типы данных, но сложные, например структуру или даже таблицу значений.

Также программисты пользовались функциями ЗначениеВФайл(<ИмяФайла>, <Значение>) и ЗначениеИзФайла(<ИмяФайла>).

Начиная с версии 8.2, точный релиз не скажу, в дереве метаданных появилась ветка «Хранилище настроек» про которую нужно рассказать подробнее.

Механизм можно разделить на две части: стандартный механизм и пользовательский механизм.

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

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

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

И соответственно восстановить

ХранилищеОбщихНастроек.Загрузить(<КлючОбъекта>, <КлючНастроек>, <ОписаниеНастроек>, <ИмяПользователя>)

Детально все параметры описаны в справке.

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

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

Также желательно отметить флажок восстанавливать значения при открытии.

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

Механизмы простые, но действенные, пользователь будут вам благодарны.

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

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

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

  • Записать настройки можно при помощи метода ХранилищеОбщихНастроек.Сохранить ().
  • Потом для прочтения нужно использовать ХранилищеОбщихНастроек.Загрузить () с теми же параметрами.
  • Если настройка стала не актуальной, её можно удалить методом ХранилищеОбщихНастроек.Удалить ().
  • Также в разрезе объекта можно получить список сохраненных настроек с помощью метода ХранилищеОбщихНастроек.ПолучитьСписок ().

Получите 267 видеоуроков по 1С бесплатно:

Сохраненные настройки хранятся в отдельной сводной таблице БД.

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

Хранилище настроек может создать и сам разработчик в конфигураторе 1С:

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

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

  • необходима миграции настроек между базами данных;
  • необходим ссылочный контроль данных настроек.

Использование хранилищ настроек в отчетах и обработках 1С

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

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

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

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

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

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

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

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

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

Запись и получение настройки:

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

Удаление лишней/ненужной настройки:

ХранилищеОбщихНастроек.Удалить(НазваниеОбъекта, НазваниеНастройки, ИмяПользователя);

Получение списка настроек:

СписокЗначенийНастроек = ХранилищеОбщихНастроек.ПолучитьСписок(ИмяОбъекта, ИмяПользователя);

Параметры «НазваниеОбъекта», «НазваниеНастройки» и «ИмяПользователя» должны строковой тип.

В базе данных, все настройки хранятся в отдельно таблице.

Хранилища настроек создаваемые программистом

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

  • необходимо перемещение настроек между базами данных;
  • необходим ссылочный контроль при хранении настроек;
  • требуется особая структура настроек 1С.

Хранилища настроек добавляют в соответствующем разделе конфигурации.

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

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

Доступ к созданному хранилищу можно получить таким образом:

ХранилищаНастроек.НазваниеХранилища.Загрузить();

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

Управляемые формы имеют два свойства:

  • Автоматическое сохранение данных — если выбрано значение «Использовать», то данные будут сохраняться автоматически в стандартное хранилище настроек данных форм;
  • Сохранение данных в настройках — если выбрано значение «Использовать список», то в окне реквизитов формы появится столбец «Сохранение», с помощью которого можно указать какие реквизиты формы должны сохраняться, а также появиться возможность выбрать хранилище настроек для этих данных.

На этом все, надеюсь данная статья Вам помогла.

Интернет на Андроиде