Улучшайзер - как одна внешняя обработка может улучшать другие внешние обработки

Публикация № 1691368 08.07.22

Пользовательские инструменты - Универсальные обработки

Улучшайзер автоматическая установка улучшений модификация улучшение

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

Бывает так, разработал внешнюю обработку, она успешно скачивается и используется большим количеством пользователей в своей работе. Но ты как разработчик не стоишь на месте и создаёшь более новую, продвинутую и функциональную версию этой самой разработки. Но пользователи, почему-то, не спешат скачивать новую версию обработки, а продолжают использовать старую. Возможно, из всех новшеств новой версии пользователям для работы в конкретном случае нужны буквально одно-два улучшения, или банально не хватает бюджета на покупку полной новой версии, т.к. старая тоже была куплена «и ещё не окупилась». Часть пользователей готовы у вас «приобрести» только часть улучшений, причём каждому пользователю нужен свой уникальный набор таких улучшений. Что делать? Как создать для каждого пользователя свою новую версию обработки? Решение есть – создать специальную обработку «Улучшайзер» и сделать для него список всех возможных улучшений. Пользователь, составив для себя уникальный набор улучшений из этого списка, с помощью «Улучшайзера» сможет автоматически модифицировать (улучшать) свою версию обработки до необходимого ему уровня возможностей.

 

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

Доклад написан в поддержку предложенного на «INFOSTART EVENT 2022 Saint Petersburg» мастер-класса «Как сделать свой собственный Улучшайзер, или как одна внешняя обработка может автоматически улучшать другие обработки». Если вам понравится данная публикация, то вы можете проголосовать за мастер-класс по ссылке.

 

Глоссарий (для лучшего понимания дальнейшей информации)
Улучшайзер - внешняя обработка, которая улучшает другие внешние обработки.
Модификация (улучшение, обновление) – это внесение изменений в программный код обработки.
Улучшаемая (изменяемая, модифицируемая) обработка (обработка для улучшения) – внешняя обработка, в которую будут внесены модификации (улучшения) с помощью Улучшайзера.
Файл с улучшениями – это текстовый файл, содержащий инструкции для Улучшайзера и программный код, который будет встроен в улучшаемую обработку.

 

Общие рекомендации и условные обозначения
1. Изначально понимать и закладывать в обработку то, что она может в будущем быть улучшена.
2. Вести порядковый учёт улучшений. В описании технологии данный реквизит будет обозначаться как <ПорядковыйНомерУлучшения>.
3. Обязательно указывать дату улучшения в формате ГГГГММДД (такой формат позволяет сравнивать даты уже установленного и вновь устанавливаемой версий улучшения). В описании технологии данный реквизит будет обозначаться как <ДатаУлучшения>.
4. Все улучшения (программный код на 1С) необходимо делать областями, заключенными в операторные скобки #Область Улучшение<ПорядковыйНомерУлучшения> и #КонецОбласти.
5. Использовать свой собственный идентификатор (желательно для каждой обработки свой), который будет постоянно использоваться в описании всех улучшений обработки. В описании технологии данный идентификатор будет обозначаться как <ВашИндентификатор>.
6. В модуле объекта внешней обработки обязательно должна быть хотя бы одна процедура (хотя бы пустая).
7. В модуле формы внешней обработки обязательно должна быть процедура «ПриСозданииНаСервере» (хотя бы пустая).

 

Описание технологии

Если описывать технологию кратко, то необходимо:
1. При создании любой внешней обработки учитывать вышеописанные рекомендации №1, №6 и №7.
2. Разработать улучшения и поместить их в файл с улучшениями.
3. Создать обработку-улучшайзер, которая:
3.1. Откроет файл улучшаемой обработки и файл с улучшениями.
3.2. Автоматически сравнит уже установленные улучшения в улучшаемой обработке с улучшениями из файла с улучшениями.
3.3. Автоматически обновит (при необходимости) уже  установленные улучшения в улучшаемой обработке и добавит новые ранее не установленные улучшения.
3.4. Сохранит улучшаемую обработку.

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

 

Описание технологии: 1. Файл с улучшениями

Файл с улучшениями – это текстовый файл, содержащий инструкции для Улучшайзера и программный код, который будет встроен в улучшаемую обработку. Лучше всего в его названии указывать порядковый номер улучшения и кратко предназначение улучшения. В качестве расширения файла можно указывать <ВашИндентификатор> - это позволит в Улучшайзере при открытии отражать только ваши файлы, содержащие улучшения.

Общее описание структуры файла с улучшениями (файл условно разделён на 3 блока)

1-й блок: Область кодов улучшений – содержит названия областей, которые будут внесены в улучшаемую обработку
Блок ОТКРЫВАЕТСЯ тегом: ВашИндентификатор_improvement
Блок ЗАКРЫВАЕТСЯ тегом: /ВашИндентификатор _improvement

В самом блоке прописываются названия областей с теми улучшениями, которые содержатся в файле с улучшениями. Названия областей берутся прямо из программного кода. Каждая область начинается с новой строки. Рекомендуется в названии каждой области отражать предназначение улучшения, ваш идентификатор,  порядковый номер улучшения его дату:
#Область <НазваниеОбласти>_<ПорядковыйНомерУлучшения>_<ДатаУлучшения>

Пример 1-го блока блока:

061022_improvement
#Область НовоеПоле_1_20220706
/061022_improvement

 

2-й блок: Область для процедуры «ПриСозданииНаСервере» – содержит программный код, который будет внесён в процедуру ПриСозданииНаСервере улучшаемой обработки
Блок ОТКРЫВАЕТСЯ тегом: ВашИндентификатор _procedure
Блок ЗАКРЫВАЕТСЯ тегом: /ВашИндентификатор _procedure

В данном блоке между открывающим и закрывающим его тегами необходимо на языке 1С прописать названия процедур, которые инициируют улучшения. Данные процедуры должны находиться в тех областях, названия которых были прописаны в 1-м блоке. Рекомендуется название каждой процедуры начинать и заканчивать комментариями, обозначающими начало и конец. В этих комментариях следует отразить ваш идентификатор, порядковый номер улучшения, его дату и служебные операторные скобки НАЧАЛО и КОНЕЦ:
//<ВашИндентификатор>imp_<ПорядковыйНомерУлучшения>_<ДатаУлучшения> НАЧАЛО

//<ВашИндентификатор>imp_<ПорядковыйНомерУлучшения>_<ДатаУлучшения> КОНЕЦ

Пример 2-го блока:

061022_procedure
    
//061022imp_1_20220706 НАЧАЛО
ДобавлениеНовогоПоля();
//061022imp_1_20220706 КОНЕЦ

/061022_procedure


3-й блок: Программный код, который будет именно в таком виде вставлен в улучшаемую обработку.
Данный блок находится в конце файла с улучшениями и начинается с названия первой области после окончания 2-го блока (то есть после тега /ВашИндентификатор _procedure).

Как уже было сказано ранее, все улучшения необходимо делать областями, заключенными в операторные скобки:
#Область <НазваниеОбласти>_<ПорядковыйНомерУлучшения>_<ДатаУлучшения>

//программный код улучшения на языке 1С

#КонецОбласти

Пример 3-го блока:

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

#КонецОбласти

Примечание к 3-му блоку:
Части текста программного кода, находящиеся в кавычках, в файле с улучшениями должны быть в двойных кавычках. Например, если в коде обработки должна быть строка:

нЭлемент.ПутьКДанным = "Объект.Покупки.Контрагент";

то в файле с улучшениями она должна быть в следующем виде:

нЭлемент.ПутьКДанным = ""Объект.Покупки.Контрагент"";

 

Описание технологии: 2. Обработка-улучшайзер

За основу "Улучшайзера" взята и доработана обработка из публикации "Замена текстов модулей внешних обработок" и ряда связанных с ней публикаций. Основная часть технологии доработка выполнена в процедуре V8UnpackЗаменитьТекстМодуляУправляемойФормы. Общий порядок работы данной функции следующий:
1 - Открываем файл модуля формы изменяемой обработки.
2 - Открываем файл с улучшением.
3 - Читаем из файла с улучшением сами улучшения.
4 - Анализируем даты улучшений по сравнению с уже установленными в обработке улучшениями.
5 - Сохраняем улучшения (более новые по дате и те, которых ещё не было в обработке) в новую модифицированную обработку.

Ниже приведён программный код данной функции с комментариями, которые призваны помочь в понимании механизма работы (более подробно со программным кодом "Улучшайзера" вы сможете познакомиться в размещенных к данной публикации бесплатных материалах (также будут приложены к первому комментарию данной публикации) или на мастер-классе «Как сделать свой собственный Улучшайзер, или как одна внешняя обработка может автоматически улучшать другие обработки»):

Функция V8UnpackЗаменитьТекстМодуляУправляемойФормы(Каталог, ИдентификаторФормы, ФлагИзменения = Ложь)
	
	ИмяФайла = ПолучитьПолноеИмяФайла(Каталог, ИдентификаторФормы + ".0");
	
	ФайлМодуля = Новый Файл(ИмяФайла);
	Если ФайлМодуля.Существует() Тогда
		
		ТекстовыйДокумент = Новый ТекстовыйДокумент;
		ТекстовыйДокумент.Вывод = ИспользованиеВывода.Разрешить;
		
		ТекстовыйДокумент.Прочитать(ИмяФайла);
		
		СодержимоеДокумента = ТекстовыйДокумент.ПолучитьТекст();
		
		ОбластьДанных = ОбластьСлужебногоФайла(СодержимоеДокумента, "1"); // весь файл
		ЭлементыОбласти = ЭлементыОбластиСлужебногоФайла(ОбластьДанных);
		
		ЭлементТекстМодуля = ЗначениеЭлементаОбластиСлужебногоФайла(ЭлементыОбласти, 3); // текст модуля управляемой формы
		
		Если ЗначениеЗаполнено(ЭлементТекстМодуля.Текст) Тогда
			//получаем программный код модуля формы
			ТекстМодуля = ЭлементТекстМодуля.Текст; // текст модуля в кавычках 
			ТекстМодуля = Сред(ТекстМодуля, 2, СтрДлина(ТекстМодуля)-2); // "чистый" текст модуля без кавычек
			
			//1 - Открываем файл модуля формы изменяемой обработки
			//2 - Открываем файл с улучшением
			//3 - Читаем из файла с улучшением сами улучшения
			//4 - Анализируем даты улучшений по сравнению с уже установленными в обработке улучшениями
			//5 - Сохраняем улучшения (более новые по дате и те, которых ещё не было в обработке) в новую модифицированную обработку
			
			ТекстовыйДокументУлучшений = Новый ТекстовыйДокумент;
			ТекстовыйДокументУлучшений.Вывод = ИспользованиеВывода.Разрешить;
			ТекстовыйДокументУлучшений.Прочитать(ПутьКФайлуСУлучшениями);
			СодержимоеФайлаСУлучшениями = ТекстовыйДокументУлучшений.ПолучитьТекст();
			
			//пример 1-го блока файла с улучшениями
			//061022_improvement
			//#Область НовоеПоле_1_20220706
			///061022_improvement
			
			//работа с 1-м блоком файла с улучшениями
			НачалоБлокаОписанияУлучшений = СтрНайти(СодержимоеФайлаСУлучшениями,"061022_improvement") + 19;
			КонецБлокаОписанияУлучшений = СтрНайти(СодержимоеФайлаСУлучшениями,"/061022_improvement") - 47;
			БлокДляАнализа = Сред(СодержимоеФайлаСУлучшениями,НачалоБлокаОписанияУлучшений,КонецБлокаОписанияУлучшений);
			
			МассивУлучшений = СтрРазделить(БлокДляАнализа,Символы.ПС);
			
			//надо массив улучшений преобразовать в таблицу значений
			ТабУлучшенийДляУстановки = Новый ТаблицаЗначений;
			ТабУлучшенийДляУстановки.Колонки.Добавить("ИмяУлучшенияПолностью");
			ТабУлучшенийДляУстановки.Колонки.Добавить("ДлинаИмениУлучшенияБезДаты");
			ТабУлучшенийДляУстановки.Колонки.Добавить("ИмяУлучшенияБезДаты");
			ТабУлучшенийДляУстановки.Колонки.Добавить("ДатаУлучшения");//преобразуем в число
			ТабУлучшенийДляУстановки.Колонки.Добавить("НадоОбновить");//Истина - надо обновить, Ложь - пропускаем, Неопределено - ставим в конце, т.к. такое улучшение ещё не установлено
			ТабУлучшенийДляУстановки.Колонки.Добавить("НачалоУстановленногоУлучшения");
			ТабУлучшенийДляУстановки.Колонки.Добавить("ОкончаниеУстановленногоУлучшения");
			Для Ном = 0 По МассивУлучшений.Количество()-1 Цикл
				ТекСтрокаУлучшения = СокрЛП(МассивУлучшений[Ном]);
				НовСтрока = ТабУлучшенийДляУстановки.Добавить();
				НовСтрока.ИмяУлучшенияПолностью = ТекСтрокаУлучшения;
				НовСтрока.ДлинаИмениУлучшенияБезДаты = СтрДлина(ТекСтрокаУлучшения) - 8;
				НовСтрока.ИмяУлучшенияБезДаты = Лев(ТекСтрокаУлучшения,НовСтрока.ДлинаИмениУлучшенияБезДаты - 1);
				НовСтрока.ДатаУлучшения = Число(Прав(ТекСтрокаУлучшения,8));
			КонецЦикла;
			
			//работа со 2-м блоком файла с улучшениями
			НачалоБлокаДляВставки = СтрНайти(СодержимоеФайлаСУлучшениями,"061022_procedure") + 16;
			КонецБлокаДляВставки = СтрНайти(СодержимоеФайлаСУлучшениями,"/061022_procedure") - 17;
			БлокДляПриСозданииНаСервере = Сред(СодержимоеФайлаСУлучшениями,НачалоБлокаДляВставки,КонецБлокаДляВставки - НачалоБлокаДляВставки + 16);
			
			//проверим сколько пар 061022imp будет в БлокДляПриСозданииНаСервере 
			Число061022imp = СтрЧислоВхождений(БлокДляПриСозданииНаСервере,"//061022imp");
			
			Для ТекЧисло061022imp = 1 По Число061022imp Цикл
				НачалоПары = СтрНайти(БлокДляПриСозданииНаСервере,"//061022imp",,,ТекЧисло061022imp);
				КонецПары = СтрНайти(БлокДляПриСозданииНаСервере,"КОНЕЦ",,НачалоПары) + 6;
				ТекстПары = СокрЛП(Сред(БлокДляПриСозданииНаСервере,НачалоПары,КонецПары - НачалоПары));
								
				НачалоУстановленнойПары = СтрНайти(ТекстМодуля,ТекстПары);
				Если НачалоУстановленнойПары > 0 Тогда
					//прямо такая пара уже есть в обработке в процедуре ПриСозданииНаСервере
					//поэтому пропустим её
				Иначе
					//модуль ПриСозданииНаСервере					
					НачалоБлокаПриСозданииНаСервере = СтрНайти(ТекстМодуля ,"Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)");
					КонецБлокаПриСозданииНаСервере = СтрНайти(ТекстМодуля ,"КонецПроцедуры",,НачалоБлокаПриСозданииНаСервере,1) - НачалоБлокаПриСозданииНаСервере + 15;
					БлокПриСозданииНаСервере = Сред(ТекстМодуля,НачалоБлокаПриСозданииНаСервере,КонецБлокаПриСозданииНаСервере);
					
					//тут два варианта:
					//1-й вариант - такой блок уже есть, но у него другая дата - её надо проверит и сравнить
					НадоПерезаписатьБлок = Ложь;
					
					//2-й вариант - такого блока нет и его необходимо встроить в конце модуля ПриСозданииНаСервере
					НадоУстановить = Ложь;
					
					//1-я строка ТекстПары содержит все необходимые для нас данные
					ПерваяСтрокаТекстПары = СтрРазделить(ТекстПары,Символы.ПС).Получить(0);
					
					//после даты будет написано слово НАЧАЛО, но мы точно не знаем, сколько пробелов будет между датой и этим словом
					//поэтому найдём самую последнюю цифру, подразумевая, что это конец даты
					МестоположениеПоследнейЦифры = НайтиМесторасположениеПоследнейЦифры(ПерваяСтрокаТекстПары);
										
					//теперь анализируем дату блока
					Попытка
						ПерваяСтрокаТекстПарыПоДату = Лев(ПерваяСтрокаТекстПары,МестоположениеПоследнейЦифры);
						ДатаУлучшенияИзФайла = Число(Прав(ПерваяСтрокаТекстПарыПоДату, 8));
						ИмяУлучшенияБезДатыИзФайла = Лев(ПерваяСтрокаТекстПары,СтрДлина(ПерваяСтрокаТекстПарыПоДату)-8);
					Исключение
						//скорее всего даты нет в конце первой строки, поэтому добавляем ТекстПары в конце модуля ПриСозданииНаСервере
						НадоУстановить = Истина;
					КонецПопытки;
					
					//здесь анализируем дату уже установленного улучшения в модуле ПриСозданииНаСервере
					Если Не НадоУстановить Тогда
						НачалоУстановленнойПары = СтрНайти(ТекстМодуля,ИмяУлучшенияБезДатыИзФайла);
						Если НачалоУстановленнойПары > 0 Тогда
							Попытка
								ДатаУстановленногоУлучшения = Число(Сред(ТекстМодуля,НачалоУстановленнойПары + СтрДлина(ИмяУлучшенияБезДатыИзФайла), 8));
								
								Если ДатаУлучшенияИзФайла > ДатаУстановленногоУлучшения Тогда
		                             НадоПерезаписатьБлок = Истина;
								КонецЕсли;
							Исключение
								//скорее всего даты нет в конце первой строки, поэтому добавляем ТекстПары в конце модуля ПриСозданииНаСервере
								НадоУстановить = Истина;
							КонецПопытки;
						Иначе
							//такого улучшения в модуле ПриСозданииНаСервере нет, поэтому добавляем ТекстПары в конце модуля ПриСозданииНаСервере
							НадоУстановить = Истина;
						КонецЕсли;
					КонецЕсли;
					
					Если НадоПерезаписатьБлок Тогда
						//необходимо перезаписать блок в модуле ПриСозданииНаСервере
						
						НачалоПары = СтрНайти(ТекстМодуля,"//061022imp",,,ТекЧисло061022imp);
						КонецПары = СтрНайти(ТекстМодуля,"КОНЕЦ",,НачалоПары) + 6;
						БлокКоторыйБудемПерезаписывать = СокрЛП(Сред(ТекстМодуля,НачалоПары,КонецПары - НачалоПары));
						
						БлокКоторымБудемЗаменять = ТекстПары;
										
						ТекстМодуля = СтрЗаменить(ТекстМодуля, БлокКоторыйБудемПерезаписывать, БлокКоторымБудемЗаменять);
					Иначе
						//необходимо добавить ТекстПары в конец модуля ПриСозданииНаСервере
						Если НадоУстановить Тогда					
							БлокПриСозданииНаСервереСУлучшением = СокрЛП(Сред(БлокПриСозданииНаСервере,1,КонецБлокаПриСозданииНаСервере - 15)) + Символы.ПС + Символы.ПС + ТекстПары + Символы.ПС + Символы.ПС + "КонецПроцедуры" + Символы.ПС + Символы.ПС;
							ТекстМодуля = СтрЗаменить(ТекстМодуля, БлокПриСозданииНаСервере, БлокПриСозданииНаСервереСУлучшением);
						КонецЕсли;
					КонецЕсли;
				
				КонецЕсли;
				
				ТекЧисло061022imp = ТекЧисло061022imp + 1;
			КонецЦикла;
			
			//работа с 3-м блоком файла с улучшениями, т.е. работа с областями
			//1-я часть работы с 3-м блоком - замена устаревших областей улучшений на более новые версии
			Для Каждого ТекСтр Из ТабУлучшенийДляУстановки Цикл 
				НачалоУстановленногоУлучшения = СтрНайти(ТекстМодуля,ТекСтр.ИмяУлучшенияБезДаты);
				Если НачалоУстановленногоУлучшения > 0 Тогда
					//теперь анализируем дату улучшения
					ДатаУстановленногоУлучшения = Число(Сред(ТекстМодуля,НачалоУстановленногоУлучшения + ТекСтр.ДлинаИмениУлучшенияБезДаты, 8));
					
					Если ТекСтр.ДатаУлучшения > ДатаУстановленногоУлучшения Тогда
						//новое улучшение новее и надо его установить вместо установленного
						ТекСтр.НадоОбновить = Истина;
						//тут надо узнать начало и конец блока для обновления
						//начало это НачалоУстановленногоУлучшения
						ТекСтр.НачалоУстановленногоУлучшения = НачалоУстановленногоУлучшения;
						//конец это ближайшее после НачалоУстановленногоУлучшения значение #КонецОбласти
						ОкончаниеУстановленногоУлучшения = СтрНайти(ТекстМодуля,"#КонецОбласти",,НачалоУстановленногоУлучшения) + 14;
						БлокДляЗамены = Сред(ТекстМодуля,НачалоУстановленногоУлучшения, ОкончаниеУстановленногоУлучшения - НачалоУстановленногоУлучшения);
						
						//готовим область улучшения из файла для замены в обработке
						НачалоУлучшенияИзФайла = СтрНайти(СодержимоеФайлаСУлучшениями,ТекСтр.ИмяУлучшенияПолностью,,КонецБлокаДляВставки);
						КонецУлучшенияИзФайла = СтрНайти(СодержимоеФайлаСУлучшениями,"#КонецОбласти",,НачалоУлучшенияИзФайла) + 14;
						БлокДляВставки = Сред(СодержимоеФайлаСУлучшениями,НачалоУлучшенияИзФайла,КонецУлучшенияИзФайла - НачалоУлучшенияИзФайла);

						//заменяем в модуле формы устаревшую область улучшения на более новую
						ТекстМодуля = СтрЗаменить(ТекстМодуля, БлокДляЗамены, БлокДляВставки);
						
					Иначе
						//уже установленное улучшение имеет такую же или более позднюю дату
						ТекСтр.НадоОбновить = Ложь;
					КонецЕсли;
										
				КонецЕсли;
			КонецЦикла;
						
			//2-я часть работы с 3-м блоком - таких улучшений в обработке нет, поэтому код просто вставляется в конце модуля формы
			Для Каждого ТекСтр Из ТабУлучшенийДляУстановки Цикл
				Если ТекСтр.НадоОбновить = Неопределено Тогда
					
					НачалоУлучшенияИзФайла = СтрНайти(СодержимоеФайлаСУлучшениями,ТекСтр.ИмяУлучшенияПолностью,,КонецБлокаДляВставки);
					КонецУлучшенияИзФайла = СтрНайти(СодержимоеФайлаСУлучшениями,"#КонецОбласти",,НачалоУлучшенияИзФайла) + 14;
					БлокДляВставкиВКонце = Сред(СодержимоеФайлаСУлучшениями,НачалоУлучшенияИзФайла,КонецУлучшенияИзФайла - НачалоУлучшенияИзФайла);
					ТекстМодуля = ТекстМодуля + Символы.ПС + Символы.ПС + БлокДляВставкиВКонце;

				КонецЕсли;
			КонецЦикла;
			
			// сборка итогового файла обработки со всеми новыми улучшениями
			НовоеСодержимоеДокумента = Лев(СодержимоеДокумента, ЭлементТекстМодуля.Начало - 1) + """" + ТекстМодуля + """" + Сред(СодержимоеДокумента, ЭлементТекстМодуля.Конец);
			
		Иначе
			НовоеСодержимоеДокумента = СодержимоеДокумента;
		КонецЕсли;
		
		Если СодержимоеДокумента <> НовоеСодержимоеДокумента Тогда
			ТекстовыйДокумент.УстановитьТекст(НовоеСодержимоеДокумента);
			ТекстовыйДокумент.Записать(ИмяФайла);
			ФлагИзменения = Истина;
		КонецЕсли;
		
	КонецЕсли;
	
	Возврат Истина;
	
