[Обновление] Подсистема PAPI версия 0.9.2.6 с примерами

02.09.24

Разработка - Инструментарий разработчика

25.08.2024 Вышел релиз 0.9.2.6 подсистемы PAPI. Давайте посмотрим, что изменилось.

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

 
 Все изменения:

1 Переработан механизм отложенного действия с документами.

  • Добавлено действие «Снять пометку удаления»
  • Добавлено действие «Установить пометку удаления»
  • Добавлен макет с информацией по действиям с документами (РегистрСведений.PAPI_ОчередьДействийСДокументами.Макеты.ИнформацияПоДействиям)

2 Добавлен регистр сведений для сбора ошибок при выполнении подписки с постобработкой истории данных (РегистрСведений.PAPI_ОшибкиОбработкиПослеЗаписиВерсий)

3 Обновлена обработка PAPI_НастройкаСоставаИсторииДанных

  • Изменена функция для подключения БСП: "Дополнительные обработки и отчеты", обработка теперь работает нормально с БСП и без
  • Переименована команда "Прочитать настройки заново" в "Перечитать"
  • Добавлена строка поиска по дереву метаданных
  • Добавлена строка поиска по дереву полей и табличных частей
  • Добавлен расширенный поиск по дереву метаданных
  • Добавлен расширенный поиск дереву полей и табличных частей
  • Добавлена полная очистка истории данных на выбранную дату
  • Добавлена чистка истории данных по выбранному объекту метаданных

4 Обновлена обработка PAPI_ОтправкаСообщенийСервисовИнтеграции

  • Добавлена проверка на Минимальную версию платформы 8.3.17. Если платформа меньше, функционал будет отсутствовать
  • Добавлена проверка на версию платформы 8.3.21. Если версия больше или равна тогда появится возможность снять галочку создающую параметр "РазмерСообщения"
  • Изменена функция для подключения БСП: "Дополнительные обработки и отчеты", обработка теперь работает нормально с БСП и без

5 Обновление обработок PAPI_НастройкаСоставаИсторииДанных и PAPI_СообщенияСервисовИнтеграции

  • Изменена функция для подключения БСП: "Дополнительные обработки и отчеты", обработка теперь работает нормально с БСП и без

6 Добавлен механизм для автоматической очистки устаревших версий истории данных.

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

8 Проведены санитарные работы

  • Логирование алгоритмов и методов убрано из модуля логирования.
  • Из общих методов убрано начальное заполнение.
  • Заполнение заголовка ответа перенесено в модуль работы с ответом.
  • Частично подправлен нейминг и описание процедур и функций.

9 В демо базу добавлены новые методы.

 

Доработаны методы.

Основные флажки отвечающие за поведение изменили первичное отображение. Ранее они были в один ряд и я иногда сам ошибался включая не тот флажок.

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

 

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

 

Можно использовать двоичные данные и файлы:

 

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

 

Три новых метода.

Постановка задачи:

В демо базу добавлена закладка «Демо»

 

На закладке демо есть справочник «Страны мира», в который уже добавлено несколько стран:

 

На закладке «Демо» появился СКД отчет по странам мира «Все страны мира»:

 

Необходимо сделать метод, который будет вызывать обработку «ДемоПримерыМетодовPAPI» из расширения «Локализация PAPI» и в случае если передан параметр «CountryCode», метод будет возвращать страны найденные по коду. Результат будет возвращаться в файле с расширением XLSX. Метод должен работать как Get так и как Post.

При вызове Get в «CountryCode» передается код одной страны, при вызове Post передается массив кодов.

 
Пример 1. Двоичные данные, СКД, поток и обработка.

Создаем метод и включаем Get и Post.

Флажки выставил все, но можно оставить только «Разрешен».

 

Имя методу указал GetListCountriesXLSX

На закладке «Запрос» в параметрах добавил параметр «Страны» и в Алгоритме выбрал строку.

Код по созданию массива кодов:

МассивСтран = Новый Массив;
Если ПараметрыЗапроса.Свойство("CountryCode") Тогда
	
	МассивСтран.Добавить(Справочники.СтраныМира.НайтиПоКоду(ПараметрыЗапроса.CountryCode));

КонецЕсли;

Результат = МассивСтран;

Напоминаю: таким образом мы обрабатываем Query-параметры, они передаются после знака "?" в URL и чаще всего используются в запросах get.

 

Далее на закладке «Тело» пишем обработку для передаваемого в теле JSON с параметрами запроса post:

// читаем JSON                          
ТелоЗапросаJSON = PAPI.Прочитать_JSON(СтруктураВходныхПараметров.ТелоЗапроса);

