Автоматическое переименование ЕГАИС номенклатуры
Комментарии
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(3) Да
Дмитрий, огромное спасибо
Добавьте чекбокс снятия всех галочек и добавления всех.
Баг:
Дмитрий, огромное спасибо
Добавьте чекбокс снятия всех галочек и добавления всех.
Баг:
Неважно сколько выбрал галочек все время обрабатывает полностью ТЧ
&НаКлиенте
Процедура Переформатировать(Команда)
Для Каждого Строка Из Объект.Товары цикл
Строка.Наименование = ПереформатироватьНаСервере(Строка.НоменклатураЕГАИС);
КонецЦикла;
КонецПроцедуры
(6) ок
Вот что еще предлагаю добавить
Наименование = СтрЗаменить(Наименование,"Пастеризованное","");
Наименование = СтрЗаменить(Наименование,"Пастеризованный","");
Наименование = СтрЗаменить(Наименование,"Алюминевый","Алюм.");
Наименование = СтрЗаменить(Наименование,"ароматом","аром.");
Наименование = СтрЗаменить(Наименование,"напиток","нап.");
Наименование = СтрЗаменить(Наименование,"Пивной","Пив.");
Вот что еще предлагаю добавить

Наименование = СтрЗаменить(Наименование,"Пастеризованное","");
Наименование = СтрЗаменить(Наименование,"Пастеризованный","");
Наименование = СтрЗаменить(Наименование,"Алюминевый","Алюм.");
Наименование = СтрЗаменить(Наименование,"ароматом","аром.");
Наименование = СтрЗаменить(Наименование,"напиток","нап.");
Наименование = СтрЗаменить(Наименование,"Пивной","Пив.");
Я уже видел похожую обработку и кидал кое какие совты тому авору, но он что-то так и не соизволил ее доделать. Напишу и вам, мне кажется будет востребованно - Дать возможность выбирать дописывать-ли "л." и "%", а также дописывать-ли вообще крепость и производителя. Бывает нужно просто цифру литража вставить и все.
и по галочкам - не нашел кнопки убирающей все и ставящей обратно все галочки. а если мне надо только пару из всего списка переименовать?
ну и я так понимаю можно писать сюда что можно допиливать в логике замены?
то что я нашел и хотелось бы что бы вы поправили в своей обработке:
Стеклянная бутылка вместимостью - ст.б.
Металлическая банка - ж.б.
ПЭТФ-бутылка вместимостью - переименовать в просто бут. либо вообще удалять
Бутылка стеклянная - ст.б.
Бутылка полимерная ПЭТ - переименовать в просто бут. либо вообще удалять
СТЕКЛЯННАЯ БУТЫЛКА - ст.б.
Пастеризованное. - вообще удалять, считаю лишним.
ну и я так понимаю можно писать сюда что можно допиливать в логике замены?
то что я нашел и хотелось бы что бы вы поправили в своей обработке:
Стеклянная бутылка вместимостью - ст.б.
Металлическая банка - ж.б.
ПЭТФ-бутылка вместимостью - переименовать в просто бут. либо вообще удалять
Бутылка стеклянная - ст.б.
Бутылка полимерная ПЭТ - переименовать в просто бут. либо вообще удалять
СТЕКЛЯННАЯ БУТЫЛКА - ст.б.
Пастеризованное. - вообще удалять, считаю лишним.
Я сделал кучу всяких исправлений. Теперь мне надо сделать отдельную обработку которая бы чистила лишние пробелы в номенклатуре уже имеющейся. Я не программист 1С. Подскажите пожалуйста что поправить в этом коде, что бы просто убирались лишние пробелы в уже переписанном справочнике номенклатура(накалякал вариант как я его вижу, но не знаю как поменять что бы он брал названия уже не из справочника егаис, а из простого справочника номенклатуры):
Скрытый текст |
---|
Функция ГенерироватьНаименованиеНоменклатуры(НоменклатураЕГАИС) Экспорт
Наименование = ""+СокрЛП(НоменклатураЕГАИС.НаименованиеПолное)+" "+НоменклатураЕГАИС.Объем+"л";
Если СтрДлина(Наименование)<80 тогда
Наименование = Наименование;
КонецЕсли;
Наименование = Наименование;
Наименование = СтрЗаменить(Наименование," "," ");
Наименование = СтрЗаменить(Наименование," "," ");
Наименование = СтрЗаменить(Наименование," "," ");
Наименование = СтрЗаменить(Наименование," "," ");
Возврат СокрЛП(Наименование);
КонецФункции Показать |
(26)
Это для вашей задачи очистки всей номенклатуры от лишних пробелов. Я для Розницы 2.2 такой код использую:
в какую строку это можно вставить?
Это для вашей задачи очистки всей номенклатуры от лишних пробелов. Я для Розницы 2.2 такой код использую:
&НаКлиенте
Процедура ОбработатьНоменклатуру(Команда)
ОбработатьНоменклатуруНаСервере();
КонецПроцедуры
&НаСервере
Процедура ОбработатьНоменклатуруНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| Номенклатура.Наименование,
| Номенклатура.НаименованиеПолное
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НоменклатураОбъект = Выборка.Номенклатура;
НоменклатураОбъект.Наименокание = УдалитьЛишниеСимволы(Выборка.Наименование);
НоменклатураОбъект.НаименованиеПолное = УдалитьЛишниеСимволы(Выборка.НаименованиеПолное);
НоменклатураОбъект.Записать();
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Функция УдалитьЛишниеСимволы(Текст)
Если Текст = "" Тогда
Возврат "";
КонецЕсли;
Результат = Текст;
// Удаление задвоенных символов
УдаляемыеСимволы = """.,;\/_";
Для Поз = 1 По СтрДлина(УдаляемыеСимволы) Цикл
Симв = Лев(УдаляемыеСимволы, Поз);
Пара = Симв + Симв;
Пока СтрНайти(Результат, Пара) <> 0 Цикл
Результат = СтрЗаменить(Результат, Пара, " ");
КонецЦикла;
КонецЦикла;
// Удаление недопустимых символов в начале и конце строки:
// Чистим слева
УдаляемыеСимволы = ".:,;\/_";
Работаем = Истина;
Пока Работаем Цикл
Симв = Лев(Результат, 1);
Если СтрНайти(УдаляемыеСимволы, Симв) <> 0 Тогда
Результат = Прав(Результат, СтрДлина(Результат) - 1);
Иначе
Работаем = Ложь;
КонецЕсли;
КонецЦикла;
//Чистим справа
УдаляемыеСимволы = ":,;\/_";
Работаем = Истина;
Пока Работаем Цикл
Симв = Прав(Результат, 1);
Если СтрНайти(УдаляемыеСимволы, Симв) <> 0 Тогда
Результат = Лев(Результат, СтрДлина(Результат) - 1);
Иначе
Работаем = Ложь;
КонецЕсли;
КонецЦикла;
// Удаление задвоенных пробелов
Пока СтрНайти(Результат, " ") <> 0 Цикл
Результат = СтрЗаменить(Результат, " ", " ");
КонецЦикла;
Результат = СокрЛП(Результат);
Возврат Результат;
КонецФункции
Показать
Не пойму что не так - я добавил строку:
Наименование = СтрЗаменить(Наименование,"Вино контролируемого наименования по происхождению","Вино");
Но это условие не работает. Связано это как-то с длинной наименования? Из всех позиций номенклатуры с таким начало самые длинные и у них у всех не срабатывает мое условие.
п.с.
наименование таких позиций выглядит так - Вино контролируемого наименовани по происхождению белое полусладкое "Молоко любимой женщины. Мадонна. Наэ. Ланселот"
ну и плюс мы еще пытаемся добавить емкость, крепость и завод.
Наименование = СтрЗаменить(Наименование,"Вино контролируемого наименования по происхождению","Вино");
Но это условие не работает. Связано это как-то с длинной наименования? Из всех позиций номенклатуры с таким начало самые длинные и у них у всех не срабатывает мое условие.
п.с.
наименование таких позиций выглядит так - Вино контролируемого наименовани по происхождению белое полусладкое "Молоко любимой женщины. Мадонна. Наэ. Ланселот"
ну и плюс мы еще пытаемся добавить емкость, крепость и завод.
Другой вопрос. Я сделал так что бы цыфры в начале удалялись. А потом выеснилось что у некоторых позиций в названиях тоже есть цыфры. И в итоге у меня напиток "Портвей 777" преврящается просто в напиток "Портвейн". Вопрос - как сделать так что бы условие не проверяло наименования которые в скобках. например удалять 7, но не удалять ее там где " 7 ". ????
(24) Приветствую. В последнее время в мои торговые точки часто привозят новый ассортимент. Возникает необходимость в переименовании этих позиций. Пользуюсь данной обработкой т.к. она великолепна. НО мучает рутина постоянно нажимать Поиск, потом вставлять название которое надо переделать и так по многим позициям. Можете сделать отбор по номенклатурным группам? Например можно было бы кидать всю новую номенклатуру в корень справочника Номенклатура, а потом просто в данной обработке все разом их обработать!?!?
Вопросы с вознаграждением
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|