КонецФункции

 

Описание технологии: 3. Практический пример (+порядок работы с приложенными материалами)

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

Примечания к рассматриваемому примеру:
- Работаем (улучшаем) с простой обработкой, у которой есть только одна управляемая форма.
- Улучшаем только процедуры модуля управляемой формы.
- Все улучшения интерфейса реализуем с помощью динамического интерфейса.
- В обработке «24083-2022 - Улучшайзер - обработка для улучшения обработок.epf» есть определённые ограничения: настроен фильтр на открытие файлов с улучшениями с расширением «.061022» и на работу с обработкой, содержащей текст «ОбработкаДляУлучшения». Поэтому, если вы хотите поработать со своими обработками, то вам необходимо соответствующим образом скорректировать файл «Улучшайзера». Вы можете это сделать самостоятельно или поучаствовать в вышеописанном мастер-классе.


Как работать с приложенными к публикации материалами:
1. Скачайте файлы (скаченные файлы желательно поместить в один каталог):
- «24083-2022 - Улучшайзер - обработка для улучшения обработок.epf» - это сам Улучшайзер
- «ОбработкаДляУлучшения.epf» - это тестовая обработка, которая и будет улучшаться.
- «2022-07-06 - улучшение 1.061022» - это улучшение, которое будет установлено на улучшаемую обработку. Вы можете его открыть (и при необходимо изменить) с помощью любого текстового редактора.

 

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

