Посимвольное сравнение текстов на встроенном языке 1С

09.02.15

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

Иногда бывает нужно определить, чем конкретно отличаются два текста. Платформа умеет сравнивать тексты с точностью до строки, однако если это два текста сохранённых в разных версиях MS Word как HTML, такое сравнение оказывается бесполезным. Требуется сравнение с точностью до символа.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Тест сравнение версий
.epf 7,54Kb ver:1.0.0.1
11
11 Скачать (1 SM) Купить за 1 850 руб.

Данный функционал реализован в конфигурации 1С:Переводчик начиная с версии 2.0.

Бесплатно скачать её можно на сайте 1C:Developer Network

В прилагаемой к статье обработке приводится пример использования этой возможности.

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

ДобавленоМассив = Новый Массив;
ИзмененоМассив = Новый Массив;
УдаленоМассив = Новый Массив;

TextComparisonClientServer.CompareTextsByCharacters(ИсходныйТекст, ИзмененныйТекст, 
	ДобавленоМассив, ИзмененоМассив, УдаленоМассив); 

Сравнение текстов сравнение версий посимвольное сравнение работа с текстами строковые функции

См. также

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

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    171738    960    403    

924

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

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

8400 руб.

20.08.2024    14293    108    46    

108

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

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

9360 руб.

17.05.2024    27260    96    48    

137

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

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

22200 руб.

06.10.2023    17264    43    15    

75

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

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

15000 руб.

10.11.2023    11888    45    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191172    1152    0    

920

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1114    2    0    

5

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    104115    244    100    

307
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Serj1C 483 16.02.17 14:40 Сейчас в теме
Спасибо вам, Тимофей, направили меня в нужное русло при решении аналогичной проблемы!

PS: Как же не удобно то ковыряться в англоязычной конфигурации!
2. user929348 25.09.20 22:16 Сейчас в теме
Добрый день, данный текст кода ругается на метод eval. Какой процедурой можно заменить кусок кода?

&НаКлиенте
Процедура ВспомогательныйДокументСформирован(Элемент)
	
	Если Не ПустаяСтрока(ИсходныйТекст) И Не ПустаяСтрока(Вспомогательный)
		 И Элементы.Вспомогательный.Документ.readyState = "complete" Тогда
		Результат = "<html><head>"
			+ Элементы.Вспомогательный.Документ.parentWindow.eval(
				"getStyles(""" + Тип + """)")
			+ "</head><body>" 
			+ Элементы.Вспомогательный.Документ.parentWindow.eval(
				"highlightCharacters(textToHtml(""" 
				+ СтрЗаменить(СтрЗаменить(ИзмененныйТекст, Символы.ПС, "\n"), """", "\""")
				+ """, """ + Тип + """), parseChangeHighlightData("
			    + "'" 
				+ Добавились + "', '" 
				+ Изменились + "', '" 
				+ Удалены + "', '"
			    + TextComparisonClientServer.IntervalSeparator() + "', '" 
				+ TextComparisonClientServer.IntervalItemsSeparator() + "', '" 
				+ TextComparisonClientServer.ItemCountSeparator() + "'))")
			+ "</body>";
	КонецЕсли;
	
	Элементы.Вспомогательный.Видимость = Ложь;
	
КонецПроцедуры
Показать
3. 9269477065 27 30.09.20 10:01 Сейчас в теме
&НаКлиенте
Процедура ВспомогательныйДокументСформирован(Элемент)
	
	Если Не ПустаяСтрока(ИсходныйТекст) И Не ПустаяСтрока(Вспомогательный)
		И Элементы.Вспомогательный.Документ.readyState = "complete" Тогда
		
		ОбъектHTML = Элементы.Вспомогательный.Document.DefaultView;
		
		Text = """" + СтрЗаменить(СтрЗаменить(ИзмененныйТекст, Символы.ПС, "\n"), """", "\""")
		+ """";
		ТипText =  Тип;	
		TextHtml = ОбъектHTML.textToHtml(Text, ТипText);
		
		HighlightData = ОбъектHTML.parseChangeHighlightData(
		Добавились,
		Изменились,
		Удалены,
		TextComparisonClientServer.IntervalSeparator(),
		TextComparisonClientServer.IntervalItemsSeparator(),
		TextComparisonClientServer.ItemCountSeparator());
		
		Результат = "<html><head>"
		+ ОбъектHTML.getStyles(""""+Тип +"""")
		+ "</head><body>" 
		+ ОбъектHTML.highlightCharacters(TextHtml, HighlightData)
		+ "</body>";
	КонецЕсли;
	
КонецПроцедуры
Показать
boogie; user929348; +2 Ответить
4. Smoking1C 7 29.12.21 11:18 Сейчас в теме
Не работает. Не то что мне нужно. Бесполезно. Верните пожалуйста мани!!!
Оставьте свое сообщение