Публикации

БСП
Разработки

Найдено результатов: 12


НастройкиВнедрения

Возвращает настройки внедрения для инструментов разработчика.
ОбщийМодуль.УправлениеДоступомСлужебный
Автор: 1С
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Возвращает настройки внедрения для инструментов разработчика.
//
// Параметры:
//  ДействующиеПараметры - Неопределено - значение по умолчанию.
//                       - Структура - только для вызова из функции РезультатПроверкиОграниченияДоступа.
//
// Возвращаемое значение:
//  Структура - со свойствами:
//    * ОграниченияВРолях - Структура - со свойствами:
//       * ДляПользователей        - Соответствие - со свойствами, как для внешних пользователей (ниже).
//       * ДляВнешнихПользователей - Соответствие - со свойствами:
//           * Ключ     - Строка - полное имя объекта метаданных (списка). Имя коллекции на английском.
//                                 В форме объекта должна вставка ПриЧтенииНаСервере.
//           * Значение - Структура - со свойствами:
//               * ШаблонДляОбъекта - Булево - если Истина, тогда используется шаблон #ДляОбъекта,
//                                             если Ложь,   тогда используется шаблон #ДляРегистра.
//               * Параметры - Массив - параметры шаблона (для объекта 1, для регистра 6).
//                   * Значение - Строка - например, имя поля "Владелец" или
//                                      опорного поля регистра "Организация".
//
//    * ПредопределенныеИдентификаторы - Соответствие - со свойствами:
//        * Ключ     - Строка - имя требуемого предопределенного элемента справочника
//                              ИдентификаторыОбъектовМетаданных или ИдентификаторыОбъектовРасширений
//                              в формате "<ИмяСправочника>.<ИмяПредопределенного>".
//        * Значение - Строка - полное имя соответствующего объекта метаданных.
//
//    * ВладельцыЗначенийКлючейДоступа - Структура - для группы определяемых типов:
//        * Ссылки    - Массив - полные имена типов ссылки  (имя коллекции на английском).
//        * Документы - Массив - полные имена типов объекта (имя коллекции на английском).
//        * Объекты                      - Массив - то же, что в предыдущем пункте.
//        * НаборыЗаписей                - Массив - то же, что в предыдущем пункте.
//        * НаборыЗаписейРегистраРасчета - Массив - то же, что в предыдущем пункте.
//
//    * ЗначенияДоступа - Массив - полные имена типов ссылки (имя коллекции на английском).
//                                 Для дополнения определяемого типа ЗначениеДоступа.
//
//    * ТипыИзмеренийРегистровКлючей - Соответствие - для изменений с именем Поле*
//        регистра КлючиДоступаКРегистрам и регистров КлючиДоступаКРегистру*:
//           * Ключ     - Строка - имя регистра.
//           * Значение - Структура - со свойствами:
//               * ИменаТипов - Массив - со значениями:
//                   * Значение - Строка - полное имя типа (на английском).
//               * ПоляРегистров - Соответствие - со свойствами:
//                   * Ключ - полное имя регистра, который ограничивается.
//                   * Значение - Массив - порядок полей соответствуют служебным полям (Поле1, Поле2, ...):
//                       * Значение - Структура - со свойствам:
//                           * Поле - Строка - имя поля регистра.
//                           * Тип  - ОписаниеТипов - типы поля регистра.
//               * ПоляРегистровПоТипам - Соответствие - со свойствами:
//                   * Ключ - полное имя типа (на английском).
//                   * Значение - Массив - со значениями:
//                       * Значение - полное имя поля, например,
//                                      "РегистрСведений.ДополнительныеСведения.Свойство".
//
Функция НастройкиВнедрения(ДействующиеПараметры = Неопределено) Экспорт
	
	ОграниченияВРолях = Новый Структура;
	ОграниченияВРолях.Вставить("ДляПользователей",        Новый Соответствие);
	ОграниченияВРолях.Вставить("ДляВнешнихПользователей", Новый Соответствие);
	
	ВладельцыЗначенийКлючейДоступа = Новый Структура;
	ВладельцыЗначенийКлючейДоступа.Вставить("Ссылки",        Новый Массив);
	ВладельцыЗначенийКлючейДоступа.Вставить("Документы",     Новый Массив);
	ВладельцыЗначенийКлючейДоступа.Вставить("Объекты",       Новый Массив);
	ВладельцыЗначенийКлючейДоступа.Вставить("НаборыЗаписей", Новый Массив);
	ВладельцыЗначенийКлючейДоступа.Вставить("НаборыЗаписейРегистраРасчета", Новый Массив);
	
	ПредопределенныеИдентификаторы = Новый Соответствие;
	ЗначенияДоступа = Новый Массив;
	ТипыИзмеренийРегистровКлючей = Новый Соответствие;
	ТипыИзмеренийРегистраКлючей(ТипыИзмеренийРегистровКлючей, "КлючиДоступаКРегистрам");
	
	ТипыТаблицПоИменам = УправлениеДоступомСлужебныйПовтИсп.СинтаксисЯзыка().ТипыТаблиц.ПоИменам;
	ЗначенияДоступа.Добавить(ИмяТипаСсылкиXML(Метаданные.Справочники.КлючиДоступа.ПолноеИмя(), ТипыТаблицПоИменам));
	
	ВозможныеПрава = УправлениеДоступомСлужебныйПовтИсп.ВозможныеПраваДляНастройкиПравОбъектов();
	Для Каждого ОписаниеВозможныхПрав Из ВозможныеПрава.ПоПолнымИменам Цикл
		ЗначенияДоступа.Добавить(ИмяТипаСсылкиXML(ОписаниеВозможныхПрав.Ключ, ТипыТаблицПоИменам));
	КонецЦикла;
	
	Если ДействующиеПараметры = Неопределено Тогда
		ОбщийКонтекст = ОбщийКонтекстРасчетаПараметровОграничения(Истина);
		НовыеХранимыеПараметры = ХранимыеПараметрыОграниченияДоступа(ОбщийКонтекст);
		ДействующиеПараметры = Новый Структура(НовыеХранимыеПараметры.ДляЗаписиОбъектовИПроверкиПрав.Получить());
	КонецЕсли;
	
	Для Каждого ОписаниеВерсии Из ДействующиеПараметры.ВерсииОграниченийСписков Цикл
		ПолноеИмя = ОписаниеВерсии.Ключ;
		ПолноеИмяXML = ПолноеИмяXML(ПолноеИмя, ТипыТаблицПоИменам);
		ИмяТипаСсылкиXML  = ИмяТипаСсылкиXML(ПолноеИмя, ТипыТаблицПоИменам);
		ИмяТипаОбъектаXML = ИмяТипаОбъектаИлиНабораЗаписейXML(ПолноеИмя, ТипыТаблицПоИменам);
		
		Если ЗначениеЗаполнено(ИмяТипаСсылкиXML) Тогда
			ВладельцыЗначенийКлючейДоступа.Ссылки.Добавить(ИмяТипаСсылкиXML);
		КонецЕсли;
		
		Если СтрНачинаетсяС(ИмяТипаОбъектаXML, "DocumentObject.") Тогда
			ВладельцыЗначенийКлючейДоступа.Документы.Добавить(ИмяТипаОбъектаXML);
			
		ИначеЕсли СтрНачинаетсяС(ИмяТипаОбъектаXML, "CalculationRegisterRecordSet.") Тогда
			ВладельцыЗначенийКлючейДоступа.НаборыЗаписейРегистраРасчета.Добавить(ИмяТипаОбъектаXML);
			
		ИначеЕсли СтрНайти(ИмяТипаОбъектаXML, "RecordSet.") > 0 Тогда
			ВладельцыЗначенийКлючейДоступа.НаборыЗаписей.Добавить(ИмяТипаОбъектаXML);
			
		ИначеЕсли СтрНайти(ИмяТипаОбъектаXML, "Object.") > 0 Тогда
			ВладельцыЗначенийКлючейДоступа.Объекты.Добавить(ИмяТипаОбъектаXML);
		КонецЕсли;
		
		Если ОписаниеВерсии.Значение = Неопределено Тогда
			Продолжить;
		КонецЕсли;
		
		ДобавитьОграниченияВРолях(ПолноеИмяXML,
			ПолноеИмя,
			ОграниченияВРолях.ДляПользователей,
			ДействующиеПараметры.ДополнительныйКонтекст.ДляПользователей.СвойстваОграниченияСписков,
			ТипыИзмеренийРегистровКлючей,
			ТипыТаблицПоИменам,
			ПредопределенныеИдентификаторы);
		
		ДобавитьОграниченияВРолях(ПолноеИмяXML,
			ПолноеИмя,
			ОграниченияВРолях.ДляВнешнихПользователей,
			ДействующиеПараметры.ДополнительныйКонтекст.ДляВнешнихПользователей.СвойстваОграниченияСписков,
			ТипыИзмеренийРегистровКлючей,
			ТипыТаблицПоИменам,
			ПредопределенныеИдентификаторы);
	КонецЦикла;
	
	Настройки = Новый Структура;
	Настройки.Вставить("ОграниченияВРолях",              ОграниченияВРолях);
	Настройки.Вставить("ПредопределенныеИдентификаторы", ПредопределенныеИдентификаторы);
	Настройки.Вставить("ВладельцыЗначенийКлючейДоступа", ВладельцыЗначенийКлючейДоступа);
	Настройки.Вставить("ЗначенияДоступа",                ЗначенияДоступа);
	Настройки.Вставить("ТипыИзмеренийРегистровКлючей",   ТипыИзмеренийРегистровКлючей);
	
	Возврат Настройки;
	
КонецФункции

РезультатПроверкиОграниченияДоступа

Возвращает результат проверки ограничения доступа для инструмента разработчика.
ОбщийМодуль.УправлениеДоступомСлужебный
Автор: 1С
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Возвращает результат проверки ограничения доступа для инструмента разработчика.
//
// Параметры:
//  ПолноеИмя - Строка - полное имя объекта метаданных.
//  ДополнительныеПараметры
//            - Неопределено - проверить и вернуть текущее ограничение.
//            - Структура - со свойствами:
//                * Текст - Строка - новый текст ограничения для пользователей.
//                * ТекстДляВнешнихПользователей - Строка - новый текст ограничения для внешних пользователей.
//                * УчитыватьЗависимости - Булево - учитывать зависимости между ограничениями объектов.
//
// Возвращаемое значение:
//  Структура - со свойствами:
//   * ОшибкаОписанияОграничения - Строка - если не пустая, то описание ограничения не удалось получить.
//       Если при этом УчитыватьЗависимости = Истина, то это текст первой ошибки при получении всех описаний.
//
//   * ТекстВМодулеМенеджера - Неопределено - когда заполнена ОшибкаОписанияОграничения.
//                           - Булево - возвращает место размещения текста ограничения,
//                               когда Истина - в модуле менеджера, иначе в переопределяемом модуле.
//
//   * ДляПользователей - Структура - со свойствами:
//      * ПроверяемоеОграничение - Неопределено, Строка    - проверенный текст ограничения.
//      * ОписаниеОшибок         - Неопределено, Структура - см. УправлениеДоступом.СтруктураОграничения.
//      * ОшибкаФормированияПараметровОграничения - Неопределено, Строка - текст ошибки.
//      * ОшибкаФормированияТекстовЗапросов       - Неопределено, Строка - текст ошибки.
//      * ОграничениеПоВладельцуВозможно - Неопределено, Булево - свойство проверенного ограничения.
//      * ОграниченияВРолях - Неопределено, Структура - со свойствами:
//          * ШаблонДляОбъекта - Булево - если Истина, тогда используется шаблон #ДляОбъекта,
//                                        если Ложь,   тогда используется шаблон #ДляРегистра.
//          * Параметры - Массив - параметры шаблона (для объекта 1, для регистра 6).
//              * Значение - Строка - например, имя поля "Владелец" или
//                                    опорного поля регистра "Организация".
//      * ОграничениеВМодуле - Неопределено, Строка - текст ограничения, который установлен в конфигурации.
//      * ПоВладельцуБезЗаписиКлючейДоступа - Неопределено, Булево - настройка ограничения,
//                                    установленная в конфигурации.
//
//   * ДляВнешнихПользователей - Структура - со свойствами, как ДляПользователей.
//
//   * ВладелецЗначенийКлючейДоступа                            - Строка - типы для одноименного определяемого типа.
//   * ВладелецЗначенийКлючейДоступаОбъект                      - Строка - типы для одноименного определяемого типа.
//   * ВладелецЗначенийКлючейДоступаНаборЗаписей                - Строка - типы для одноименного определяемого типа.
//   * ВладелецЗначенийКлючейДоступаНаборЗаписейРегистраРасчета - Строка - типы для одноименного определяемого типа.
//   * ПолеРегистраКлючейДоступаКРегистрам                      - Строка - типы для одноименного определяемого типа.
//   * ЗначениеДоступа                                          - Строка - типы для одноименного определяемого типа.
//
//   * ТипыИзмеренийОтдельногоРегистраКлючей - Неопределено, Структура - со свойствами:
//      * ИмяРегистраСведений - Строка - имя регистра ключей доступа.
//      * ТипыИзмерений       - Строка - типы для соответствующих измерений регистра.
//
//   * ПредопределенныйИдентификатор - Неопределено, Структура - со свойствами
//      * ИмяСправочника       - Строка - имя справочника идентификаторы объектов метаданных (или расширений).
//      * ИмяПредопределенного - Строка - имя предопределенного в справочнике.
//
Функция РезультатПроверкиОграниченияДоступа(ПолноеИмя, ДополнительныеПараметры = Неопределено) Экспорт
	
	Возврат РезультатПроверкиОграниченияДоступаОбъекта(ПолноеИмя, ДополнительныеПараметры);
	