Закройте эту обработку.
Если вы обладаете опытом работы с программным кодом «1С» в «Конфигураторе», то можете открыть в «Конфигураторе» файл «ОбработкаДляУлучшения.epf» и в модуле формы «Форма» увидеть следующий программный код:

 

3. В любой управляемой базе в режиме «Предприятие» откройте файл «24083-2022 - Улучшайзер - обработка для улучшения обработок.epf». В открывшейся обработке:
- в 1-м поле выберите файл «ОбработкаДляУлучшения.epf»
- во 2-м поле выберите файл «2022-07-06 - улучшение 1.061022»
- в 3-м поле выберите каталог, куда будет сохранена улучшенная обработка «ОбработкаДляУлучшения.epf»
- нажмите кнопку «Улучшить обработку»
- если всё прошло штатно, то внизу появится соответствующая надпись

Закройте «Улучшайзер».

 

4. В любой управляемой базе в режиме «Предприятие» откройте файл «ОбработкаДляУлучшения.epf» из того каталога, который вы указали в предыдущем пункте для сохранения улучшенной обработки. Убедитесь, что после улучшения обработка стала выглядеть вот так:

Если вы обладаете опытом работы с программным кодом «1С» в «Конфигураторе», то можете открыть в «Конфигураторе» файл «ОбработкаДляУлучшения.epf» и в модуле формы «Форма» увидеть изменённый программный код:

 

