Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 07:56

[1C 8.1.11.67 УТ 10.3] Автомат. замена текста в элементе справочника номенклатур

Автор agare, 17 ноя 2010, 23:07

0 Пользователей и 1 гость просматривают эту тему.

agare

1C 8.1.11.67 УТ 10.3
Автоматическая замена текста в элементе справочника номенклатуры как возможна?
Стандартными средствами? - где найти?
Обработкой? - какой?
Другим способом?


Пример что нужно сделать:
Имеем: забито 1 тысяча номенклатурных позиций с наименованием и полным наименование "Коляяска детская ...(такая то")
Проблема: везде "Коляяска" написана с ошибкой.
Задача: исправить везде на "Коляска" (без ошибки)

progmikon

Типовую обработку не припомню, но как самый простой вариант:

ЧтоИщем = "Коляяска";
НаЧтоМеняем = "Коляска";
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
Если НЕ Выборка.ЭтоГруппа Тогда
Об = Выборка.ПолучитьОбъект();
Об.Наименование = СтрЗаменить(Об.Наименование, ЧтоИщем, НаЧтоМеняем);
Об.НаименованиеПолное = СтрЗаменить(Об.НаименованиеПолное, ЧтоИщем, НаЧтоМеняем);
Об.Записать();
КонецЕсли;
КонецЦикла;


Это вариант "в лоб". Можно выбрать номенклатуру запросом, через "ПОДОБНО". Запросом будет оптимальнее.
Если интересно, можно написать.

agare

ЦитироватьЕсли интересно, можно написать.
Интересно!  :)

progmikon

Ну как-то так:

ЧтоИщем = "Коляяска";
НаЧтоМеняем = "Коляска";
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ЭтоГруппа = ЛОЖЬ
| И Номенклатура.Наименование ПОДОБНО &Наименование
| И Номенклатура.НаименованиеПолное ПОДОБНО &Наименование";
Запрос.УстановитьПараметр("Наименование", "%" + ЧтоИщем + "%");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Об = Выборка.Ссылка.ПолучитьОбъект();
Об.Наименование = СтрЗаменить(Об.Наименование, ЧтоИщем, НаЧтоМеняем);
Об.НаименованиеПолное = СтрЗаменить(Об.НаименованиеПолное, ЧтоИщем, НаЧтоМеняем);
Об.Записать();
КонецЦикла;


agare

Спасибо, progmikon!
Но я не знаю как дальше с этим текстом действовать.
Я создал в конфигураторе обработку и вставил текст в модуль объекта, после чего сохранил и попробовал запустить - результат - при запуске ни чего не происходит. Кроме вставки текста в модуль я больше ни чего не делал.

progmikon

Вам необходимо добавить этот код в модуль объекта обработки, сохранить и запустить.  Как только она отработает проверить результат. Если что-то не получается - пишите, разберемся.

agare

Цитата: progmikon от 18 ноя 2010, 19:21
...необходимо добавить этот код в модуль объекта обработки, сохранить и запустить.
Но я же написал:
Цитата: agare от 18 ноя 2010, 10:53...создал в конфигураторе обработку и вставил текст в модуль объекта, после чего сохранил и попробовал запустить


Цитата: progmikon от 18 ноя 2010, 19:21
Как только она отработает проверить результат. Если что-то не получается - пишите, разберемся.
Тоже я вроде бы ответил:
Цитата: agare от 18 ноя 2010, 10:53...осле чего сохранил и попробовал запустить - результат - при запуске ни чего не происходит.

agare

Когда я проверял обработку - запускал её не в конфигураторе.

progmikon

Ее нужно запускать в предприятии. Напишите пример строки, которая неверная.

agare

Цитата: progmikon от 19 ноя 2010, 11:04
Ее нужно запускать в предприятии.

Цитата: agare от 19 ноя 2010, 10:34
...запускал её не в конфигураторе.

Цитата: progmikon от 19 ноя 2010, 11:04
Напишите пример строки, которая неверная.
Что имеется ввиду? Если строки обработки, то как узнать какая неверная?

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск