gifts2017

Проверка информационной базы 7.7 на некорректные символы

Опубликовал Фёдор Кубанец (tedkuban) в раздел Администрирование - Тестирование и исправление

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

Пришлось мне как-то долго и трудно настраивать перенос данных через XML из 7-й базы в 8-ю. И содержала 7-я база достаточное количество текстовых полей, содержащих спецсимволы, да еще и пользователи вносили новые поля путем копипастинга. А обмен был на разовый, а регулярный, и каждый раз после выгрузки проверять XML 8-й обработкой было очень неудобно.

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

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

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

Наименование Файл Версия Размер
ПроверкаИБнаНекорректныеСимволы 18
.ert 37,50Kb
09.06.15
18
.ert v0.7 37,50Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. serpent Пентюхов С. Г. (serpent) 22.05.15 10:33
я во всех обменах использую следующую функцию...

Функция ЗС(СтрочкаПереданная) 
	
	Строчка       = СокрЛП(СтрочкаПереданная);
	СимволКавычки = Символ(34);
	СимволАмп     = Символ(38);
	
	Если Найти(Строчка, СимволАмп)<>0 или Найти(Строчка, "<")<>0 или Найти(Строчка, ">")<>0
		или Найти(Строчка, СимволКавычки)<>0 или Найти(Строчка, "'")<>0  Тогда
		Строчка = СтрЗаменить(Строчка,СимволАмп,"&");
		Строчка = СтрЗаменить(Строчка,"<","<");
		Строчка = СтрЗаменить(Строчка,">",">");
		Строчка = СтрЗаменить(Строчка,СимволКавычки,""");	
		Строчка = СтрЗаменить(Строчка,">","'");	
	Конецесли;
	
	Возврат Строчка;
КонецФункции
...Показать Скрыть


все строковые реквизиты при выгрузке прогоняю через нее....

ИМХО а вносить изменения в строковые значения в базе 1С я считаю некорректными
2. Фёдор Кубанец (tedkuban) 22.05.15 12:04
(1) serpent, если в строчном поле мусор, это может вылезти где-нибудь еще, не только при обменах. К тому же встречаются люди, которые пользуются штатными обменами вообще без специалистов, и когда у них обмен встает колом, не всегда есть возможность заказать его переписку.
3. Сергей Меняйлов (skteks) 22.05.15 15:31
Здравствуйте, обработка вылетела - написала "Нехватка памяти" - как можно побороться? Может быть сделать проверку не по всем сразу справочникам, а предложить выбор - какие проверяем?
4. Фёдор Кубанец (tedkuban) 22.05.15 20:38
(3) skteks, Ну и база у Вас... Я проверял на 30000 номенклатуры и сотнях тысяч документов... Очень устал, но попробую реализовать отбор, правда, срок не обещаю.
Кстати, Вы с подробным протоколом запускали? Там вроде больше нигде память не расходуется.
5. Фёдор Кубанец (tedkuban) 22.05.15 21:30
Добавлен выбор видов справочников и документов для обработки.
6. Фёдор Кубанец (tedkuban) 09.06.15 00:25
Исправлена ошибка отображения изменяемых реквизитов справочников в протоколе. Для скачавших файл - текст исправления (строка 257 модуля формы):

ТаблицаИсправлений.ВыбратьСтроки();
Пока ТаблицаИсправлений.ПолучитьСтроку() = 1 Цикл
Если спр.НайтиЭлемент(ТаблицаИсправлений.Элемент) = 1 Тогда
//ЗаписьПротокола("Изменение справочника "+ВидСпр+", элемент """+СокрЛП(спр.ТекущийЭлемент())+""", реквизит """+ИмяРеквизита+""", значение """+СтрокаПроверки+"""","!!",1);
ЗаписьПротокола("Изменение справочника "+ВидСпр+", элемент """+СокрЛП(спр.ТекущийЭлемент())+""", реквизит """+ТаблицаИсправлений.Реквизит+""", значение """+ТаблицаИсправлений.Значение+"""","!!",1);
Попытка
спр.УстановитьАтрибут(ТаблицаИсправлений.Реквизит,ТаблицаИсправлений.Значение);