Поиск недопустимых символов в наименовании элементов справочников

Публикация № 1401304 12.03.21

Задачи пользователя - Поиск данных

обработка загрузка импорт xml недопустимый символ

Если вы столкнулись с ошибкой "Текст XML содержит недопустимый символ в позиции...", то эта публикация для вас.

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

 

Текст XML содержит недопустимый символ в позиции 0

 

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

Для облегчения поиска была написана эта обработка.

На форме обработки нужно выбрать вид справочника:

 

Например, справочник Номенклатура

 

И нажать кнопку "Найти недопустимые символы".

В списке будут выведены коды элементов справочника, содержащих недопустимые символы:

 

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

 

И сообщение о том, сколько всего элементов было найдено.

Тестировалось на платформе 8.3.17.1549.

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

Наименование Файл Версия Размер
Поиск недопустимых символов в наименовании элементов справочников:

.epf 7,25Kb
84
.epf 1.0 7,25Kb 84 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. RocKeR_13 1200 12.03.21 10:35 Сейчас в теме
Ну да, а можно в групповой обработке выполнить простенький алгоритм с опцией "Объект записывается: в коде алгоритма"

ТекНаименование = Объект.Наименование;
НедопустимыйСимвол = НайтиНедопустимыеСимволыXML(ТекНаименование);
Пока НедопустимыйСимвол > 0 Цикл
	ЛеваяЧасть = ?(НедопустимыйСимвол = 1, "", Лев(ТекНаименование, НедопустимыйСимвол-1));
	ПраваяЧасть = ?(НедопустимыйСимвол = СтрДлина(ТекНаименование), "", Сред(ТекНаименование, НедопустимыйСимвол+1)); 
	ТекНаименование = ЛеваяЧасть+"_"+ПраваяЧасть;
	НедопустимыйСимвол = НайтиНедопустимыеСимволыXML(ТекНаименование);
КонецЦикла;
Если Объект.Наименование <> ТекНаименование Тогда
	Объект.Наименование = ТекНаименование;
	Объект.Записать();
КонецЕсли;
Показать
2. Nicholas 872 12.03.21 10:58 Сейчас в теме
(1) Тоже хороший вариант. Спасибо!
3. RocKeR_13 1200 12.03.21 10:59 Сейчас в теме
4. MVK80 13.03.21 09:30 Сейчас в теме
(0), в БСП всё уже давно есть. Просто выбирайте, что вам нужно:
ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыXML(Текст, СимволЗамены)
Или
ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволыXML(Текст)
ZhiharevDmitriy; Apolonov-Erik; Alex17; triviumfan; +4 Ответить
5. Nicholas 872 15.03.21 08:22 Сейчас в теме
(4) Да, тоже хороший вариант для исправления, но прежде чем исправлять - нужно сначала найти.
6. MVK80 15.03.21 08:48 Сейчас в теме
(5), ну по хорошему надо не допускать их появление :), то есть проверять/исправлять этими процедурами при загрузке извне и только потом записывать. Ну и бывают невидимые недопустимые символы. Что даст поиск визуально в которой не видно в чем проблема?
Ну в целом, если вам прям так нужен поиск без исправления, то взять за основу одну из процедур скопировать и убрать исправление и оставить только поиск это быстро. Ну допустим, вам прям надо взглянуть, какие элементы выдают ошибки для анализа какого-то. Но в вашей обработке еще напрашивается кнопочка удалить и/или заменить недопустимые символы :). Или еще одна кнопочка - это показать коды недопустимых символов, чтобы понять что это прилетело, если визуально не видно.
triviumfan; +1 Ответить
7. Nicholas 872 15.03.21 08:53 Сейчас в теме
(6) Пожалуй, даже сделаю, немного погодя, кнопочки: "удалить", "заменить", "показать коды". Спасибо за идею!
8. GetNight 46 30.04.21 14:15 Сейчас в теме
Я бы сделал так:

Функция XMLУдалитьНедопустимыеСимволы(СтрокаXML, СимволЗамены = "") Экспорт
#Если НЕ ВебКлиент Тогда
	Пока Истина Цикл
		Позиция = НайтиНедопустимыеСимволыXML(СтрокаXML);
		Если Позиция Тогда
			Символ = Сред(СтрокаXML, Позиция, 1);
			СтрокаXML = СтрЗаменить(СтрокаXML, Символ, СимволЗамены);
		Иначе
			Возврат СтрокаXML
		КонецЕсли
	КонецЦикла
#КонецЕсли
КонецФункции
Показать


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

П.С. с удивлением обнаружил в УПП функцию ОбщегоНазначенияКлиентСервер.УдалитьНедопустимыеСимволыXML, она поражает своей атмосферностью...
посмотреть


позаимствовал оттуда #Если НЕ ВебКлиент (я так понимаю, добавили его не просто так ;)
и назвал свою чуть иначе, чтобы не вылетало с ошибкой
Оставьте свое сообщение

См. также

Пример многопоточной обработки (БСП)

Обработка документов HighLoad оптимизация Обработка справочников БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка-шаблон, на основе которой можно делать свои многопоточные обработки данных для конфигураций на БСП.

13.02.2023    3647    3    echo77    8    

67

Архив элементов

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

В архив помещаются неактуальные элементы справочников. Тем самым появляется возможность выводить в справочнике для просмотра и выбора только актуальные в данный момент данные. Работает для всех справочников.

4 стартмани

07.11.2022    5886    31    sapervodichka    61    

92

Заполнение контрагентов по ИНН для УТ 10.3

Обработка справочников WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 10 Россия Абонемент ($m)

Заполнение контрагентов по ИНН (1С: Управление торговлей 10.3).

6 стартмани

17.05.2022    5710    35    kostyan7    20    

1

Оптимизация размера изображений из присоединенных файлов УТ 11.4

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

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

5 стартмани

10.07.2020    16367    28    Neti    5    

15

Поиск пересекающихся ссылок на комбинации объектов с ограничением области поиска по метаданным

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

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

1 стартмани

12.03.2020    15343    21    sapervodichka    18    

87

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Подсистема для выгрузки, быстрого поиска и анализа журнала регистрации 1С в Elasticsearch

Журнал регистрации Поиск данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Elasticsearch - это opensource решение для очень быстрого поиска данных в больших массивах информации. Использование этого решения позволит решить проблемы с поиском и анализом больших объемов информации журнала регистрации. Протестировано на платформах начиная с 8.3.10.2580.

5 стартмани

15.05.2019    20256    35    Nikolo17    14    

40

TextRadar - компонента нечеткого поиска

Разработка внешних компонент Поиск данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Компонента предназначена для организации поиска в текстовых данных, решения задач сопоставления списков и т.д. Вычисляемый коэффициент релевантности (похожести) - нормированный, лежит в диапазоне между 0 и 1. В случае необходимости (опционально) формируются данные для отображения найденных фрагментов. Расчет коэффициентов происходит в многопоточном режиме (на уровне компоненты). Для 32 и 64 разрядных систем. Исходный код компоненты на языке C# может быть предоставлен по запросу.

1 стартмани

19.09.2018    30925    40    TSSV    19    

19

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Встраиваемая подсистема "Универсальные шаблоны объектов"

Обработка документов Обработка справочников Платформа 1С v8.3 Сложные периодические расчеты Управляемые формы 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

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

1 стартмани

17.05.2018    27280    35    Skin123    14    

49

Автоматическое заполнение графиков в ЗУП 3.1

Зарплата Учет рабочего времени Обработка справочников Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

Данная разработка будет актуальна для организаций с большим количеством графиков (несколько десятков/сотен).

1 стартмани

05.05.2018    40048    24    notserioussam    2    

8

Восстановление предопределенных элементов справочника средствами платформы (переинициализацией)

Обработка справочников Корректировка данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

28.03.2018    24599    127    Dipod    13    

21

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

2 в 1: Проверить действительность паспорта / Получить ИНН по паспорту

Обработка справочников WEB-интеграция Кадровый учет Платформа 1С v8.3 Управляемые формы 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

Представляю вашему вниманию внешнюю обработку заполнения элемента справочника "Физические лица". Обработка выполнена с использованием API (для работы необходим доступ в интернет), содержит полностью открытый код и 2 команды: Проверка документа, удостоверяющего личность, в списке недействительных паспортов и Заполнение ИНН по паспортным данным.

1 стартмани

27.02.2018    35255    206    VladimirElohov    41    

48

[РАСШИРЕНИЕ] Заполнение данных контрагента по ИНН в 1С: Бухгалтерия и 1С: УНФ

