Изменение набора слов в наименовании номенклатуры

1. ranis888 102 01.06.18 08:20 Сейчас в теме
Можно ли изменить наименование номенклатуры программно:
"Арбуз сушеный красный 54кг " на "Сушеный арбуз красный 54кг". Т.е только "Арбуз сушеный" не трогая остальную часть
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user700035_6550355 34 01.06.18 08:28 Сейчас в теме
(1) запросом отбираете Номенклатура.Наименование Подобно "%рбуз сушен%"
Затем получив объект изменяете наименование и записать
3. Неопределено 91 01.06.18 08:28 Сейчас в теме
(1) Вас интересует можно ли это сделать программно в принципе, можно ли это сделать конкретно для арбузов, или можно ли это сделать для всей номенклатуры, меняя местами первые два слова? На все вопросы ответ положительный, но реализация зависит от условия.
4. ranis888 102 01.06.18 08:33 Сейчас в теме
(3) Для всей номенклатуры. Не надо менять местами. Нужно найти определенное слово и изменить его на другое слово. "Привет, как у вас дела?" нужно найти слово "У вас" и изменить его на "У нас", получится "Привет, как у нас дела?" Может и 3 слова придется заменить
8. Неопределено 91 01.06.18 08:41 Сейчас в теме
(4) Делайте запрос с условием как в первом комментарии, затем в обходе результата получайте объект по ссылке, ищите в комментарии ключевое слово, удаляйте и вставляйте на его место своё, затем записывайте объект и всё. Или воспользуйтесь групповым редактором реквизитов справочников.
16. ranis888 102 01.06.18 10:16 Сейчас в теме
(8)
ВЫБРАТЬ
    Номенклатура.Код, 
    Номенклатура.Наименование КАК Наименование, 
    Номенклатура.ЗакупочнаяЦена 
ИЗ 
    Справочник.Номенклатура КАК Номенклатура

ГДЕ 
    Номенклатура.Родитель = &Группа


Результат = СтрЗаменить(Номенклатура.Наименование, "ПолеФормы1", "ПолеФормы2 ");
Показать
18. ranis888 102 01.06.18 10:21 Сейчас в теме
(8)
Запрос = Новый Запрос("ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура");
Выборка = Запрос.Выполнить().Выбрать(); //выборка – это последовательный доступ

Пока Выборка.Следующий() Цикл	//эта функция возвращает Истина, если еще есть строчки

Результат = СтрЗаменить(Номенклатура.Наименование, "ПолеФормы1", "ПолеФормы2 ");

КонецЦикла;
или так?
19. Неопределено 91 01.06.18 10:32 Сейчас в теме
(18)
Запрос = Новый Запрос("ВЫБРАТЬ
			|	Номенклатура.Ссылка КАК Ссылка
			|ИЗ
			|	Справочник.Номенклатура КАК Номенклатура
			|ГДЕ
			|	Номенклатура.Наименование ПОДОБНО ""%Арбуз сушеный%""");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	Номенклатура = Выборка.Ссылка.ПолучитьОбъект();
	Номенклатура.Наименование = СтрЗаменить(Номенклатура.Наименование, "Арбуз сушеный", "Сушеный арбуз");
	Номенклатура.Записать();
КонецЦикла;
Показать
20. ranis888 102 01.06.18 11:44 Сейчас в теме
(19)А если значения что надо заменить и на что надо заменить будет в поле формы, тогда :

Код
Запрос = Новый Запрос("ВЫБРАТЬ
               |   Номенклатура.Ссылка КАК Ссылка
               |ИЗ
               |   Справочник.Номенклатура КАК Номенклатура
               |ГДЕ
               |   Номенклатура.Наименование ПОДОБНО "Поле1"");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
   Номенклатура = Выборка.Ссылка.ПолучитьОбъект();
   Номенклатура.Наименование = СтрЗаменить(Номенклатура.Наименование, Поле1, Поле2);
   Номенклатура.Записать();
КонецЦикла;
Показать полностью


так?
21. ranis888 102 01.06.18 12:01 Сейчас в теме
(19)
Процедура КнопкаВыполнитьНажатие(Кнопка)
		 
	Запрос.Текст =   "ВЫБРАТЬ
	 |	Номенклатура.Родитель,
	 |	Номенклатура.Наименование,
	 |	Номенклатура.НаименованиеПолное
	 |ИЗ
	 |	Справочник.Номенклатура КАК Номенклатура
	 |ГДЕ
	 |	Номенклатура.Наименование ПОДОБНО &ЗаменяемыйТекст
	 |	И Номенклатура.Родитель = &Родитель" ;
	 
	 Выборка = Запрос.Выполнить().Выбрать();
	 
	 Пока Выборка.Следующий() Цикл
    Номенклатура = Выборка.Ссылка.ПолучитьОбъект();
    Номенклатура.Наименование = СтрЗаменить(Номенклатура.Наименование, ЗаменяемыйТекст, Замена);
    Номенклатура.Записать();
КонецЦикла;
 
КонецПроцедуры
Показать
22. ranis888 102 01.06.18 13:20 Сейчас в теме
(19) |ГДЕ
| Номенклатура.Наименование ПОДОБНО &ЗаменяемыйТекст"
не работает. Что делать?
23. catena 110 01.06.18 13:30 Сейчас в теме
(22)Что, так и говорит: "не буду работать"?
24. ranis888 102 01.06.18 14:02 Сейчас в теме
(23) еще одна ошибка
{ВнешняяОбработка.ЗаменаСимволовНаименования.Форма.ФормаЗаменыНоменк.Форма(16)}: Ошибка при установке значения атрибута контекста (НаименованиеПолное)
номенклатура.НаименованиеПолное = Номенклатура.Наименование;
по причине:
Реквизит недоступен для группы
25. ranis888 102 01.06.18 14:07 Сейчас в теме
(23)я его и палкой бил...
{ВнешняяОбработка.ЗаменаСимволовНаименования.Форма.ФормаЗаменыНоменк.Форма(16)}: Ошибка при установке значения атрибута контекста (НаименованиеПолное)
номенклатура.НаименованиеПолное = Номенклатура.Наименование;
по причине:
Реквизит недоступен для группы
28. Неопределено 91 01.06.18 17:11 Сейчас в теме
(25) Группы вылетели из головы. Чтобы они не попадали в выборку, нужно добавить условие в текст запроса.
Код
"ВЫБРАТЬ
     |    Номенклатура.Родитель,
     |    Номенклатура.Наименование,
     |    Номенклатура.НаименованиеПолное
     |ИЗ
     |    Справочник.Номенклатура КАК Номенклатура
     |ГДЕ
     |    Номенклатура.Наименование ПОДОБНО &ЗаменяемыйТекст
     |    И Номенклатура.Родитель = &Родитель
     |    И НЕ Номенклатура.ЭтоГруппа" 
Показать полностью
26. ranis888 102 01.06.18 14:41 Сейчас в теме
(23) Пока Выборка.Следующий() Цикл
Номенклатура = Выборка.Ссылка.ПолучитьОбъект();
Если Не Номенклатура.ЭтоГруппа Тогда
Вот так заработал
27. Неопределено 91 01.06.18 17:08 Сейчас в теме
(22) Сделайте как в примере, без изменений.Забудьте про форму. Это просто картинка. Вся информация для этой картинки берётся из объекта, поэтому менять нужно его. Как изменить объект указано в моём примере. Измените объект -- изменится значение в поле формы. Просто сделайте как я написал и не пытайтесь что-то изменить. У вас недостаточно знаний для импровизации.
13. catena 110 01.06.18 09:20 Сейчас в теме
(4)
Глобальный контекст (Global context)
СтрЗаменить (StrReplace)
Синтаксис:

СтрЗаменить(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>)
Параметры:

<Строка> (обязательный)

Тип: Строка.
Исходная строка.
<ПодстрокаПоиска> (обязательный)

Тип: Строка.
Искомая подстрока.
<ПодстрокаЗамены> (обязательный)

Тип: Строка.
Подстрока, на которую будет заменена подстрока поиска.
Возвращаемое значение:

Тип: Строка.
Строка, полученная в результате замены.
Описание:

Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Пример:

Результат = СтрЗаменить(Номенклатура.Наименование, "_", " ");
14. ranis888 102 01.06.18 10:06 Сейчас в теме
(13) ПодстрокаПоиска - это слово которое ищем?
17. catena 110 01.06.18 10:18 Сейчас в теме
(14)<ПодстрокаПоиска> (обязательный)
Тип: Строка.
Искомая подстрока.


ПС: Читаю СП вслух. Дважды. Дорого
15. ranis888 102 01.06.18 10:16 Сейчас в теме
(13)

ВЫБРАТЬ
    Номенклатура.Код, 
    Номенклатура.Наименование КАК Наименование, 
    Номенклатура.ЗакупочнаяЦена 
ИЗ 
    Справочник.Номенклатура КАК Номенклатура

ГДЕ 
    Номенклатура.Родитель = &Группа


Результат = СтрЗаменить(Номенклатура.Наименование, "ПолеФормы1", "ПолеФормы2 ");
Показать
5. ranis888 102 01.06.18 08:34 Сейчас в теме
https://infostart.ru/public/174659/

Вот вроде обработчик нашел. Нужно было тоже самое
6. Jen1978 19 01.06.18 08:39 Сейчас в теме
универсальная обработка подбора и изменения данных Вам в помощь
9. ranis888 102 01.06.18 08:45 Сейчас в теме
(6) Она то не подойдет вроде. Там же если поставить изменить в номенклатуре "Арбуз сушеный красный 54кг " на "Сушеный арбуз", он изменит номенклатуру на "Сушеный арбуз"
7. Jen1978 19 01.06.18 08:39 Сейчас в теме
10. Jen1978 19 01.06.18 08:50 Сейчас в теме
там есть произвольный алгоритм, пишите код чтобы выполняло так, как Вам необходимо
11. Jen1978 19 01.06.18 08:51 Сейчас в теме
работа с этой обработкой состоит из двух частей
1. Подобрать объекты для работы
2. Применить алгоритм к выбранным объектам
12. Denis_CFO 49 01.06.18 08:53 Сейчас в теме
Ага и тренируйтесь на кошках копиях.... :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот