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 из многих вариантов)

Похожая задача?

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