Имя: Пароль:
1C
 
Изменение реквизита ЕдиницаИзмерения справочника Номенклатура
0 NumSupra
 
08.04.25
10:11
ДВС!
Вроде задача простая. Розница 2.3. Есть элементы Номенклатуры без единиц измерения. Есть список номенклатуры в экселе для обработки.
В результате обработки часть элементов единицы заполнились, а часть нет. Ошибок никаких не выдает.
Предварительно Эксель читаю в табличный документ. Вот собственно код

ЕИ=Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию("шт");

Для НомерСтроки = 1 По (КоличествоСтрок) Цикл

        Ном = Справочники.Номенклатура.НайтиПоКоду(ТабДок.Область("R" + Формат(НомерСтроки, "ЧГ=0") + "C" + 1).Текст);
        Ном=Ном.ПолучитьОбъект();

        Ном.ЕдиницаИзмерения=ЕИ;  

        Попытка
                Ном.Записать();
        Исключение
                Сообщить (Ном.Наименование+"  "+ОписаниеОшибки());
        КонецПопытки;

КонецЦикла;
1 Ёпрст
 
08.04.25
10:19
Продолжайте наблюдение
2 NumSupra
 
08.04.25
10:27
А по существу? Не могу понять, в чем загвоздка
3 Ёпрст
 
08.04.25
10:28
(2) хз как там в рознице, в старых конфах единицы измерения были подчиненным справочником с владельцем номенклатура, и унутре у них был реквизит на океи
4 Ёпрст
 
08.04.25
10:28
В новых конфах, это вообще УпаковкиЕдиницыИзмерения.
5 Ёпрст
 
08.04.25
10:29
А ты, судя по коду..ищешь единицы измерения с другим владельцем + нет нигде проверок, что что-то нашлось/не нашлось по коду.
6 СвинТуз
 
08.04.25
10:46
НайтиПоКоду (FindByCode)
Синтаксис:
НайтиПоКоду(<Код>, <ПоискПоПолномуКоду>, <Родитель>, <Владелец>)
Параметры:
<Код> (обязательный)
Тип: Число, Строка.
Искомый код.
Строка или число в зависимости от настроек справочника в конфигураторе.
<ПоискПоПолномуКоду> (необязательный)
Тип: Булево.
Определяет режим поиска по полному коду. Истина - искомый код следует задавать в виде строки, состоящей из последовательности кодов по уровням справочника, разделенных символом "/".
Значение по умолчанию: Ложь.
<Родитель> (необязательный)
Тип: СправочникСсылка.<Имя справочника>.
Родитель, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
<Владелец> (необязательный)
Тип: СправочникСсылка.<Имя справочника>.
Владелец, в пределах которого нужно выполнять поиск. Если не указан, то поиск будет проводиться во всем справочнике.
Возвращаемое значение:
Тип: СправочникСсылка.<Имя справочника>, Неопределено.
Если не существует ни одного элемента с требуемым кодом, то будет возвращена пустая ссылка.
Если для справочника код не задан (длина = 0), то будет возвращено Неопределено.
7 СвинТуз
 
08.04.25
10:47
Найти по наименованию примерно та же история
8 Злопчинский
 
08.04.25
10:51
ЕИ=Справочники.БазовыеЕдиницыИзмерения.НайтиПоНаименованию("шт");
я сильно сомневаюсь что так правильно. Можно, наверное, не неправильно.
Скорее всего в конфиге определена какая-нить контаната или глобальная переменная которая определяет "шт"
9 NumSupra
 
08.04.25
11:08
Проверки были, убрал чтобы не загромождать код.
10 NumSupra
 
08.04.25
11:10
В часть номенклатуры этот код добавил Единицы измерения, а в часть нет
11 Ногаминебить
 
08.04.25
11:27
Оставить в екселе 1 строчку (ту, которая не нашлась), запустить отладчик. Ну и все. :)
12 NumSupra
 
08.04.25
12:03
Всем спасибо. Как говорится одна голова хорошо, а без неё смешнее. Код работал, проблема была в том что у некоторых элементов был заполнен реквизит НаборУпаковок. Ёпрст, вам отдельное спасибо, натолкнули на решение. Всем ХОРОШЕГО ДНЯ
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший