Изменить Процедуру В конфигурации Розница 2.2.

1. user755570 19.05.17 10:38 Сейчас в теме
Выручайте, нужно срочно!

Клиент хочет использовать реквизит "Артикул" в ШК.
Т.е. в ШК(EAN13) будет стоять сначала "код артикула товара "(5
символов)+дальше вес(7 символов из которых 4 первых это целая часть и
3 последующих дробная) Все это для весового товара
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. TODD22 18 19.05.17 10:42 Сейчас в теме
Сделайте из вашего артикула PLU. Только если вдруг окажется артикул больше 5 знаков что тогда делать будут?
3. user755570 19.05.17 10:43 Сейчас в теме
(2)это просто задание, нужно изменить процедуру. использоваться это не будет.
4. user755570 19.05.17 10:44 Сейчас в теме
(2)я плохо разбираюсь пока что в этом. все это нужно сделать в модуле ПодключаемогоОборудования РТ
5. user755570 19.05.17 10:46 Сейчас в теме
(2)Можно ли что то сделать здесь?


Функция ПолученШтрихкодИзСШК(Штрихкод, Форма, СтруктураДействий = Неопределено) Экспорт
	
	Перем СтруктураПараметровДействия, Пользователь;
	
	Если СтруктураДействий = Неопределено Тогда
		СтруктураДействий = ВариантыПроверокШтрихкода();
	КонецЕсли;
	
	ТипШтрихкода               = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13; // ОпределитьТипШтрихкода(Штрихкод);
	НеизвестныеДанныеПО        = Истина;
	СтруктураПараметровКлиента = Новый Структура;          
	
	// Весовые товары и штучные на весах.
	Если СтруктураДействий.Свойство("ПроверкаВесовыхТоваров") 
		И ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13 Тогда
		
		ПрефиксВнутреннегоШтрихкодаВесовогоТовара            = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ПрефиксВнутреннегоШтрихкодаВесовогоТовара");
		ПрефиксВнутреннегоШтрихкодаШтучногоФасованногоТовара = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ПрефиксВнутреннегоШтрихкодаШтучногоФасованногоТовара");
		ДлинаКодаВесовогоТовара = СтрДлина(Формат(ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ВерхняяГраницаДиапазонаSKUВесовогоТовара"),"ЧГ=0"));
		
		Если ДлинаКодаВесовогоТовара < 5 Тогда
			ДлинаКодаВесовогоТовара = 5;
		КонецЕсли;
		
		Если (ПрефиксВнутреннегоШтрихкодаВесовогоТовара > 0) 
			И (ДлинаКодаВесовогоТовара > 0)
			И (СтрДлина(Штрихкод) = 13)
			И (Лев(Штрихкод, 2) = ("2" + ПрефиксВнутреннегоШтрихкодаВесовогоТовара) 
			ИЛИ Лев(Штрихкод, 2) = ("2" + ПрефиксВнутреннегоШтрихкодаШтучногоФасованногоТовара)) Тогда
			
			КодТовара        = Сред(Штрихкод, 3,  ДлинаКодаВесовогоТовара);
			КоличествоТовара = Сред(Штрихкод, 3 + ДлинаКодаВесовогоТовара, 10 - ДлинаКодаВесовогоТовара);
			 
			Если Лев(Штрихкод, 2) = ("2" + ПрефиксВнутреннегоШтрихкодаВесовогоТовара) Тогда  
				// Весовой товара расфасованный на весах.
				Запрос = Новый Запрос(
				"ВЫБРАТЬ ПЕРВЫЕ 1
				|	КодыТоваровSKU.Номенклатура   КАК Номенклатура,
				|	КодыТоваровSKU.Характеристика КАК Характеристика,
				|	КодыТоваровSKU.Упаковка       КАК Упаковка,
				|	&КоличествоТовара / 1000      КАК Количество
				|ИЗ
				|	РегистрСведений.КодыТоваровSKU КАК КодыТоваровSKU
				|ГДЕ
				|	КодыТоваровSKU.SKU = &Код");
			Иначе
				// Штучный товар расфасованный на весах.
				Запрос = Новый Запрос(
				"ВЫБРАТЬ ПЕРВЫЕ 1
				|	КодыТоваровSKU.Номенклатура   КАК Номенклатура,
				|	КодыТоваровSKU.Характеристика КАК Характеристика,
				|	КодыТоваровSKU.Упаковка       КАК Упаковка,
				|	&КоличествоТовара             КАК Количество
				|ИЗ
				|	РегистрСведений.КодыТоваровSKU КАК КодыТоваровSKU
				|ГДЕ
				|	КодыТоваровSKU.SKU = &Код");
			КонецЕсли;
Показать
6. lefthander 19.05.17 10:59 Сейчас в теме
(5)
Если Лев(Штрихкод, 2) = ("2" + ПрефиксВнутреннегоШтрихкодаВесовогоТовара) Тогда

Вот здесь ПрефиксВнутреннегоШтрихкодаВесовогоТовара - замените на артикул. но он обязательно должен быть приведен к длинне, причем желательно уникальной, иначе есть риск поймать два одинаковых штрихкода на разные позиции.
Либо если Вы формируете ШК по кнопочке, то посмотрите процедуру где формируется сам ШК и после первого или первых двух символов должен быть вставлен артикул. (помните 13 цифру компонент ШК формирует сам - это контрольная цифра. Ваш ШК должен иметь 12 знаков.
ЗЫ на самом деле задача глупая, хотя бы по постановке - весовой ШК формируется по определенным правилам если только в учебных целях, то надо разобраться с тем как это происходит вообще. и ШК весовой формируют весы, а там есть несколько принятых алгоритмов, и можно свои задать.
7. user755570 19.05.17 11:02 Сейчас в теме
(6) а где указывается, сколько знаков стоит до и после запятой?
8. lefthander 19.05.17 11:06 Сейчас в теме
(7)Запятой? ШК формируется обычно: 2+кодтовара(6)+Вес(5) + кц или 20+КодТовара(5)+Вес(5) + КЦ
по вашему заданию 2+ КодТовара(5) + вес(7?) = только 6 вес можно, так как КЦ не поместится
10. user755570 19.05.17 11:09 Сейчас в теме
(8)мне дали такое задание. либо тот кто дал это задание хотел запутать меня, либо он сделал ошибку сам. можете помочь мне с этим кодом. разбираюсь сам впервые в этом.
13. lefthander 19.05.17 11:23 Сейчас в теме
(10) Первое - длинна ШК пользователя в ЕАН13 = 12 символов, 13 символ это контрольная цифра, если она не правильная ШК не будет считан сканером.
второе - в весовой части дробное не проставляется, весы сформируют цифру где будет по правилам 4 цифры кг и три последние граммы
пример 150 граммов будут выглядеть 0000150 , или 13 кг 456 гр = 0013456. Но что бы это правильно читалось программа которая принимает шк должна понимать что это весовой код и товар она будет искать по первым цифрам. Значит у товара будет 5 знаков артикул для вашего случая это 123459 (например), тогда ШК сформируется как 123450000150К - К контрольная цифра но с таким ШК в магазин нельзя, так как он может совпасть с промышленным . Поэтому для внутренних нужд впереди ставят код 2 или 2х где х от 0-9
Где именно в коде надо поправить, то вам уже сказали - или ШК формирует весовой терминал или вы в карточке товара но тогда нужна обработка которая сформирует по вашим правилам
15. user755570 19.05.17 11:49 Сейчас в теме
(13)Может поможете это сделать? Срочно нужно, после того как примут работу, готов заплатить вознаграждение. Срочно нужно сегодня
9. TODD22 18 19.05.17 11:07 Сейчас в теме
В рознице есть регистр сведений PLU в него нужно записать ваши артикулы и сопоставить с номенклатурой. Больше ничего делать не надо.
11. user755570 19.05.17 11:10 Сейчас в теме
(9)я плохо разбираюсь в этом, как записать артикулы?
12. TODD22 18 19.05.17 11:22 Сейчас в теме
(11)
я плохо разбираюсь в этом, как записать артикулы?

Тогда вам лучше пригласить того кто разбирается.
либо тот кто дал это задание хотел запутать меня, либо он сделал ошибку сам.

Это лучше спросить у него.

Если вам нужно что бы PLU вашего товара был артикул то например можно написать обработку которая в соответствующий регистр сведений запишет ваши артикулы.
14. user755570 19.05.17 11:42 Сейчас в теме
Может хоть кто то поможет это сделать? Срочно нужно, после того как примут работу, готов заплатить вознаграждение. Срочно нужно сегодня
16. корум 287 19.05.17 12:15 Сейчас в теме
(14) не боишься, что эту ветку читает работодатель?
А зря.

Всё, что нужно для решения, уже разжёвано. ещё и рабочий код за тебя написать...?
Вся зарплата на оплату других программистов уходить будет.
17. user755570 19.05.17 12:25 Сейчас в теме
(16)это задание дал не работодатель
Оставьте свое сообщение

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