Обработка справочников Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Абонемент ($m)

Бесплатное заполнение реквизитов контрагентов в 1С: Бухгалтерия, 1С: УНФ на базе сервиса dadata.ru. Добавляет кнопку заполнения по ИНН в карточку нового контрагента, не требует подписки на ИТС.

1 стартмани

09.01.2018    64385    344    Anton64    95    

50

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Поиск и восстановление битых ссылок (обычная и управляемая форма) 8.2-8.3

Универсальные обработки Поиск данных Корректировка данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка для поиска и восстановления битых ссылок (Объект не найден). Адаптирована для конфигураций на обычных и управляемых формах 8.2 - 8.3

1 стартмани

08.04.2017    53439    752    Xershi    66    

39

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Универсальный поиск объектов по глобальному уникальному идентификатору (ГУИД, GUID)

Универсальные обработки Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Универсальная обработка поиска объектов информационной базы по глобальному уникальному идентификатору (ГУИД, GUID) или по его части.

1 стартмани

06.09.2016    46524    126    Dzenn    9    

11

Шифрование и расшифровка строковых полей справочников методом Виженера (с улучшениями)

Защита ПО и шифрование Обработка справочников Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка по шифрованию и расшифровке строковых полей справочников модифицированным методом Виженера - реализация без внешних компонент, без com-объектов, чистый 1С.

1 стартмани

27.04.2016    47465    52    NikitaXa    22    

64

Номенклатура (Расширенная форма списка) и Корзина [Расширение]

Рабочее место Обработка справочников Логистика, склад и ТМЦ Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Красивая, удобная и эргономичная форма списка номенклатуры. В общем списке номенклатуры отображаются и остатки, и цены. А еще есть возможность быстро создать документы по выбранным позициям через корзину.

5 стартмани

29.02.2016    51412    132    mrXoxot    69    

86

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Контрагенты (расширенная форма списка) [Расширение]

Обработка справочников Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

Красивая и удобная форма списка контрагентов. Добавлено быстрое создание документов из списка и оперативная информация по контрагенту.

5 стартмани

22.12.2015    40509    97    mrXoxot    22    

63

Сброс неверной нумерации объектов

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

Кратко о выправлении нумерации объектов

1 стартмани

07.11.2015    145836    1173    magobato    46    

103

Прыг-Скок...или из MS EXCEL в 1С (8.2) (открытый код)

Обработка документов Обработка справочников Загрузка и выгрузка в Excel Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальная загрузка данных из Microsoft Office Excel. Автоматическая загрузка из любых по форме документов с очень удобным редактором. Почти готовый шаблон для любой конфигурации. Не требует регистрации-бесплатно.

1 стартмани

16.09.2015    82782    374    Tatitutu    50    

199

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Автоматическая загрузка классификатора адресов КЛАДР

Обработка справочников WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 10 Россия Абонемент ($m)

Обработка автоматически загружает классификатор с сайта www.gnivc.ru, распаковывает и загружает все регионы в информационную базу.

1 стартмани

02.09.2015    33577    44    kolos    1    

9

Подсистема автоматического удаления дублей в справочниках (управляемые формы, любая конфигурация)

Чистка данных Обработка справочников Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

31.07.2015    46074    110    primat    12    

19

Конфигурация ФИАС для 1С 8.1 и 8.2

Обработка справочников Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Конфигурации, которые позволяют интегрировать ФИАС (Федеральная информационная адресная система) в любую конфигурацию 1С 8.1 и 1С 8.2, работающую на НЕ управляемых формах.

1 стартмани

30.07.2015    79263    751    dgonson    56    

44

Правильные аналоги номенклатуры (кроссы запчастей) для 1С / Управляемые формы

Обработка справочников Оптовая торговля Логистика, склад и ТМЦ Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Абонемент ($m)

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

5 стартмани

29.07.2015    57609    9    taurus__    25    

12

Дубли контрагентов. Жесткий запрет на запись дублей [Расширение]

Обработка справочников Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Абонемент ($m)

В типовой конфигурации БП3 можно записывать одинаковых контрагентов, достаточно только нажать "ОК". Исправим эту несправедливость. Запретим бухгалтерам плодить дубли контрагентов. Для этого используем возможность платформы 8.3.6 - Расширения.

1 стартмани

15.05.2015    52197    142    mrXoxot    56    

64