Замена любых символов в любом справочнике

13.01.10

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

Бывают огромные справочники с названиями, в которых есть по два, а то и больше пробелов подряд, табуляции, кавычки ненужные... Особенно это неприятно, когда справочник в 100 000 наименований загружался из другой программы учета. Обработка позволяет в любом справочнике заменить любые символы по любому из реквизитов типа "Строка".

Файлы

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

Наименование Скачано Купить файл
Замена лишних символов.epf
.epf 9,54Kb
425 1 850 руб. Купить

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

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

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

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

И, народ, если качаем, не забываем плюсовать (минусовать). Все-таки дебют.

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

См. также

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

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    40476    124    152    

83

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

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

3600 руб.

10.02.2017    117143    703    176    

744

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

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

5000 руб.

13.07.2015    53353    183    29    

135

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

Вы наконец разобрались с закрытием месяцев и пора начать контролировать сроки оплаты поставщикам и задолженности клиентов, но в базе расчеты не идут из-за развернутого сальдо? Не беда, есть решение!

12000 руб.

02.11.2020    8817    6    3    

9

Ценообразование, анализ цен Корректировка данных 1С v8.3 1С:Управление торговлей 11 Платные (руб)

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

5000 руб.

07.05.2025    1101    1    0    

2

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

Обработка для группового редактирования реквизитов номенклатуры в 1С для УТ 11 / КА 2. Позволяет редактировать реквизиты (как основные, так и дополнительные реквизиты и сведения) непосредственно в таблице, устанавливать новые значения реквизитов на выбранную номенклатуру, а также загружать новые значения из Excel. Предусмотрена возможность добавления фото к товарам перетаскиванием файла из проводника на строку с товаром (drag'n'drop)

4200 руб.

16.11.2020    18875    13    6    

12

Печатные формы Корректировка данных Учет документов 1С v8.3 1C:Бухгалтерия 1С:Управление нашей фирмой 3.0

Данная обработка позволяет работать со справками об оплате медицинских услуг в любой конфигурации 1С 8.3 Решение выполнено в виде внешней обработки, поэтому будет работать так же на базовых версиях конфигураций 1С, где нет возможности добавить расширение.

3600 руб.

28.01.2025    1576    0    0    

3

Корректировка данных Бухгалтер 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Налоговый учет Налог на прибыль Платные (руб)

Обработка служит для: выравнивания бухгалтерского и налогового учета на определенную дату по выбранным счетам; закрытия остатков по выбранным счетам; обнуления налогового учета (ПР, ВР также будут обнулены)

2880 руб.

05.05.2024    1856    16    0    

12
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dobraleks 136 25.12.09 22:11 Сейчас в теме
а для 77 есть что-то похожее??
2. CheBurator 3232 26.12.09 01:23 Сейчас в теме
(1) по уму д.б. настраиваемя обработка для удаления из любых строковых реквизитов определенного настраиваемого набора "символов", как-то : табцляции, переводов строк и прочего - что напрочь ломает выгрузку/загрузку в XML и прчие неприятности делает...
Designer1C; a-novoselov; dobraleks; +3 Ответить
22. a-novoselov 1160 30.12.09 16:58 Сейчас в теме
(2) (19) (20) Реализовал все (или почти все) ваши предложения. Спасибо.
23. alexk-is 6551 30.12.09 17:36 Сейчас в теме
(22) Ну, если все так, то обрати еще внимание на оформление. Где картинка для анонса? Проверь, обработка точно будет под 8.0 и 8.2. Как это заявлено?

Вот примеры публикаций с неплохим оформлением
http://infostart.ru/public/62722/
http://infostart.ru/public/16630/
26. a-novoselov 1160 03.01.10 07:18 Сейчас в теме
(23) Да какраз после н.г. оформить хотел... на 8.0 работает, 8.2 дистрибутива пока нет, но должна работать. Насколько я понял в 1С работа с метаданными со времен 7.7 почти не изменилась.
27. alexk-is 6551 04.01.10 17:10 Сейчас в теме
4. a-novoselov 1160 26.12.09 08:25 Сейчас в теме
(1) Для 77 реализовать такой алгоритм не получится, т.к. в ней нет оператора Выполнить()

(2) Если осуществлялся переход с другой системы учета, которая уже не используется, то обмен не нужен. При распределенной базе данных, поменяв данные на главном узле, изменения расползутся по всем базам.
dobraleks; +1 Ответить
6. artbear 1583 26.12.09 08:29 Сейчас в теме
(4) "Для 77 реализовать такой алгоритм не получится, т.к. в ней нет оператора Выполнить()"
вот с чего ты это взял? там есть штатный метод Шаблон, + в ВК 1С++ есть мощнейшний объект ВыполняемыйМодуль.
28. Збянтэжаны Саўка 245 11.01.10 11:51 Сейчас в теме
(4) "Для 77 реализовать такой алгоритм не получится, т.к. в ней нет оператора Выполнить()"
А зачем через Выполнить()?
Можно выбросить присвоение ТекстКода и писать сразу код.

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

СтароеЗначениеРеквизита = Выборка[Реквизит]; //+
ЗначениеРеквизита = Выборка[Реквизит];
...

Объект[Реквизит] = ЗначениеРеквизита;
Если Объект.Модифицированность() Тогда //+
Счетчик = Счетчик + 1;
Попытка
Объект.Записать();
// Показать что именно изменили
Сообщить(Объект.Код + ": Изменен реквизит " + Реквизит + " с <" + СтароеЗначениеРеквизита + "> на <" + ЗначениеРеквизита + ">");
Исключение
Сообщить("Не могу записать элемент " + Объект.Код + " по причине: " + ОписаниеОшибки());
Счетчик = Счетчик - 1;
КонецПопытки;
КонецЕсли;

И еще в процедуре СправочникПриИзменении
маленькое удобство добавить, сразу же и присвоить первый элемент реквизиту, на одно движение меньше:
...
ЭлементыФормы.Реквизит.СписокВыбора = СписокВыбора;
ЭлементыФормы.Реквизит.Значение = СписокВыбора[0]; //+


Designer1C; a-novoselov; +2 Ответить
30. a-novoselov 1160 13.01.10 07:21 Сейчас в теме
29. dolter 120 11.01.10 12:14 Сейчас в теме
(4) у 7.7 нет Выполнить(), но есть Шаблон() :-)
5. artbear 1583 26.12.09 08:28 Сейчас в теме
(3+) 4. Нафига нужен код
Ссылка = Справочники[Справочник].НайтиПоКоду(1);
он все равно подходит не для всех справочников :(
юзай
Ссылка = Справочники[Справочник].ПустаяСсылка();
Designer1C; a-novoselov; +2 Ответить
3. artbear 1583 26.12.09 08:23 Сейчас в теме
Есть претензии к реализации :(
1. Нафига нужна переменная Отказ?
представь, что у тебя глюк/отказ на первом же элементе?
у тебя в транзакции сначала обработаются все элементы, а потом все равно будет отмена этой транзакции.
После Отказ = Истина сделай Прервать
2. не видно, по какой причине элемент может быть не записан, т.е. по какой причине выдано исключение :(
3. у тебя будут обрабатываться/изменяться все элементы, независимо от наличия у них нужного сочетания пробелов.
Совсем не гуд.
Ведь в запросе можно сразу выбрать только те элементы, у которых в выбранном поле есть более 2-х пробелов.

В общем, до исправления вышеперечисленного минусую.
a-novoselov; +1 Ответить
8. a-novoselov 1160 26.12.09 08:37 Сейчас в теме
(3) (5) (7) Спасибо большое! все поправил :)

(6) я имел ввиду именно такой алгоритм. А вообще, я всех тонкостей 77 не знаю, т.к. 1С начинал изучать сразу с 8.1
Поручик; artbear; +2 Ответить
9. artbear 1583 26.12.09 08:49 Сейчас в теме
(8) зря ты исправил порядок замены пробелов.
Раньше, когда сначала 3 пробела менялись на один, а потом 2, было правильно.
А сейчас наоборот и это неверно.
Например, стоит 3 пробела, у тебя сначала заменятся 2 пробела, и останется также 2 пробела, которые уже не будут заменены :(
11. artbear 1583 26.12.09 08:59 Сейчас в теме
В (9) был неправ :)
забыл, что ты исправляешь пробелы от 2 до 4 включительно, большее количество пробелов не будет исправлено, хотя такое их количество большая редкость, конечно.
наверное, это также не гуд :)
10. artbear 1583 26.12.09 08:54 Сейчас в теме
(8) 1. Я бы код
	|Объект = Выборка.Ссылка.ПолучитьОбъект();
|Объект.[Реквизит] = СтрЗаменить(Объект.[Реквизит], ""  "", "" "");
|Объект.[Реквизит] = СтрЗаменить(Объект.[Реквизит], ""  "", "" ""); // Если есть тройные или четверные пробелы	
|Сообщить(""Заменили ""+Объект.[Реквизит]);

заменил бы на немного другой, без обращения к реквизиту через объект, а через спец.переменную значениеРеквизита, которая заполняется из Выборка.Реквизит, а перед записью
Объект.[Реквизит] = значениеРеквизита;

2. сообщение о замене совсем не актуально и наверняка не очень нужно.
ИМХО удобнее просто вывести количество заменяемых элементов :)
7. artbear 1583 26.12.09 08:34 Сейчас в теме
(3+) 5. Также я посоветовал бы код
СписокВыбора.Добавить(МетаСправочник.Имя, МетаСправочник.Синоним);

исправить на следующий
СписокВыбора.Добавить(МетаСправочник.Имя, СокрЛП(МетаСправочник.Синоним) +"( "+МетаСправочник.Имя+" )");

Т.к. в некоторых конфигурациях синоним не всегда "совпадает" с именем, и это далеко не редкость :(
Будет чуть удобнее :)
12. MRAK 730 26.12.09 10:40 Сейчас в теме
На ИТС есть Универсальный поиск и обработка объектов. в ней в режиме 1С-Предприятие прикручиваешь свой код, который пишется за 5 минут (СтрЗаменить) - и вуаля!!!
Щасте!!!!
13. alexk-is 6551 26.12.09 20:15 Сейчас в теме
(12) Да, все правильно. Только не все могут написать код. И на портале не только программисты...
dobraleks; +1 Ответить
14. artbear 1583 28.12.09 08:06 Сейчас в теме
15. a-novoselov 1160 28.12.09 08:11 Сейчас в теме
16. artbear 1583 29.12.09 19:25 Сейчас в теме
17. werter 30.12.09 04:21 Сейчас в теме
Таб=СоздатьОбъект("ТаблицаЗначений");
Таб.НоваяКолонка("Номенклатура","Справочник.Номенклатура");
Таб.НоваяКолонка("НовоеНазвание",2,200);
Тов=СоздатьОбъект("Справочник.Номенклатура");
Тов.ВыбратьЭлементы();
Пока Тов.ПолучитьЭлемент()=1 Цикл
Нашли=0;
Название=Тов.Наименование;
Пока Найти(Название," ")>0 Цикл
Нашли=1;
Название=СтрЗаменить(Название," "," ");
КонецЦикла;
Если Нашли=1 Тогда
Таб.НоваяСтрока();
Таб.Номенклатура=Тов.ТекущийЭлемент();
Таб.НовоеНазвание=Название;
КонецЕсли;
КонецЦикла;
Таб.ВыбратьСтроки();
Пока Таб.ПолучитьСтроку()=1 Цикл
Тов.НайтиЭлемент(Таб.Номенклатура);
Тов.Наименование=Таб.НовоеНазвание;
Тов.Записать();
КонецЦикла;
18. a-novoselov 1160 30.12.09 06:38 Сейчас в теме
(17) Да, ты прав, так все будет работать. А вот как сделать, если мы не знаем ни названия справочника, ни названия реквизита на этапе кодинга?
21. alexqc 150 30.12.09 13:47 Сейчас в теме
(18) В смысле - как в 77 по символьному имени обращаться?

Спр=СоздатьОбъект("Справочник." + имяСправочника);

ЗНРекв=Спр.ПолучитьАтрибут(имяРеквизита);

Спр.УстановитьАтрибут(имяРеквизита,ЗНРекв);

Для ТЗ - ПолучитьЗначение/УстановитьЗначение. Подробнее см. синтакс-помошник.


24. CheBurator 3232 30.12.09 18:25 Сейчас в теме
(18) в 8-ке не знаю, а 7.7 методами рвстроенного языка можно получать перечень всех справочников, документов, их реквизитов, типов и длин реквизитов и т.д.
Метаданные.Справчочник(счетчик1).Реквизит(счетчик2).Тип или .Длина
25. alexk-is 6551 30.12.09 20:29 Сейчас в теме
19. alteregoatg 30.12.09 13:18 Сейчас в теме
Скачал... работает, но не совсем корректно... пробовал для справочника Номенклатура... во-первых, может обрабатывать только Полное наименование, а Наименование почему-то нет... во-вторых, как я понял, убирать заданное количество пробелов, т.е. если есть 5 пробелов, то за один прогон обработка уберет 2 или 3 пробела, следовательно, обработку надо запускать несколько раз...
a-novoselov; +1 Ответить
20. v.l. 437 30.12.09 13:35 Сейчас в теме
(0) Предлагаю дополнить функционал - убивать лидирующие пробелы.
a-novoselov; +1 Ответить
31. laspii 21.02.11 12:11 Сейчас в теме
Не обрабатывает двойные кавычки, например 3,5" поменять на 3.5".
Доработал:
в функции Выборка, где встречается СтрокаСимволов.Символ
СтрокаПоиска = СТрЗаменить(СтрокаСимволов.Символ,"""","""""");
32. gineich 8 21.09.11 10:54 Сейчас в теме
крутая вещь !!! респект
33. serg85 30 13.10.11 18:33 Сейчас в теме
Спасибо за обработку, тема актуальна...
34. YuryKr 22.11.11 00:16 Сейчас в теме
Действительно стоящая обработка - любят у нас придумывать новую номенклатуру особенно через пробелы. Все исправляется и меняется
35. Deniz200 14.02.12 17:53 Сейчас в теме
Обработка полезна, но пока скачать и посмотреть не могу. Чем она отличается от поиска и замены значений?
36. a-novoselov 1160 16.02.12 10:00 Сейчас в теме
(35) Отличается тем, что ей может пользоваться простой пользователь, не программист, для конкретной задачи. Дописывать ничего не придется.
37. sdh 13.03.12 10:47 Сейчас в теме
прочитал по диагонали отзывы, бросилась в глаза дискуссия по убиранию пробелов, двойных, тройных и т.п..
я не знаю, как в 1с, возможно ли, но я такой алгоритм писал на SQL. все делается за один цикл. убирается/меняется двойной пробел " " на одинарный " " в цикле, пока находится двойной пробел. что то типа такого:
WHILE POS (str, " ") > 0 BEGIN
REPLACE(str, " ", " ")
END

при таком алгоритме гарантированно все лишние пробелы убираются и сокращаются до разрешенного одного. пробелы в начале и конце строки обрабатываются обрезанием (если нужно)
Designer1C; +1 Ответить
38. a-novoselov 1160 15.03.12 11:57 Сейчас в теме
(37) Да, алгоритм тут до боли простой. Но эта разработка была моим дебютом на Инфостарте))
39. Ardl 21.05.12 14:42 Сейчас в теме
Обработка действительно полезная!Пожалуйста, рассмотрите возможность фильтрации (отбора) внутри справочника. т.е. изменить какое-либо значение в справочнике при отборе по конкретному: коментарию, НДС, другим полям как номенклатурной катрочки, так и других справочников. Надеюсь идею смог донести!
40. a-novoselov 1160 21.05.12 15:28 Сейчас в теме
(39) Да, идею донести смогли, но пока времени нет заниматься этим, если будет свободное время - сделаю. Или можете сами (если есть желание) доработать / выложить со ссылкой на исходник.
41. Ardl 21.05.12 17:43 Сейчас в теме
Желание есть, но знаний не хватает! Буду смиренно ждать вашего релиза, в любом случае спасибо за оперативный ответ и обработку!
42. motya-98@list.ru 02.02.15 16:51 Сейчас в теме
Добрый вечер.
Не найдется ли файл RENUMBER.ERT для 7
Благодарю.
Для отправки сообщения требуется регистрация/авторизация