Где эта технология уже используется

Данная технология используется в публикации «Загрузка кассовых чеков из бесплатного мобильного приложения ФНС (налоговой) в документы "Авансовый отчет" и "Расходы предпринимателя"» в части возможности улучшения ранее приобретенных за денежные средства обработок по загрузке кассовых чеков. Представлен каталог улучшений, из которого можно самостоятельно сформировать индивидуальный набор улучшений, так и выбрать сразу одно комбо-улучшение, которое включает в себя все возможные улучшения.
Также технология работы с "Улучшайзером" применяется в публикации «Загрузка всех онлайн-чеков с сервиса проверки чеков ФНС (налоговой) – обработка для получения данных о покупках по чекам онлайн-касс с загрузкой в Авансовый отчет» в части возможности улучшения ранее приобретенных за стартмани обработок по загрузке кассовых чеков.
Общее число скачиваний и установок улучшений на момент данной публикации составляет 8.

 

Разработка и тестирование "Улучшайзера" и "Обработки для улучшения" осуществлялись на типовой конфигурации «1С:Бухгалтерия предприятия, редакция 3.0 (3.0.115.19)» и платформе 1С:Предприятие 8.3 (8.3.19.1229). Работать данная обработка должна практически на любой управляемой конфигурации 1С на любой современной платформе 1С 8, поддерживающей работу с v8unpack и функцией СтрНайти со структурой параметров (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>).

Если у вас получилось скачать приложенные к обработке файлы и поработать в рамках предложенной технологии, то поставьте плюсик - мне будет понятно (и приятно), что данный подход имеет право на существование. Если у вас не получилось применить данную технологию, но публикация понравилось, то ваш плюс будет не менее приятным :-) Как уже было сказано выше, доклад написан в поддержку предложенного на «INFOSTART EVENT 2022 Saint Petersburg» мастер-класса по данной теме, поэтому если вы сочли интересной публикацию, то вы можете проголосовать за неё по ссылке.

Скачать файлы

Наименование Файл Версия Размер
Улучшайзер - обработка для улучшения обработок

.epf 430,61Kb
29
.epf 1.0 430,61Kb 29 Скачать бесплатно
ОбработкаДляУлучшения - это тестовая обработка, которая и будет улучшаться

.epf 6,63Kb
19
.epf 1.0 6,63Kb 19 Скачать бесплатно
Это файл с улучшением, которое будет установлено на улучшаемую обработку

.061022 1,68Kb
19
.061022 1.0 1,68Kb 19 Скачать бесплатно

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. delta 567 08.07.22 10:15 Сейчас в теме
Как и написано в публикации, здесь приложены файлы с описываемым примером.
Прикрепленные файлы:
24083-2022 - Улучшайзер - обработка для улучшения обработок.epf
ОбработкаДляУлучшения.epf
2022-07-06 - улучшение 1.061022
2. Lapitskiy 1056 31.07.22 07:18 Сейчас в теме
раньше такое "плагин" называли.
Оставьте свое сообщение

См. также

Загрузка кассовых чеков ФНС в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная' и 'Поступление (акты, накладные, УПД)' Промо

Кассовые операции Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Бухгалтерский учет Бухгалтерский учет 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 3.0 1С:Бухгалтерия 3.0 1С:Управление нашей фирмой 3.0 1С:Управление нашей фирмой 3.0 Россия Россия Бухгалтерский учет Бухгалтерский учет Налоговый учет Налоговый учет Управленческий учет Управленческий учет Платные (руб) Платные (руб)

В публикации размещены специализированные обработки для загрузки чеков в базах 1С (для локальных баз): '1С:Бухгалтерия предприятия, ред. 3.0', '1С:Управление нашей фирмой 8, ред. 3.0' и '1С:Бухгалтерия государственного учреждения, ред. 2.0'. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная' и 'Поступление (акты, накладные, УПД)'.

9960 руб.

19.08.2020    45803    189    64    

Отладка временных таблиц и типа ТаблицаЗначений

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

Установив 21-й релиз платформы, многие столкнулись с проблемами в отладке таблиц. При попытке просмотреть большую таблицу во всех колонках и строках написано "Расчет значения". Через время появляются нормальные значения. Но пока долистаешь до конца, в начале уже опять "Расчет значения". Вывод таблиц в макет стал невозможным.

01.02.2023    1177    36    biimmap    16    

Быстрый неблокирующий поиск в конфигураторе

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1C v8.2 Россия Россия Бесплатно (free) Бесплатно (free)

Описание решения по быстрому неблокирующему глобальному поиску в текстах конфигурации. Используется Total Commander и небольшая программа Everything, индексирующая поиск по файлам.

29.09.2022    1684    1    Serg2000mr    6    

DaJet Studio: расширенный язык запросов 1С, очереди сообщений и web сервисы Промо

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

DaJet Studio - разработка и управление скриптами, хранимыми процедурами и функциями, написанными на расширенном языке запросов 1С, а также очередями сообщений и web сервисами, основанными на использовании Microsoft SQL Server.

10.11.2020    11526    117    zhichkin    13    

Генератор текста запроса

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

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

20.05.2022    4328    150    echo77    4    

Редактор кода (расширение)

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

Редактор кода для управляемых форм с подсказками и подсветкой синтаксиса.

05.05.2022    5461    313    33lab    12    

Универсальная обработка для работы с присоединенными файлами, или как, например, выгрузить сканы договоров клиентов определенной группы в zip-архив и другие возможности

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

Если вам нужно выгрузить, отправить по почте, или пометить на удаление некоторое количество прикрепленных файлов, обработка "Универсальная обработка для работы с присоединенными файлами" поможет вам это сделать. Так, например, если в вашей организации сканы договоров хранятся, как прикрепленные файлы в справочнике договоров контрагентов, можно достаточно просто выгрузить их в zip-архив и отправить, например, по требованию ФНС.

28.04.2022    3535    268    vld1973    5    

Генерация кода управляемой формы (декомпиляция элементов) Промо

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

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

29.09.2014    127496    10225    ekaruk    150    

Форматирование текста XML

Универсальные обработки Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Форматирование текста XML из одной строки в читабельный многостраничный текст с отступами.

22.03.2022    2784    100    e9504100606    10    

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

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

Инструмент позволяет протестировать движения регистра бухгалтерии (бесплатно, потребуется немного доработать под свою конфигурацию).

05.03.2022    2647    47    e9504100606    0    

Подбор красивого номера обработкой (Теле2)

Универсальные обработки Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

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

01.03.2022    2180    11    e9504100606    0    

Подсистема "Инструменты разработчика" v6.54.1 Промо

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

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

23.09.2007    679602    39952    tormozit    2885    

Создание предопределенных элементов из существующих ссылок

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

Обработка для создания предопределенного элемента из существующей ранее ссылки для удобного обращения к ней в коде.

09.01.2022    3431    87    AtamanovYS    2    

Открывашка общих форм

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

Внешняя обработка на управляемых формах для открытия общих форм конфигурации.

14.12.2021    4135    94    frkbvfnjh    0    

Коллекция универсальных обработок

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

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

02.12.2021    9221    966    user1051565    26    

Я у мамы декоратор...

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Пример реализации общей функциональности для в 1С, похож на Декоратор, но реализован на уровне модулей. Может пригодиться разработчикам. Тестировалось на 1С:Предприятие 8.3 (8.3.19.1264).

15.11.2021    3579    18    markivkin    3    

Экспорт запроса из отладки в консоль запросов

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

Есть множество вариантов, как выгрузить запрос в файл в момент отладки для дальнейшей быстрой загрузки этого файла в консоль запросов (включая временные таблицы). Я просто опишу код, который можно добавить в консоль запросов управляемого приложения, скачанную с сайта ИТС для 8.2 и 8.3. Описание - в самом коде/заголовках процедур. Тестировал на платформе 1С:Предприятие 8.3 (8.3.18.1334). Спасибо за тестирование, объективная критика приветствуется. Спасибо Андрею Габец (прощу прощения, если склонение фамилии сделал неверно). При просмотре его курсов по БСП впервые увидел реализацию выгрузки запроса из отладки. Отдельное спасибо ему за соавторство в написании книги "Профессиональная разработка в системе «1С:Предприятие 8»", по которой я в 2012 начал изучать 1С.

27.09.2021    5444    121    prohorp    15    

OneS Cluster Admin - консоль администрирования кластера серверов 1С (кроссплатформенная, мультиверсионная)

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

OneS Cluster Admin (консоль администрирования кластера серверов 1С) - создана для того, что бы избавиться от недостатков классической консоли администрирования, а также привнести некоторые удобные фичи.

10.09.2021    11030    378    YanSergey    52    

Замена текстов модулей внешних обработок Промо

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

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

1 стартмани

20.05.2013    19548    156    nreisende    21    

Шаблон дополнительной обработки, работающей по расписанию

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

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

02.08.2021    6693    145    Shvapsss    6    

Генерация QR кодов на чистом 1С

Универсальные обработки Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Генерация QR кодов на чистом 1С, работает из коробки с мобильным приложением.

26.04.2021    10833    475    fotov    17    

Активные пользователи Промо

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

Обработка аналогична стандартному окну просмотра списка активных пользователей, плюс добавлены следующие функции: - Отправка сообщения выбранному пользователю; - Отправка сообщения всем пользователям; - Закрытие выбранного соединения; - Закрытие всех соединений с информационной базой (кроме своего).

31.03.2008    44689    4697    coder1cv8    62    

"Откат" данных без транзакций. Расширение для легкого возврата к "исходному" или выбранному состоянию после любых изменений данных

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

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

06.04.2021    8618    94    Алексей Воробьев    12    

Вывод реквизитов объекта

Универсальные обработки Платформа 1С v8.3 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1C v8.2 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

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

23.03.2021    3025    18    Rabin    0    

Работа с кодом и его выполнение в режиме 1С: Предприятие (обычные формы)

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

С помощью этой простой обработки теперь можно выполнять код не только в конфигураторе. Код в режиме Предприятия имеет вид как в конфигураторе.

11.03.2021    6907    202    Nik_Name    8    

Линия жизни Промо