КонецФункции

OneScript

OpenSource инструмент автоматизации для специалистов по 1С. Проект является независимой кросс-платформенной реализацией виртуальной машины, исполняющей скрипты на языке 1С:Предприятие.

TurboConf - расширение Конфигуратора 1С

TurboConf повышает эффективность работы в Конфигураторе 1С и помогает автоматизировать рутинные задачи.

Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз

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

Клиент TurboStore

Программа добавляет в Конфигуратор "ТурбоПоиск", который ищет сразу по нескольким источникам данных: сервису FastCode, библиотеке стандартных подсистем (БСП) и каталогу разработок TurboStore.

OneTracker - трекер учета рабочего времени программиста 1С

Программа автоматически замеряет время работы разработчика с 1С в режиме Конфигуратора или Предприятия. Учет ведется в разрезах задач, информационных баз или объектов конфигураций.

FastCode Professional - быстрый поиск кода 1С

Удобный поиск по базе шаблонов кода, БСП, общим модулям конфигурации и локальным файлам, ответы на вопросы, помощь сообщества программистов 1С. Клиент для поиска прямо в Конфигураторе!

УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика

Возвращает уточнения при возникновении проблем с параметрами работы программы.
ОбщийМодуль.СтандартныеПодсистемыСервер
Автор: 1С
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Возвращает уточнения при возникновении проблем с параметрами работы программы.
Функция УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика() Экспорт
	
	Возврат Символы.ПС + Символы.ПС 
		+ НСтр("ru = 'Для разработчика: возможно требуется обновить вспомогательные данные,
					|которые влияют на работу программы. Для выполнения обновления можно:
					|- воспользоваться внешней обработкой
					|  ""Инструменты разработчика: Обновление вспомогательных данных"",
					|- либо запустить программу с параметром командной строки 1С:Предприятия 8
					|  ""/С ЗапуститьОбновлениеИнформационнойБазы"",
					|- либо увеличить номер версии конфигурации, чтобы при очередном запуске
					|  выполнились процедуры обновления данных информационной базы.'");
	
КонецФункции

ПриЗаполненииПоставляемыхПрофилейГруппДоступа

Заполняет описания поставляемых профилей групп доступа и
ОбщийМодуль.УправлениеДоступомПереопределяемый
Автор: 1С
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Заполняет описания поставляемых профилей групп доступа и
// переопределяет параметры обновления профилей и групп доступа.
//
// Для автоматической подготовки содержимого процедуры следует воспользоваться инструментами
// разработчика для подсистемы Управление доступом.
//
// Параметры:
//  ОписанияПрофилей    - Массив - добавить описания профилей групп доступа (Структура).
//                        Состав свойств структуры см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа.
//
//  ПараметрыОбновления - Структура - содержит свойства:
//   * ОбновлятьИзмененныеПрофили - Булево - начальное значение Истина.
//   * ЗапретитьИзменениеПрофилей - Булево - начальное значение Истина.
//       Если установить Ложь, тогда поставляемые профили можно не только просматривать, но и редактировать.
//   * ОбновлятьГруппыДоступа     - Булево - начальное значение Истина.
//   * ОбновлятьГруппыДоступаСУстаревшимиНастройками - Булево - начальное значение Ложь.
//       Если установить Истина, то настройки значений, выполненные администратором для
//       вида доступа, который был удален из профиля, будут также удалены из групп доступа.
//
// Пример:
//  ОписаниеПрофиля = УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();
//  ОписаниеПрофиля.Имя           = "Менеджер";
//  ОписаниеПрофиля.Идентификатор = "75fa0ecb-98aa-11df-b54f-e0cb4ed5f655";
//  ОписаниеПрофиля.Наименование  = НСтр("ru = 'Менеджер по продажам'", Метаданные.ОсновнойЯзык.КодЯзыка);
//  ОписаниеПрофиля.Роли.Добавить("ЗапускВебКлиента");
//  ОписаниеПрофиля.Роли.Добавить("ЗапускТонкогоКлиента");
//  ОписаниеПрофиля.Роли.Добавить("БазовыеПраваБСП");
//  ОписаниеПрофиля.Роли.Добавить("Подсистема_Продажи");
//  ОписаниеПрофиля.Роли.Добавить("ДобавлениеИзменениеДокументовПокупателей");
//  ОписаниеПрофиля.Роли.Добавить("ПросмотрОтчетаКнигаПокупок");
//  ОписанияПрофилей.Добавить(ОписаниеПрофиля);
//
Процедура ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления) Экспорт
	
	// _Демо начало примера
	_ДемоСтандартныеПодсистемы.ПриЗаполненииПоставляемыхПрофилейГруппДоступа(ОписанияПрофилей, ПараметрыОбновления);
	// _Демо конец примера
	
КонецПроцедуры