как правильно указать путь к реквизиту Артикул в Номенклатуре розница 2.2
нужна помощь, как правильно записать.
Например есть код:
ПрефиксВнутреннегоШтрихкодаВесовогоТовара = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ПрефиксВнутреннегоШтрихкодаВесовогоТовара");
а нужно
АртикулВесовогоТовара = (Сюда нужно указать путь к реквизиту Артикул в Справочнике Номенклатура).
Например есть код:
ПрефиксВнутреннегоШтрихкодаВесовогоТовара = ЗначениеНастроекПовтИсп.ПолучитьЗначениеКонстанты("ПрефиксВнутреннегоШтрихкодаВесовогоТовара");
а нужно
АртикулВесовогоТовара = (Сюда нужно указать путь к реквизиту Артикул в Справочнике Номенклатура).
По теме из базы знаний
- Импорт из EXCEL и других источников (xls, xlsx, xlsb, ods, sxc, dbf, mxl, csv, clipboard, sql) в 1С
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Обмен 1С с Честным Знаком для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ
- API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Чтобы указать пусть к реквизиту, нужна ссылка на элемент справочника. Это ведь не константа, у каждого элемента артикул свой.
Так и написать АртикулВесовогоТовара = СсылкаНаНужныйЭлемент.<ИмяРеквизита>
Где вместо <ИмяРеквизита> ставишь название реквизита, как оно указано в конфигураторе. Ссылку на нужный элемент получаешь предварительно исходя из условий своей задачи.
А вообще лучше не через точку получать, а запросом, это в общем случае.
Так и написать АртикулВесовогоТовара = СсылкаНаНужныйЭлемент.<ИмяРеквизита>
Где вместо <ИмяРеквизита> ставишь название реквизита, как оно указано в конфигураторе. Ссылку на нужный элемент получаешь предварительно исходя из условий своей задачи.
А вообще лучше не через точку получать, а запросом, это в общем случае.
(6)
моя задача:
клиент хочет использовать реквизит "Артикул" в ШК.
Т.е. в ШК(EAN13) будет стоять сначала "код артикула товара "(5
символов)+дальше вес(7 символов из которых 4 первых это целая часть и
3 последующих дробная).
я хочу подставить вместо префиксавесовоготовара артикулвесового товара. Или можете подсказать другие варианты решения?
вот функция.
моя задача:
клиент хочет использовать реквизит "Артикул" в ШК.
Т.е. в ШК(EAN13) будет стоять сначала "код артикула товара "(5
символов)+дальше вес(7 символов из которых 4 первых это целая часть и
3 последующих дробная).
я хочу подставить вместо префиксавесовоготовара артикулвесового товара. Или можете подсказать другие варианты решения?
вот функция.
Функция ПолученШтрихкодИзСШК(Штрихкод, Форма, СтруктураДействий = Неопределено) Экспорт
Перем СтруктураПараметровДействия, Пользователь;
Если СтруктураДействий = Неопределено Тогда
СтруктураДействий = ВариантыПроверокШтрихкода();
КонецЕсли;
ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.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 = &Код");
КонецЕсли;
Запрос.УстановитьПараметр("Код", Число(КодТовара));
Запрос.УстановитьПараметр("КоличествоТовара", Число(КоличествоТовара));
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
НеизвестныеДанныеПО = Ложь;
СтруктураПараметров = Новый Структура;
СтруктураПараметров.Вставить("НеизвестныеДанныеПО", НеизвестныеДанныеПО);
СтруктураПараметров.Вставить("ЗначенияПоиска", Новый Массив);
СтруктураПараметров.Вставить("Действие", "ПроверкаВесовыхТоваров");
СтруктураПараметров.Вставить("ДанныеПО", Штрихкод);
СтруктураШтрихкода = Новый Структура;
ОбщегоНазначенияРТ.ПеренестиСтрокуВыборкиВСтруктуру(РезультатЗапроса, Выборка, СтруктураШтрихкода);
Если СтруктураДействий.Свойство("ИспользоватьКоличество") Тогда
СтруктураШтрихкода.Количество = СтруктураШтрихкода.Количество * СтруктураДействий.ИспользоватьКоличество;
КонецЕсли;
СтруктураПараметров.ЗначенияПоиска.Добавить(СтруктураШтрихкода);
СтруктураПараметровКлиента = Форма.ОбработатьДанныеПОВФормеСервер(СтруктураПараметров, СтруктураПараметровКлиента);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Показать
(8) и вот еще
у номенклатуры уже есть реквизит Артикул. В него скажем будет забито некое
число пусть начинающееся с 2 (уникальное для каждой позиции
напр.23456) и нужно доработать функцию, чтобы она понимала, что для ШК начинающийся на 2 нужно
искать по описанному алгоритму, а не по рег.сведений Штрихкоды.
у номенклатуры уже есть реквизит Артикул. В него скажем будет забито некое
число пусть начинающееся с 2 (уникальное для каждой позиции
напр.23456) и нужно доработать функцию, чтобы она понимала, что для ШК начинающийся на 2 нужно
искать по описанному алгоритму, а не по рег.сведений Штрихкоды.
1. В каком формате будет формироваться штрихкод по артикулу (EAN-13, EAN-128, CODE-39, e.t.c.)?
2. Если опустить проверки на тип, то у вас в заголовке процедуры приходит штрихкод в виде строки.
Что мешает сделать:
НашаНоменклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Штрихкод);
???
2. Если опустить проверки на тип, то у вас в заголовке процедуры приходит штрихкод в виде строки.
Что мешает сделать:
НашаНоменклатура = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Штрихкод);
???
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот