0. automatizator 299 12.12.16 15:39 Сейчас в теме

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

Автоматически создаем наименования алкогольной номенклатуры на основании классификатора ЕГАИС. Товаровед - отдыхает.

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

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

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

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

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



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

Скрытый текст
16. automatizator 299 15.12.16 11:25 Сейчас в теме
(15) Егор надо поискать другую обработку.
25. Ryukenden 35 10.02.17 12:56 Сейчас в теме
(15)
// Удаление задвоенных пробелов
Пока СтрНайти(ИсходнаяСтрока, " ") <> 0 Цикл
ИсходнаяСтрока= СтрЗаменить(ИсходнаяСтрока, " ", " ");
КонецЦикла;

Результат = СокрЛП(ИсходнаяСтрока);
26. user635667 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 Цикл
		Результат = СтрЗаменить(Результат, "  ", " ");
	КонецЦикла;
	
	Результат = СокрЛП(Результат);
	
	Возврат Результат;
	
КонецФункции
Показать
17. maxL 20.12.16 21:49 Сейчас в теме
Дмитрий, а возможно сделать такую обработку для УТ 10.3 ?
18. automatizator 299 21.12.16 01:20 Сейчас в теме
(17) Готовы оплатить работу?
19. maxL 21.12.16 19:44 Сейчас в теме
20. automatizator 299 22.12.16 00:23 Сейчас в теме
21. user635667 07.02.17 07:09 Сейчас в теме
Не пойму что не так - я добавил строку:
Наименование = СтрЗаменить(Наименование,"Вино контролируемого наименования по происхождению","Вино");
Но это условие не работает. Связано это как-то с длинной наименования? Из всех позиций номенклатуры с таким начало самые длинные и у них у всех не срабатывает мое условие.
п.с.
наименование таких позиций выглядит так - Вино контролируемого наименовани по происхождению белое полусладкое "Молоко любимой женщины. Мадонна. Наэ. Ланселот"
ну и плюс мы еще пытаемся добавить емкость, крепость и завод.
22. automatizator 299 07.02.17 10:04 Сейчас в теме
(21) Если это добавлено в конец, то поступает уже раздерганное наименование. Длинные наименования нужно ставить в начало.
23. user635667 08.02.17 11:55 Сейчас в теме
Другой вопрос. Я сделал так что бы цыфры в начале удалялись. А потом выеснилось что у некоторых позиций в названиях тоже есть цыфры. И в итоге у меня напиток "Портвей 777" преврящается просто в напиток "Портвейн". Вопрос - как сделать так что бы условие не проверяло наименования которые в скобках. например удалять 7, но не удалять ее там где " 7 ". ????
24. automatizator 299 08.02.17 13:26 Сейчас в теме
(23) Такого обработка не умеет
28. user635667 20.04.17 16:36 Сейчас в теме
(24) Приветствую. В последнее время в мои торговые точки часто привозят новый ассортимент. Возникает необходимость в переименовании этих позиций. Пользуюсь данной обработкой т.к. она великолепна. НО мучает рутина постоянно нажимать Поиск, потом вставлять название которое надо переделать и так по многим позициям. Можете сделать отбор по номенклатурным группам? Например можно было бы кидать всю новую номенклатуру в корень справочника Номенклатура, а потом просто в данной обработке все разом их обработать!?!?
29. user635667 27.04.17 07:40 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии


Специалист техподдержки 1С
Иркутск
зарплата от 28 000 руб. до 34 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 48 000 руб. до 96 000 руб.
По совместительству

Программист 1С
Ставрополь
зарплата от 40 000 руб. до 60 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день