МассивСтран = Новый Массив;                         
Если ТипЗнч(ТелоЗапросаJSON) = Тип("Структура") Тогда
	
	Если ТелоЗапросаJSON.Свойство("CountryCode") Тогда
		
		Если ТипЗнч(ТелоЗапросаJSON.CountryCode) = Тип("Массив") Тогда
			
			Для Каждого ТекущаяСтрана Из ТелоЗапросаJSON.CountryCode Цикл
				МассивСтран.Добавить(Справочники.СтраныМира.НайтиПоКоду(ТекущаяСтрана));
			КонецЦикла;
			
		КонецЕсли;
	КонецЕсли;      
                     
КонецЕсли;

ПараметрыМетода.Вставить("Страны", МассивСтран);

Результат = ПараметрыМетода;

 

На закладке «Вычисления» пишу вызов процедуры «ПолучитьСписокСтранВXML» из обработки «ДемоПримерыМетодовPAPI» добавленной в расширение «ДемоПримерыМетодовPAPI»:

текОбработка = Обработки.ДемоПримерыМетодовPAPI.Создать();  
текОбработка.ПолучитьСписокСтранВXML(ПараметрыМетода, СтруктураВозврата);

PAPI.ДобавитьЗаголовокОтвета(ПроизвольныеЗаголовки, "Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

Результат = СтруктураВозврата.ДанныеОтвета;

 

Процедура «ПолучитьСписокСтранВXML» из обработки:

// Получить список стран в XML на основании СКД
//
// Параметры:
//  ПараметрыМетода		 - Структура - Входящие параметры запроса
//  СтруктураВозврата	 - Структура - Исходящее состояние ответа
//
Процедура ПолучитьСписокСтранВXML(ПараметрыМетода, СтруктураВозврата) Экспорт
	
	Страны = ?(ПараметрыМетода.Свойство("Страны"), ПараметрыМетода.Страны, Неопределено);
											
	СхемаКомпоновки = Отчеты.ВсеСтраныМира.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	ВариантНастройки = СхемаКомпоновки.ВариантыНастроек.Найти("Основной");
	НастройкиКомпоновки = ВариантНастройки.Настройки;
	
	ПараметрОтбора = НастройкиКомпоновки.Отбор.Элементы;
	СтранаПолеКомпоновки = Новый ПолеКомпоновкиДанных("Ссылка");	
	Для Каждого Элемент Из ПараметрОтбора Цикл  
		Если Элемент.ЛевоеЗначение = СтранаПолеКомпоновки Тогда
			Элемент.Использование 	= ЗначениеЗаполнено(Страны);
			Элемент.ВидСравнения 	= ВидСравненияКомпоновкиДанных.ВСписке;
			Элемент.ПравоеЗначение 	= Страны;
		КонецЕсли;	
	КонецЦикла;

	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
			
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);
				
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;     
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
			
	ТабличныйДок = Новый ТабличныйДокумент;
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;     
	ПроцессорВывода.УстановитьДокумент(ТабличныйДок);         	
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
	//ИмяВременногоФайла = ПолучитьИмяВременногоФайла("XLSX");
	//ТабличныйДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLSX);
	//СтруктураВозврата.ДанныеОтвета = Новый ДвоичныеДанные(ИмяВременногоФайла);
	
	//УдалитьФайлы(ИмяВременногоФайла);
	
	НовПоток = Новый ПотокВПамяти;
	
	ТабличныйДок.Записать(НовПоток, ТипФайлаТабличногоДокумента.XLSX);
	СтруктураВозврата.ДанныеОтвета = НовПоток.ЗакрытьИПолучитьДвоичныеДанные();
		
КонецПроцедуры

 

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

 

На закладке «Ответ» указываем двоичные данные:

 

 

Проверяем GET в браузере. Выбираем все страны:

http://localhost/papi_demo/hs/papi/v1/GetListCountriesXLSX

 

Открываем скаченный файл:

 

Теперь передадим GET с параметром:

http://localhost/papi_demo/hs/papi/v1/GetListCountriesXLSX?CountryCode=642

 

Открываем скаченный файл:

 

Теперь проверяем POST через postman.

Тело запроса в JSON:

{

  "CountryCode": ["643", "642"]

}

Ответ прилетел.

 
Пример 2. Двоичные данные, СКД и временный файл.

Создаю метод копированием предыдущего и изменяю версию на V2:

 

Меняю код на закладке «Вычисления»: 

Страны = ?(ПараметрыМетода.Свойство("Страны"), ПараметрыМетода.Страны, Неопределено);
											
СхемаКомпоновки = Отчеты.ВсеСтраныМира.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
ВариантНастроеки = СхемаКомпоновки.ВариантыНастроек.Найти("Основной");
НастройкиКомпоновки = ВариантНастроеки.Настройки;
	
ПрараметрОтбора = НастройкиКомпоновки.Отбор.Элементы;
СтранаПолеКомпоновки = Новый ПолеКомпоновкиДанных("Ссылка");	
Для Каждого Элемент Из ПрараметрОтбора Цикл  
	Если Элемент.ЛевоеЗначение = СтранаПолеКомпоновки Тогда
		Элемент.Использование 	= ЗначениеЗаполнено(Страны);
		Элемент.ВидСравнения 	= ВидСравненияКомпоновкиДанных.ВСписке;
		Элемент.ПравоеЗначение 	= Страны;
	КонецЕсли;	
КонецЦикла;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
			
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);
				
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;     
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
			
ТабличныйДок = Новый ТабличныйДокумент;
	
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;     
ПроцессорВывода.УстановитьДокумент(ТабличныйДок);         	
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("XLSX");
ТабличныйДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLSX);
	
PAPI.ДобавитьЗаголовокОтвета(ПроизвольныеЗаголовки, "Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

Результат = Новый ДвоичныеДанные(ИмяВременногоФайла);
PAPIУдалиВременныйФайл = ИмяВременногоФайла;

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

В самом конце написан код:

PAPIУдалиВременныйФайл = ИмяВременногоФайла;

 

Это служебная переменная и после выполнения метода произойдет удаление временного файла:

УдалитьФайлы(ИмяВременногоФайла);

 

Проверяем GET в браузере. Выбираем все страны:

http://localhost/papi_demo/hs/papi/v2/GetListCountriesXLSX


Открываем скаченный файл:

 

Теперь передадим GET с параметром:

http://localhost/papi_demo/hs/papi/v2/GetListCountriesXLSX?CountryCode=642

 

Открываем скаченный файл:

Postman тоже отрабатывает нормально.

 
Пример 3. Файл и СКД.

Прежде чем сделать метод немного теории:

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

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

 

Создаю метод копированием предыдущего и изменяю версию на V3:

 

Оставляю все как было, меняю только тело ответа на закладке ответ:

 

Проверяем GET в браузере. Выбираем все страны:

http://localhost/papi_demo/hs/papi/v3/GetListCountriesXLSX

 

Открываем скаченный файл:

 

Так как я ничего в коде не менял, делаем вывод, что работает и с параметрами и через postman. 

 

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

 

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

«История Данных» появилась уже давно, еще на платформе 8.3.11. Это очень классный механизм который нам дала фирма 1С, но почему же его так мало людей используют?

 

Все потому, что фирма 1С по мимо механизма забыла дать следующее:

1 Хорошо оформленную информацию.

2 Инструменты по работе с этим механизмом стали появляться только с платформы 8.3.24.

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

 

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

 

Появился следующий пункт:

 

Форма настроек с включенным отбором:

 

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

 

Отбор отключен:

 

Я не стал делать как в БСП: Версионирование объектов. Честно скажу, мне не нравится, что там можно выбрать за текущий год, месяц и тд. Мне нужно хранить в принципе за год.

 

ВОПРОС: Если Вам нужно как в БСП. Напишите в комментариях и я сделаю дополнительные настройки.

 

Настройки по чистке можно включить из меню:

 

Настройки можно включить из контекстного меню:

 

Можно настроить регламент и выполнить чистку вручную:

 

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

 

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

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

 

Механизм состоит из следующих объектов конфигурации:

1 Перечисление «PAPI_ДействиеСДокументом» со следующими значениями:

  • Запись – с документом будут выполнено следующее действие Документ.Записать();
  • ОтменаПроведения – с документом будут выполнено следующее действие Документ.Записать(РежимЗаписиДокумента.ОтменаПроведения);
  • Проведение – с документом будут выполнено следующее действие Документ.Записать(РежимЗаписиДокумента.Проведение);
  • ПроведениеНеоперативный – с документом будут выполнено следующее действие Документ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
  • СнятьПометкуУдаления – с документом будут выполнено следующее действие Документ.УстановитьПометкуУдаления(Ложь);
  • УстановитьПометкуУдаления – с документом будут выполнено следующее действие Документ.УстановитьПометкуУдаления(Истина);

 

2 Регистр сведений PAPI_ОчередьДействийСДокументами служит для фиксации отложенного действия. Регистр содержит макет (ИнформацияПоДействиям) в котором описаны все варианты состояния источника и приемника. Описано, что в каждом из случаем делаю я, но это не значит, что вы будете делать тоже самое. Также описаны варианты которых быть недолжно (когда документ и проведен и помечен на удаления) и что с ними делать.

 

3 Константа PAPI_КоличествоПопытокОчередиДокументов служит для хранения количества допустимых попыток выполнения отложенного действия с документом. При превышении количества попыток, данное действие больше не выполняется.

 

4 Регламентное задание PAPI_ВыполнитьОбработкуОчередиДействийСДокументами

 

Примечание:

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

 

Код для записи данных в регистр:

РегистрыСведений.PAPI_ОчередьДействийСДокументами.ДобавитьИзменитьЗапись(СтруктураЗаписи);

 

Пример регистра с ошибками:

 

Пример регистра без ошибок:

 

Изменения обработок из состава PAPI-tools

Обновлена обработка PAPI_НастройкаСоставаИсторииДанных

Было в версии 0.9.2.5:

 

Стало в версии 0.9.2.6:

 

Подробно по изменениям можно прочитать в статье История данных. Изменения в платформе 8.3.26

Также все обработки из PAPI-tools теперь можно использовать как в конфигурациях без БСП, так и встраивать в подсистему БСП: «Дополнительные обработки и отчеты».

PAPI-tools на GitHub

 

Добавлен регистр сведений для сбора ошибок при выполнении подписки с постобработкой истории данных

Данный регистр сделан для тех случаев, когда в интеграции используется «История данных» и подписка на событие «ОбработкаПослеЗаписиВерсийИсторииДанных»

 

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

 

В подписке «ОбработкаПослеЗаписиВерсийИсторииДанных» выполняется следующий код:

// Так-как по одному объекту, может быть, несколько изменений, группируем их в СоответствиеДанных
СоответствиеДанных = PAPI_ПодпискиНаСобытия.СоответствиеНаОснованииОбработкаПослеЗаписиВерсийИсторииДанных(Источник, ИнформацияОЗаписиВерсий);

// В цикле обрабатываю все измененные объекты
Для Каждого элСоответствия Из СоответствиеДанных Цикл

	// Тут код по формированию сообщений	
	Если БылаОшибка Тогда
		
		// Вот тут происходит запись в регистр сведений PAPI_ОшибкиОбработкиПослеЗаписиВерсий
		РегистрыСведений.PAPI_ОшибкиОбработкиПослеЗаписиВерсий.ЗаписатьОшибкуВРегистр(ТекДанные, РезультатПодготовки);

Так выглядит запись в регистре:

		// Чистка объекта из очереди++
		PAPI_ИсторияДанных.УдалитьИзОбработкиПослеЗаписиВерсий(ТекДанные.Данные, Неопределено);	
		// Чистка объекта из очереди--	
	
		Продолжить;
	Иначе
		// Отправка сообщений и прочие действия
	КонецЕсли;

КонецЦикла;

 

Итоги:

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

Подсистема лежит на GitHub, найти ее там труда не составит. Если вы не используете GitHub, я создал отдельную статью на Infostart и выложил все исходники в нее.

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

На этом статью завершаю, спасибо за терпение.

Всем удачи и интересных проектов.

 

 
 Полезные статьи:

Скачать PAPI на Infostart

1 Информация по HTTP сервисам:

HTTP Сервисы: Путь к своему сервису. Часть 1

HTTP Сервисы: Путь к своему сервису. Часть 2

HTTP Сервисы: Путь к своему сервису. Часть 3

HTTP Сервисы: Путь к своему сервису. Часть 4

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

HTTP сервис – друг или враг?

2 Информация по Истории данных:

Настройка состава "Истории данных"

Версионирование объектов VS История данных

История данных. Изменения в платформе 8.3.24

История данных. Изменения в платформе 8.3.26

Неочевидный баг Истории данных, убивающий rphost

Планы обмена VS История данных

3 Информация по Сервисам интеграции

Три инструмента для сервисов интеграции

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Сервисы интеграции без Шины и интеграции

[Замер] Кто самый быстрый в конфигураторе?

4 Примеры PAPI

[Примеры] Подсистема PAPI. Часть 1

 

http-сервисы PAPI PAPI-tools История данных GitHub Локализация Расширение Алгоритмы СКД xlsx post get 0.9.2.6 Двоичные данные Файл Поток Метод Очистка версий

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159401    872    399    

861

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7766    55    22    

66

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    23431    68    45    

117

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

16800 руб.

06.12.2023    8842    42    5    

73

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8500 руб.

10.11.2023    10414    36    21    

61

SALE! 15%

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 19980 руб.

06.10.2023    15395    35    7    

70

SALE! 35%

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

4800 3120 руб.

14.01.2013    187972    1138    0    

912
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vandalsvq 1587 02.09.24 10:56 Сейчас в теме
Вам определенно стоит рассмотреть возможность интеграции в вашу разработку bsl_console. Например, вы можете "выдрать" ее из моего расширения для изменения обработки "Групповое изменение реквизитов" (для БСП), там уже и пример и подготовленные общие модули с объектами для более удобного использования. А в остальном выглядит прикольно, жду консоль чтобы затестить )))))
dsdred; JohnyDeath; +2 Ответить
2. dsdred 3593 02.09.24 12:09 Сейчас в теме
(1) добрый день. Спасибо, вариант рассмотрю.
Я так понимаю одобрение на использование вашего кода получено?
3. vandalsvq 1587 02.09.24 16:29 Сейчас в теме
Оставьте свое сообщение