Имя: Пароль:
1C
1С v8
Обновить значения элемента справочника.
0 Pyryrym
 
03.08.20
17:51
У меня есть таблица значений с элементами, значения которых нужно обновить в справочнике номенклатура, если такие найдутся.
Вот код:

Процедура ЗагрузитьНаСервере()
    
    ТЗ = ПолучитьТЗ();
    Для Каждого Строка Из ТЗ Цикл
        Если Объект.КлючПоиска = "Артикул" Тогда
            НайденныйЭлемент = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Строка(Строка.Артикул));
        ИначеЕсли Объект.КлючПоиска = "Код" Тогда
            НайденныйЭлемент = Справочники.Номенклатура.НайтиПоКоду(Строка(Строка.Код));
        ИначеЕсли Объект.КлючПоиска = "Наименование" Тогда
            НайденныйЭлемент = Справочники.Номенклатура.НайтиПоНаименованию(Строка(Строка.Наименование));    
        Иначе ТогдаНайденныйЭлемент = 0;    
        КонецЕсли;
        
        Если НайденныйЭлемент <> 0 Тогда
            //Обновить элемент
            НайденныйЭлементОбъект = НайденныйЭлемент.ПолучитьОбъект();
            НайденныйЭлементОбъект.Артикул = Строка.Артикул;
            НайденныйЭлементОбъект.Производитель = Строка.Производитель;
            НайденныйЭлементОбъект.ЕдиницаИзмерения = Строка.ЕдиницаИзмерения;
            НайденныйЭлементОбъект.ВидНоменклатуры = Строка.Группа;
            НайденныйЭлементОбъект.Записать();
        КонецЕсли;    
    КонецЦикла;    
    
КонецПроцедуры


Ошибка:
{ВнешняяОбработка.ЗагрузкаСправочникаТоваров.Форма.Форма.Форма(17)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
            НайденныйЭлементОбъект = НайденныйЭлемент.ПолучитьОбъект();
по причине:
Элемент не выбран!
1 Beduin
 
03.08.20
17:53
(0) он не равен нулю если не найден
Если НайденныйЭлемент <> 0 Тогда
2 dka80
 
03.08.20
17:54
НайтиПоНаименованию возвращает пустое значение данного типа, если ненайдено
Если значениезаполнено(НайденныйЭлемент) тогда
3 Amra
 
03.08.20
17:54
НайденныйЭлемент <> 0  будет истинно всегда
4 Beduin
 
03.08.20
17:56
(0) Ты лучше скажи, чисто для понимания. Как в программирование 1С попал? Историю саму.
5 Pyryrym
 
03.08.20
17:58
(4) По университету надо
6 Beduin
 
03.08.20
18:01
(5) А универ программерский, какой факультет.
7 Pyryrym
 
03.08.20
18:02
(6) Информационные системы и технологии, не совсем программирование
8 lEvGl
 
гуру
03.08.20
18:03
(6) не первый десяток лет каждого второго называют программером
9 lEvGl
 
гуру
03.08.20
18:04
тыжпрограммист ёпырст,сделай мне котиком! О_о
10 lodger
 
03.08.20
18:05
банальные опечатки и незнание входов и выходов используемых методов.
11 Pyryrym
 
03.08.20
18:07
Я программирую считай неделю
12 Beduin
 
03.08.20
18:07
(7) Ну ИТ направление. Я поэтому тебе пояснить хотел. Как быстро такие проблемы находить.
Если НайденныйЭлемент <> 0 Тогда
Слева у тебя выражение, которое может получится из трех методов НайтиПоРеквизиту,НайтиПоКоду,НайтиПоНаименованию.
Тебе надо в справочнике посмотреть возвращаемые значения. У любых функций есть какой-то тип данных, который она возвращает. И сравнивать тебе необходимо одинаковые типы данных.
13 Beduin
 
03.08.20
18:08
(11) А какой курс в универе?
14 Pyryrym
 
03.08.20
18:08
(12) Спасибо, 4
15 Beduin
 
03.08.20
18:09
(14) На 4 курсе "Информационные системы и технологии" только программирование вводят?!!!
16 Pyryrym
 
03.08.20
18:10
(15) У нас было на первом структурное, по большей части мы писали на бумаге, было еще ООП, но там ограничивалось созданием классов с наследованием, списками и прочим
17 Beduin
 
03.08.20
18:12
(16) Это в Москве так учат?
18 Pyryrym
 
03.08.20
18:13
(17) Да
19 acht
 
03.08.20
22:26
(11) > считай неделю
От Ошибка "нельзя изменять поле содержащее объект данных формы" - полтора месяца.
Чем занимался?
20 acht
 
03.08.20
22:26
LDt (11) > считай неделю
От Ошибка "нельзя изменять поле содержащее объект данных формы" - полтора месяца.
Чем занимался?
21 acht
 
03.08.20
22:27
Ну хорошо, две недели =)
22 lodger
 
04.08.20
10:23
(20) пиво пил, вестимо. вы студентов будто не знаете.
23 Pyryrym
 
04.08.20
13:27
(20) Ждал пока примут задание