Универсальные обработки О жизни Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Отображает линию жизни за период во времени по декадам. Линия указывает на подъемы и падения общего характера (дом, работа, учеба, социальное, финансовое положение) не касаясь здоровья.

17.05.2009    24353    351    Svetozor    20    

Создание элементов справочников и экземпляров документов

Универсальные обработки Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Обработка, позволяющая генерировать шаблон программного кода для создания элементов справочников и экземпляров документов.

18.02.2021    5069    118    Степной    3    

Графит. Правщик 1С морд от kuzkov.info.2

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Вторая часть записок о разработке программы Графит, векторного правщика для быстрого рисования 1С морд. Обзор сделанного в виде текста описания, гифках и приложенных svg файлах для пощелкать в обозревателе.

02.12.2020    6424    18    Steelvan    6    

Быстрый старт

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1C v8.2 Бесплатно (free) Бесплатно (free)

Создание баз данных 1С, любое количество, из файлов dt и cf в один клик

18.11.2020    5170    51    vova-1c    8    

Консоль HTTP запросов

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

Простая консоль для отправки и тестирования HTTP запросов и WEB сервисов. Есть функция сохранения в файл. 

05.10.2020    10898    530    zarankony    5    

Файл тестов для xUnitFor1C: тестирование проведения документов

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

Тестирование проведения документов. Проверяется, что: а) документ проводится; б) движения документа после перепроведения не изменились.

30.06.2020    10243    54    q_i    16    

Универсальная обработка информационной базы (ОФ)

Универсальные обработки Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Обработка предназначена для подсчета числа объектов информационной базы за выбранный период, а так же обработки объектов произвольным кодом или на основе предопределённых действий. (Обычные формы)

29.06.2020    6671    209    kozusenok    9    

Групповая обработка контейнеров сертификатов ЭЦП

Универсальные обработки Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Управляемые формы Управляемые формы Конфигурации 1cv8 Конфигурации 1cv8 Россия Россия Бесплатно (free) Бесплатно (free)

Внешняя обработка для просмотра списка установленных на локальном компьютере контейнеров сертификатов ЭЦП, с возможностью групповой обработки: копирования, установки сертификатов, отправки на EMAIL или FTP.

25.05.2020    11532    238    independ    12    

Нейроконструктор

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 Бесплатно (free) Бесплатно (free)

Изучайте нейронные сети и экспериментируйте вместе с расширением конфигурации "Нейроконструктор". Навыки программирования не требуются.

20.05.2020    19685    261    user1404129    26    

Загрузка, редактирование и установка цветовых схем (раскраски кода) в Конфигуратор и EDT

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

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

14.05.2020    22616    1037    CyberCerber    48    

Универсальные инструменты 1С

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

Свободно распространяемый набор универсальных обработок и отчетов в виде расширения для разработки и поддержки, которое работает во ВСЕХ видах клиентских приложений и во всех операционных системах, которые поддерживает платформа 1С:Предприятие, кроме мобильных. Консоль запросов - консоль отчетов - консоль кода - редактор объектов базы данных - удаление помеченных объектов - поиск и удаление дублей - редактор констант - консоль заданий - групповая обработка справочников и документов - динамический список - поиск ссылок на объект - регистрация изменений для обмена данными - структура хранения базы - консоль HTTP запросов-консоль вебсервисов- консоль сравнения данных- информация о лицензиях- загрузка из табличного документа-файловый менеджер-все функции- навигатор по конфигурации-конструктор регулярных выражений-Выгрузка загрузка XML с фильтрами

21.01.2020    73797    7332    cprit    217    

Загрузка всех онлайн-чеков с сервиса проверки чеков ФНС (налоговой) – обработка для получения данных о покупках по чекам онлайн-касс с загрузкой в Авансовый отчет

Внешние источники данных Документооборот и делопроизводство Кассовые операции Розничная торговля Логистика, склад и ТМЦ Платформа 1С v8.3 Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Бухгалтерия 3.0 Россия Россия Абонемент ($m) Абонемент ($m)

В продолжение статьи «Свой кусочек информационного пирога по 54-ФЗ – обработка для получения данных о своих покупках по чекам ОФД» (на примере сети магазинов «Лента») (http://infostart.ru/public/647711/). Однако, в предыдущей публикации был показан пример получения данных с сервиса ОФД Такском по одному магазину, в новой публикации – показан пример загрузки всех чеков по всем ОФД непосредственно с сервиса проверки чеков ФНС. Опубликованы обработки, позволяющие работать по двум схемам: вносить данные по каждому чеку, получая данные с ФНС, или загружать чеки в мобильное приложение ФНС, выбирая в последующем для загрузки нужные чеки из списка. К публикации приложен файл расширения для печати Заявления на возмещения затрат подотчетного лица.

10 стартмани

26.07.2017    47339    194    delta    130    

Консоль запросов EX (внешние данные)

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

Работа с внешними данными в консоли запросов (1С 7.7, 8.x, XBase, Excel, ADO).

30.10.2016    14540    86    Cерый    0    

Просмотр SQL-таблиц из 1С. Возможность очистки таблиц

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

Обработка позволяет соединиться с SQL-сервером (SQL-авторизация), получить список баз на сервере, после выбора базы - получить список таблиц. Позволяет вывести таблицу на просмотр, при необходимости очистить таблицу средствами SQL (delete from), просмотреть соответствие имен таблиц объектам конфигурации, в которой запущена база

29.08.2014    27726    510    Abadonna    4