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

12.03.21

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

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

Файлы

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

Наименование Скачано Купить файл
Поиск недопустимых символов в наименовании элементов справочников:
.epf 7,25Kb ver:1.0
136 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

 

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

 

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

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

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

 

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

 

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

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

 

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

 

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Информационная безопасность Поиск данных ServiceDesk, HelpDesk Журналы и реестры данных 1С 8.3 Россия Бухгалтерский учет Бюджетный учет Налоговый учет Управленческий учет Платные (руб)

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

180000 руб.

05.09.2025    5276    2    1    

4

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5. Работает на возможностях платформы, внешние компоненты не используются.

6000 руб.

25.02.2026    5350    17    1    

20

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

Обработки помогут Вам легко и, главное, быстро (в 5 раз и быстрее штатной обработки 1С), выполнить поиск дублирующих данных в Ваших базах 1С на платформах 8.1-8.3. Это позволит уменьшить объем лишней информации в справочниках и документах, планах видов характеристик и др., упростит работу с данными пользователям. А так же можно, одним нажатием, узнать в каких ссылочных объектах есть вообще дубли! Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! (Обновление от 27.11.2023, версия 6.12)

13420 руб.

14.05.2012    172207    360    253    

589

Файловый обмен (TXT, XML, DBF), FTP Поиск данных Инструменты администратора БД Корректировка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная обработка позволит Вам легко и просто, а главное - быстро, выполнить сравнение данных между ЛЮБЫМИ базами (и РИБ, по правилам конвертаций) по контрольным суммам выбранных объектов баз 1С, работающих на платформах 8.3 и выше. Удобный и понятный интерфейс в виде "мастера". Высокая скорость сравнения достигается за счет специального алгоритма расчета контрольной суммы объекта/записи и сравнения по данным суммам объектов 2х баз через файл. Имеется возможность выбора реквизитов, по которым система будет сравнивать объекты. Сравнение количества записей в движениях документов, возможность сравнивать данные по правилам конвертации и не только! Выбор объектов конфигурации для КАЖДОГО узла в отдельности с индивидуальным отбором для каждого объекта конфигурации, работа с FTP, сохранение или загрузка настроек, сохранение или загрузка результата сравнения, регистрация на обмен объекта и его движений. (Обновление от 12.11.2024, версия 2.2-2.5)

24400 руб.

27.10.2017    47139    32    15    

50

Учетные задачи Поиск данных Подбор и обработка объектов 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

1.обработка позволяет автоматически вычислить дубли и привести их к единому наименованию во всех документах. 2.так же есть возможность в документах поменять счета учета для номенклатуры. Например разные бухгалтера оформляют поступление одного и того же товара - один занес на 10.01, второй на 41.01 в результате в ОСВ у нас минусы. В обработке есть возможность наглядно увидеть такие ошибки и тут же их поправить не бегая по всем документам. Достаточно поставить галочку у номенклатуры и указать счет учета который надо найти и счет учета на который надо его заменить. Обработка сама вычислит документы в которых номенклатура с галочкой была задействована и заменит счета учета. Что бы не было излишнего изменения документов, в обработке указываются типы документов, где операция замены счета разрешена (например Поступление ТМЦ, Реализация, Отчет о розничных продажах, возврат покупателю итд.)

7320 руб.

05.06.2026    631    2    0    

4

Поиск данных Бизнес-аналитик Бухгалтер Пользователь Руководитель проекта Стажер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Беларусь Россия Казахстан Платные (руб)

Встройте искусственный интеллект прямо в вашу 1С за один вечер. «Цифровой сотрудник» - это чат с нейросетью внутри привычного интерфейса 1С, который умеет отвечать не «в общем», а по вашим данным: обучите его на регламентах, инструкциях и прайсах компании, подключите к данным информационной базы - и получите ассистента, который консультирует бухгалтера по учёту, отвечает менеджеру по прайсу и достаёт цифры из базы по запросу на обычном русском языке. Поддерживаются OpenAI, DeepSeek, Qwen и локальные LLM - включая вариант, когда данные вообще не покидают ваш контур.

3660 руб.

03.08.2026    369    1    0    

2

Поиск данных 1С:Управление торговлей 11 Россия Платные (руб)

Возможность по ИНН контрагента быстро найти Партнера с которым связан контрагент.

7015 руб.

11.09.2025    1126    1    0    

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

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

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


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

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


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