Автоматическое переименование ЕГАИС номенклатуры

0. Дмитрий Утенков (automatizator) 195 12.12.16 15:39 Сейчас в теме
Автоматически создаем наименования алкогольной номенклатуры на основании классификатора ЕГАИС. Товаровед - отдыхает.

Перейти к публикации

Комментарии
1. Денис Шеремет (Denya.S) 13.12.16 12:47 Сейчас в теме
Очень было бы удобно засунуть сюда и запрос номенклатуры ЕГАИС по алкокоду, чтобы не грузить всю номенклатуру поставщика.
2. Дмитрий Утенков (automatizator) 195 13.12.16 12:55 Сейчас в теме
(1) Туда-же и сканирование марок... Иначе запрос по каким данным?
Для этого и нужна обозначенная обработка Инвентаризация ЕГАИС.
3. Денис Шеремет (Denya.S) 13.12.16 13:16 Сейчас в теме
а можно ли с помощью данной обработки исправить уже заведенную и сопоставленную номенклатуру?
4. Максим Радченко (coolseo) 25 14.12.16 02:44 Сейчас в теме
(3) Да

Дмитрий, огромное спасибо
Добавьте чекбокс снятия всех галочек и добавления всех.

Баг:
Неважно сколько выбрал галочек все время обрабатывает полностью ТЧ
&НаКлиенте
Процедура Переформатировать(Команда)
	Для Каждого Строка Из Объект.Товары цикл
		Строка.Наименование = ПереформатироватьНаСервере(Строка.НоменклатураЕГАИС);
	КонецЦикла;
КонецПроцедуры
...Показать Скрыть
5. Дмитрий Утенков (automatizator) 195 14.12.16 03:09 Сейчас в теме
(3) Она именно для уже заведеной номенклатуры
6. Дмитрий Утенков (automatizator) 195 14.12.16 03:10 Сейчас в теме
(4) Галочки отрабатывают только на запись
7. Максим Радченко (coolseo) 25 14.12.16 03:14 Сейчас в теме
(6) ок

Вот что еще предлагаю добавить



Наименование = СтрЗаменить(Наименование,"Пастеризованное","");
Наименование = СтрЗаменить(Наименование,"Пастеризованный","");
Наименование = СтрЗаменить(Наименование,"Алюминевый","Алюм.");
Наименование = СтрЗаменить(Наименование,"ароматом","аром.");
Наименование = СтрЗаменить(Наименование,"напиток","нап.");
Наименование = СтрЗаменить(Наименование,"Пивной","Пив.");
8. Егор Иванов (user635667_bolonevegor) 32 14.12.16 04:15 Сейчас в теме
Я уже видел похожую обработку и кидал кое какие совты тому авору, но он что-то так и не соизволил ее доделать. Напишу и вам, мне кажется будет востребованно - Дать возможность выбирать дописывать-ли "л." и "%", а также дописывать-ли вообще крепость и производителя. Бывает нужно просто цифру литража вставить и все.
9. Егор Иванов (user635667_bolonevegor) 32 14.12.16 05:54 Сейчас в теме
и по галочкам - не нашел кнопки убирающей все и ставящей обратно все галочки. а если мне надо только пару из всего списка переименовать?
ну и я так понимаю можно писать сюда что можно допиливать в логике замены?
то что я нашел и хотелось бы что бы вы поправили в своей обработке:
Стеклянная бутылка вместимостью - ст.б.
Металлическая банка - ж.б.
ПЭТФ-бутылка вместимостью - переименовать в просто бут. либо вообще удалять
Бутылка стеклянная - ст.б.
Бутылка полимерная ПЭТ - переименовать в просто бут. либо вообще удалять
СТЕКЛЯННАЯ БУТЫЛКА - ст.б.
Пастеризованное. - вообще удалять, считаю лишним.
10. Егор Иванов (user635667_bolonevegor) 32 14.12.16 07:37 Сейчас в теме
только сейчас понял что штуку с заменой можно через конфигуратор самому допилить. спасибо большое. каждый может под свои нужды сделать как надо)
11. Дмитрий Утенков (automatizator) 195 14.12.16 10:59 Сейчас в теме
(7) Пив. нап. - по моему это перебор )))
12. Дмитрий Утенков (automatizator) 195 14.12.16 11:02 Сейчас в теме
(9) не понимаю откуда брать инфу по таре. В наименовании - почти не встречается
13. Егор Иванов (user635667_bolonevegor) 32 14.12.16 11:41 Сейчас в теме
Надо наверное добавить сортировку по столбикам. и добавить возможность открывать номенклатуру прямо из окна обработки, скажем правой кнопкой на номенклатуре - изменить
14. Дмитрий Утенков (automatizator) 195 14.12.16 11:54 Сейчас в теме
(13) Хорошо. Обработка бесплатная, так что за оперативность не ручаюсь. Пока делитесь предложениями в стиле СтрЗаменить() - т.е. что, на что менять в названии.
15. Егор Иванов (user635667_bolonevegor) 32 15.12.16 07:26 Сейчас в теме
Я сделал кучу всяких исправлений. Теперь мне надо сделать отдельную обработку которая бы чистила лишние пробелы в номенклатуре уже имеющейся. Я не программист 1С. Подскажите пожалуйста что поправить в этом коде, что бы просто убирались лишние пробелы в уже переписанном справочнике номенклатура(накалякал вариант как я его вижу, но не знаю как поменять что бы он брал названия уже не из справочника егаис, а из простого справочника номенклатуры):

