1с найти и заменить
Расширение глобального поиска / замены в конфигураторе. Отличие в предоставлении ряда дополнительных возможностей по поиску:
- Возможность наложения условий И, ИЛИ, НЕ.
- Возможность поиска только в процедуре/функции с указанным именем.
- Возможность поиска только в названии процедуры / функции.
- Не осуществлять поиск в комментариях.
- Возможность замены на текстовый блок (с переносами строк).
- Использование переменных при поиске и замене.
- Возможность пакетного поиска.
Пример задачи, которую можно выполнить с помощью данной обработки: Во всех отчетах, в конце каждой процедуры СформироватьОтчет() добавить вызов функции ОбщегоНазначения.УстановитьСчетчикВызововОбъекта(Метаданные().ПолноеИмя()). Кроме тех процедур, в которых вывод табличного документа осуществляется вызовом общей функции ТиповыеОтчеты.СформироватьТиповойОтчет() (т. к. в ней уже есть вызов счетчика).
Предварительно.
Перед использованием необходимо «Выгрузить файлы конфигурации» в каталог на диске. И меющаяся в 8.3 команда «Конфигурация –> Выгрузить конфигурацию в файлы» не подходит. Необходимо использовать команду «Выгрузить файлы конфигурации».
Важно! Из конфигуратора в платформе 8.3 исключены команды «Выгрузить файлы конфигурации» и «Загрузить файлы конфигурации». Однако, с помощью настройки главного меню можно отобразить эти команды в меню и пользоваться ими.
После замены загрузка измененных модулей / макетов конфигурации осуществляется через меню: "Конфигурация -> Загрузить файлы конфигурации".
Ограничения.
- Предназначено для использования на обычных формах.
- Поиск осуществляется лучше всего в модулях и макетах СКД.
- Невозможно использование скобок при наложении условий И, ИЛИ.
Порядок использования.
Краткое описание порядка поиска.
- Указать каталог, в котором находятся заранее выгруженные файлы конфигурации.
- Указать операцию. Возможные варианты: стандартный поиск, пакетный поиск, замена.
Закладка "Стандартный поиск"
- Операция - логическое условие, соединяющее условие в текущей строке с предыдущим. Не используется для 1 строки. Возможные значения: И, ИЛИ.
- Строка поиска - искомый текст
- Комментарий - краткое пояснение смысла строки
- Пространство поиска:
- Процедура - имя процедуры/функции, в которой осуществлять поиск. Если не указано, то поиск осуществляется в любой процедуре/функции или вне нее.
- В процедуре целиком - флаг, указывающий, что поиск нужно осуществлять в тексте той процедуры/функции, в которой найдена 1 строка поиска. Не актуален для 1 строки поиска.
- В названии процедуры - флаг, указывающий, что Строку поиска нужно искать только в названиях процедур и функций. Не рекомендуется использовать одновременно с заполнением ячейки в колонке "Процедура" (противоречие по сути поиска).
- До строки поиска - количество строк до номера найденной по 1 условию строки. В пределах указанного количества строк выполняется поиск текущей строки поиска. Не актуально для 1 строки поиска. Если 0, то поиск осуществляется только в той же самой строке.
- После строки поиска - количество строк после номера найденной по 1 условию строки. В пределах указанного количества строк выполняется поиск текущей строки поиска. Не актуально для 1 строки поиска. Если 0, то поиск осуществляется только в той же самой строке.
- Операция - логическое условие, соединяющее условие в текущей строке с предыдущим. Не используется для 1 строки. Возможные значения: И, ИЛИ.
- Строка поиска - исключаемый текст
- Комментарий - краткое пояснение смысла строки
- Пространство поиска:
- В процедуре целиком - флаг, указывающий, что поиск нужно осуществлять в тексте той процедуры/функции, в которой найдена 1 строка поиска. Не актуален для 1 строки поиска.
- В названии процедуры - флаг, указывающий, что Строку поиска нужно искать только в названиях процедур и функций. Не рекомендуется использовать одновременно с заполнением ячейки в колонке "Процедура" (противоречие по сути поиска).
- До строки поиска - количество строк до номера найденной по 1 условию строки. В пределах указанного количества строк выполняется поиск текущей строки поиска. Не актуально для 1 строки поиска. Если 0, то поиск осуществляется только в той же самой строке.
- После строки поиска - количество строк после номера найденной по 1 условию строки. В пределах указанного количества строк выполняется поиск текущей строки поиска. Не актуально для 1 строки поиска. Если 0, то поиск осуществляется только в той же самой строке.
Полное описание порядка поиска.
- Переменная - имя переменной, в которую будет записано слово. Придуманное имя должно быть уникальным и иметь нулевую вероятность встретиться в тексте модуля. Впоследствии сохраненное в переменной значение можно будет посмотреть в таблице найденных строк в колонке "Значение переменной".
- Расположение справа или слева от строки поиска
Настройки и результаты поиска можно сохранять как стандартными средствами сохранения реквизитов формы 1С, так и в отдельные файлы - для загрузки их в других базах.z88;
Функции работы со строками в 1С
Рассмотрим основные функции встроенного языка программирования 1С.
Строка
Функция Строка() позволяет получить текстовое представление переменных других типов.
СтрДлина
Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.
СокрЛП, СокрЛ, СокрП
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.
Лев, Прав, Сред
С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).
Найти
ВРег, НРег, ТРег
ПустаяСтрока
Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.
Аналогично можно проверить строку на пустое значение следующим образом:
СтрЗаменить
Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:
СтрЧислоСтрок
Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).
Например, построчная обработка текстового фрагмента:
СтрПолучитьСтроку
СтрЧислоВхождений
Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.
Символ и КодСимвола
Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.
Часто встречающиеся задачи по работе со строками в 1С
Рассмотрим классические примеры решения задач в работе с текстовыми переменными.
Конкатенация строк в 1С
Преобразовать число в строку
Однако может смущать наличие неразрывного пробела.
Его можно убрать с помощью замены неразрывного пробела на пустую строку:
или с помощью метода Формат:
Кавычки в строке 1С
Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.
Символ переноса строки
Сравнение строк в 1С
Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:
Таким образом, мы получим более точное сравнение двух строк.
Убрать пробелы в строке 1С
Достаточно часто нужно убрать пробелы в строке 1С.
Если требуется убрать пробелы справа и слева:
Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:
Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:
Другие статьи по 1С:
Поиск и замена значений 1С 8.3: скачать управляемые формы
Перед использованием обработки рекомендуется сделать резервную копию информационной базы 1С 8.3, т.к. в случае неправильной замены объектов ошибка может привести к нарушению логической целостности информации.
При замене вручную, мы конкретно выбираем нужный объект, а при использовании обработки происходит автоматическая замена, поэтому нужно быть внимательней.
Случаи необходимости использования обработки
Использование обработки Поиск и замена значений 1С 8.3 облегчит работу при необходимости обработать большой объем информации. Например, в большом количестве документов был введен старый договор и его необходимо заменить на новый. Такие ситуации часто возникают при копировании старых документов.
Или же в программе 1С созданы два одинаковых контрагента и в документах с использованием двойника его нужно заменить (и соответственно его договор). Такая ситуация может возникнуть, когда работа разделена по участкам, например банковские операции разносит один пользователь, а счета другой, и не найдя нужного контрагента заносят нового.
В программах бюджетных учреждений бывают ситуации, когда пользователь разносит операции используя старый КПС и обнаружив ошибку, возникает необходимость произвести его замену на новый. Таких примеров множество. И здесь как раз придет на помощь обработка Поиск и замена значений .
Использование обработки Поиск и замена значений 1С 8.3
Выбираем файл обработки ПоискИЗаменаЗначений (3.0) и нажимаем Открыть .
С помощью кнопки Добавить нам необходимо задать условие указав Что заменять и На что заменять .
Нажимаем кнопку Выполнить замену и ждем.
Использование обработки Поиск и замена значений в других конфигурациях 1С
Для более ранних версий программ 1С скачанная выше обработка может не подходить. Но можно подобрать из ее более ранних ее версий. На примере 1С Бухгалтерия государственного учреждения 1.0 применение данной обработки выглядит вот так:
Принцип работы при этом остается такой же. Открываем обработку и с помощью кнопки Добавить задаем условие Что заменить и На что заменить , выбрав из открывшегося списка объект и далее, найдя ссылки на него, производим замену.
В этом примере производится замена старого КПС на новый в программе 1С Бухгалтерия бюджетных учреждений 1.0.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
Карточка публикации
(1 оценок, среднее: 5,00 из 5)
Данную публикацию можно обсудить в комментариях ниже.
Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявкуНажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>ПоискИЗаменаЗначений – это обработка 1С позволяющая заменять ссылочные значения во всех объектах конфигурации, которые ссылаются на заменяемый объект.
Перед тем как рассмотреть саму обработку, давайте разберемся, для решения каких прикладных задач применяется эта обработка. Допустим, мы пометили на удаление какой-то справочник, но при удалении (обработкой Удаление помеченных объектов) выясняется, что на удаляемый элемент есть ссылающиеся объекты. При таких условиях обработка «Удаление помеченных объектов» не позволит удалить элемент, т.к. это нарушит референтность базы данных. Если ссылающийся объект один или два, тогда можно ссылки заменить вручную, а если таких объектов 100, 1000? Вот в этом случае нам понадобится обработка ПоискИЗаменаЗначений. Данная обработка заменит удаляемый объект другой ссылкой, тем самым удалит связанность объектов, что позволит, в свою очередь, удалить помеченный на удаление объект.
Еще один из распространенных примеров – когда по ошибке в системе заводится дубль контрагента (номенклатуры, чего угодно), по которому уже успели ввести документы. Обработка ПоискИЗаменаЗначений в этом случае также поможет. Однако для решения второго примера больше подойдет обработка «Поиск и удаление дублей», которая также поставляется на диске ИТС и в составе БСП в одноименной подсистеме «Поиск и удаление дублей».
Рассмотрим работу с обработкой.
GUI обработки выглядит так:
Верхняя табличная часть предназначается для добавления исходных ссылок и ссылок, на которые необходимо произвести замену. Нижняя табличная часть содержит список ссылающихся объектов.
Давайте по шагам разберем, как пользоваться обработкой:
- Добавляем в верхнюю табличную часть строку кнопкой «Добавить» (добавлять можно несколько строк);
Рис.2 Добавляем в верхнюю табличную часть строку кнопкой «Добавить»- Выбираем заменяемое значение в колонке «Что заменять», в этой же строке заполняем также значение, на что необходимо произвести замену;
Рис.3 Выбираем заменяемое значение в колонке «Что заменять», в этой же строке заполняем также значение, на что необходимо произвести замену- Жмем кнопку «Найти ссылки». Все найденные объекты, которые ссылаются на элемент из колонки «Что заменять», будут выведены в нижнюю табличную часть;
- В табличной части также можно производить поиск в таблице значений для поиска определенных строк;
Рис.5 В табличной части также можно производить поиск в таблице значений для поиска определенных строк- Мы может выбрать все или выбрать вручную определенные строки (воспользовавшись поиском описанным пунктом выше);
Рис.6 Мы может выбрать все или выбрать вручную определенные строкиСтоить упомянуть также о дополнительных настройках:
Выполнять в транзакции – включив данную опцию, процесс удаления будет происходить в одной общей транзакции. Наличие общей транзакции означает, что если в процессе удаления произойдет какая-либо ошибка, вся транзакция откатится, и изменения в базе не будут зафиксированы. Для примера можно рассмотреть ситуацию, когда мы обрабатываем 1000 элементов: если при обработке 999 элемента произойдет ошибка, все сделанные до этого изменения в базе данных отменятся. Эта опция позволяет нам поддерживать консистентность базы данных.
Отключить контроль записи – данная опция отвечает за факт включения флага:
ОбменДанными – это свойство объекта (справочника, документа, регистров, планов видов характеристик и т.п.). Данный флаг, как правило, означает минимальный контроль при записи, что достигается не платформой, а прикладными разработчиками. При разработке различных подписок или при перехвате различных событий объекта (например, при записи) прикладные разработчики пишут такой код:
Т.е. если есть данный флаг, выходим из процедуры. За счет этого достигается минимальный контроль при записи объектов.
Пояснять процесс подробно – включение данной опции будет выводить лог обработки объектов через метод
Данную обработку можно найти на диске ИТС по пути:
В заключении напомним, что важно не забывать делать backup перед применением обработки.
Читайте также: