10.1
10.1. Магазин-15
При выгрузке документов инвентаризации из Магазин-15 не записываются штрихкоды товаров в УТ 10.3, а пишутся они название товара.
Для устранения это проблемы потребовалась доработки:
В общий серверный модуль добавим функцию поиск цифр в строке:
// Функция проверяет наличие в строке только цифр
// Параметры
// СтрокаПроверки - Строка для проверки только цифр
// Возвращаемое значение:
// Булево
Функция ЕстьНеЦифры(Знач СтрокаПроверки) Экспорт
Если ТипЗнч(СтрокаПроверки) <> Тип("Строка") Тогда
Возврат Истина;
КонецЕсли;
СтрокаПроверки = СокрЛП(СтрокаПроверки);
Длина = СтрДлина(СтрокаПроверки);
Для а = 1 По Длина Цикл
Если Найти("0123456789", Сред(СтрокаПроверки, а, 1)) = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
В модуле справочника номенклатура ПередЗаписью
//++ТоргВизор
ШК = Прав(СокрЛП(Наименование),13);
Если НЕ ТоргВизор.ЕстьНеЦифры(Прав(СокрЛП(Наименование),13)) Тогда
//Проверим наличие штрихкода
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Штрихкоды.Владелец КАК Владелец,
| Штрихкоды.Штрихкод КАК Штрихкод,
| Штрихкоды.ТипШтрихкода КАК ТипШтрихкода,
| Штрихкоды.ЕдиницаИзмерения КАК ЕдиницаИзмерения
|ИЗ
| РегистрСведений.Штрихкоды КАК Штрихкоды
|ГДЕ
| Штрихкоды.Штрихкод = &Штрихкод";
//Запрос.УстановитьПараметр("Владелец", Ссылка);
Запрос.УстановитьПараметр("Штрихкод", ШК);
РЗ = Запрос.Выполнить().Выгрузить();
Если РЗ.Количество() > 0 Тогда
Если РЗ[0].Владелец = Ссылка Тогда
Наименование = СтрЗаменить(Наименование,ШК,"");
НаименованиеПолное = Наименование;
Иначе
Комментарий = "Дубль штрихкода: ("+ШК+") с товаром:"+РЗ[0].Владелец;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если СтрНайти(Наименование,"Новый товар из ТСД") > 0 Тогда
Наименование = СокрЛП(СтрЗаменить(Наименование,"Новый товар из ТСД",""));
НаименованиеПолное = Наименование;
КонецЕсли;
//--ТоргВизор
В модуле справочника номенклатура ПриЗаписью
//++ТоргВизор
ШК = Прав(СокрЛП(Наименование),13);
Если НЕ ТоргВизор.ЕстьНеЦифры(Прав(СокрЛП(Наименование),13)) Тогда
//Проверим наличие штрихкода
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Штрихкоды.Владелец КАК Владелец,
| Штрихкоды.Штрихкод КАК Штрихкод,
| Штрихкоды.ТипШтрихкода КАК ТипШтрихкода,
| Штрихкоды.ЕдиницаИзмерения КАК ЕдиницаИзмерения
|ИЗ
| РегистрСведений.Штрихкоды КАК Штрихкоды
|ГДЕ
| Штрихкоды.Штрихкод = &Штрихкод";
//Запрос.УстановитьПараметр("Владелец", Ссылка);
Запрос.УстановитьПараметр("Штрихкод", ШК);
РЗ = Запрос.Выполнить().Выгрузить();
Если РЗ.Количество() = 0 Тогда
//ШтрихКод не найден
ТекЗапись = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
ТекЗапись.Владелец = Ссылка;
ТекЗапись.ЕдиницаИзмерения = ЕдиницаХраненияОстатков;
ТекЗапись.ТипШтрихкода = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
ТекЗапись.Качество = Справочники.Качество.Новый;
ТекЗапись.Штрихкод = ШК;
ТекЗапись.ПредставлениеШтрихкода = ШК;
Попытка
ТекЗапись.Записать();
Исключение
КонецПопытки;
КонецЕсли;
КонецЕсли;
//--ТоргВизор
После этих доработок ранее загруженную номенклатуру через ТСД надо перепезаписать групповой обработкной (как 1 из многих вариантов)

Похожая задача?
Расскажите, что у вас происходит — предложим план.