Скрытый текст
16. Дмитрий Утенков (automatizator) 195 15.12.16 11:25 Сейчас в теме
(15) Егор надо поискать другую обработку.
17. maxL Любин (maxL) 20.12.16 21:49 Сейчас в теме
Дмитрий, а возможно сделать такую обработку для УТ 10.3 ?
18. Дмитрий Утенков (automatizator) 195 21.12.16 01:20 Сейчас в теме
(17) Готовы оплатить работу?
19. maxL Любин (maxL) 21.12.16 19:44 Сейчас в теме
20. Дмитрий Утенков (automatizator) 195 22.12.16 00:23 Сейчас в теме
21. Егор Иванов (user635667_bolonevegor) 32 07.02.17 07:09 Сейчас в теме
Не пойму что не так - я добавил строку:
Наименование = СтрЗаменить(Наименование,"Вино контролируемого наименования по происхождению","Вино");
Но это условие не работает. Связано это как-то с длинной наименования? Из всех позиций номенклатуры с таким начало самые длинные и у них у всех не срабатывает мое условие.
п.с.
наименование таких позиций выглядит так - Вино контролируемого наименовани по происхождению белое полусладкое "Молоко любимой женщины. Мадонна. Наэ. Ланселот"
ну и плюс мы еще пытаемся добавить емкость, крепость и завод.
22. Дмитрий Утенков (automatizator) 195 07.02.17 10:04 Сейчас в теме
(21) Если это добавлено в конец, то поступает уже раздерганное наименование. Длинные наименования нужно ставить в начало.
23. Егор Иванов (user635667_bolonevegor) 32 08.02.17 11:55 Сейчас в теме
Другой вопрос. Я сделал так что бы цыфры в начале удалялись. А потом выеснилось что у некоторых позиций в названиях тоже есть цыфры. И в итоге у меня напиток "Портвей 777" преврящается просто в напиток "Портвейн". Вопрос - как сделать так что бы условие не проверяло наименования которые в скобках. например удалять 7, но не удалять ее там где " 7 ". ????
24. Дмитрий Утенков (automatizator) 195 08.02.17 13:26 Сейчас в теме
(23) Такого обработка не умеет
25. Дмитрий Анонимный (Ryukenden) 35 10.02.17 12:56 Сейчас в теме
(15)
// Удаление задвоенных пробелов
Пока СтрНайти(ИсходнаяСтрока, " ") <> 0 Цикл
ИсходнаяСтрока= СтрЗаменить(ИсходнаяСтрока, " ", " ");
КонецЦикла;

Результат = СокрЛП(ИсходнаяСтрока);
26. Егор Иванов (user635667_bolonevegor) 32 14.02.17 09:17 Сейчас в теме
(25) в какую строку это можно вставить?
27. Дмитрий Анонимный (Ryukenden) 35 14.02.17 10:41 Сейчас в теме
(26)
в какую строку это можно вставить?


Это для вашей задачи очистки всей номенклатуры от лишних пробелов. Я для Розницы 2.2 такой код использую:

&НаКлиенте
Процедура ОбработатьНоменклатуру(Команда)
	ОбработатьНоменклатуруНаСервере();
КонецПроцедуры

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

&НаСервереБезКонтекста
Функция УдалитьЛишниеСимволы(Текст) 
	
	Если Текст = "" Тогда
		Возврат "";
	КонецЕсли;
	
	Результат = Текст;
	
	// Удаление задвоенных символов
	УдаляемыеСимволы = """.,;\/_";
	
	Для Поз = 1 По СтрДлина(УдаляемыеСимволы) Цикл
		Симв = Лев(УдаляемыеСимволы, Поз);
		
		Пара = Симв + Симв;
		
		Пока СтрНайти(Результат, Пара) <> 0 Цикл
			Результат = СтрЗаменить(Результат, Пара, " ");
		КонецЦикла;
		
	КонецЦикла;
	
	// Удаление недопустимых символов в начале и конце строки:
	// Чистим слева
	УдаляемыеСимволы = ".:,;\/_";
	Работаем = Истина;
	Пока Работаем Цикл		
		Симв = Лев(Результат, 1);
		Если СтрНайти(УдаляемыеСимволы, Симв) <> 0 Тогда
			Результат = Прав(Результат, СтрДлина(Результат) - 1);
		Иначе
			Работаем = Ложь;
		КонецЕсли;
	КонецЦикла;
	
	//Чистим справа
	УдаляемыеСимволы = ":,;\/_";
	Работаем = Истина;
	Пока Работаем Цикл
		Симв = Прав(Результат, 1);
		Если СтрНайти(УдаляемыеСимволы, Симв) <> 0 Тогда
			Результат = Лев(Результат, СтрДлина(Результат) - 1);
		Иначе
			Работаем = Ложь;
		КонецЕсли;
	КонецЦикла;
	
	// Удаление задвоенных пробелов
	Пока СтрНайти(Результат, "  ") <> 0 Цикл
		Результат = СтрЗаменить(Результат, "  ", " ");
	КонецЦикла;
	
	Результат = СокрЛП(Результат);
	
	Возврат Результат;
	
КонецФункции
...Показать Скрыть
28. Егор Иванов (user635667_bolonevegor) 32 20.04.17 16:36 Сейчас в теме
(24) Приветствую. В последнее время в мои торговые точки часто привозят новый ассортимент. Возникает необходимость в переименовании этих позиций. Пользуюсь данной обработкой т.к. она великолепна. НО мучает рутина постоянно нажимать Поиск, потом вставлять название которое надо переделать и так по многим позициям. Можете сделать отбор по номенклатурным группам? Например можно было бы кидать всю новую номенклатуру в корень справочника Номенклатура, а потом просто в данной обработке все разом их обработать!?!?
29. Егор Иванов (user635667_bolonevegor) 32 27.04.17 07:40 Сейчас в теме
Оставьте свое сообщение