Имя: Пароль:
1C
1С v8
Метод объекта не обнаружен (ПолучитьОбъект)
, ,
0 zver925
 
18.04.19
10:07
Здравствуйте, я новиок в этом, можете подсказать и обьяснить что я делаю не так, внешняя обработка, 2 реквизита в форме: Номенклатура и перечисления.ставкиНдс, с помощию команды пытаюсь установить НДС во всей номенклатуре.

&НаКлиенте
Процедура УстановитьСтавкуНдс(Команда)
    УстановитьСтавкуНДСНаСервере();
КонецПроцедуры
&НаСервере
Процедура установитьСтавкуНДСНаСервере();
      Запрос = новый запрос();
      Запрос.Текст =
         "ВЫБРАТЬ
         |    Номенклатура.СтавкаНДС КАК СтавкаНДС
         |ИЗ
         |    Справочник.Номенклатура КАК Номенклатура
         |ГДЕ
         |    Номенклатура.СтавкаНДС = &СтавкаНДС";
Запрос.УстановитьПараметр("СтавкаНДС",СтавкаНДС);
//РезЗапроса = Запрос.Выполнить;
Номенклатура.СтавкаНДС.ПолучитьОбъект();
Перечисления.СтавкиНдс.ПолучитьОбъект();
Объект.СтавкаНДС = объект.СтавкиНдс;
Объект.СтавкаНДС.записать();

    Сообщить ("Ставка ндс изменена на" + ЭтаФорма.Номенклатура.СтавкаНДС)
      
    
КонецПроцедуры
1 shuhard
 
18.04.19
10:08
(0) "ВЫБРАТЬ
         |    Номенклатура.ссылка  КАК ТМЦ
         |ИЗ
         |    Справочник.Номенклатура КАК Номенклатура
         |ГДЕ
         |    Номенклатура.СтавкаНДС = &СтавкаНДС";
2 vdeemer
 
18.04.19
10:14
(0) может групповой обработки справочников будет вполне достаточно, чтобы не ваять нетленку?
3 SSSSS_AAAAA
 
18.04.19
10:14
(0) Делаешь не так всё.
Зачем выбирать значения ставок, если таки надо обработать номенклатуру?
Зачем выбирать то, на что хочешь заменить? Может таки что-то другое, на равное тому, на что хочешь менять?
Результат запроса надо обрабатывать.
Для изменения ставки НДС в номенклатуре надо получать объект номенклатуры, а не ставки НДС.
Метод записать есть ку объекта, а не его реквизитов..
4 ДенисЧ
 
18.04.19
10:15
Где выполнение запроса, где выборка из него?
5 НЕА123
 
18.04.19
10:22
ТС шутит что-ли так?
6 piter3
 
18.04.19
10:23
(5) новый подаван франчей)
7 Darych
 
18.04.19
10:24
(5) ага, выбирает ставку ндс, которую параметром передает))
8 Eg0rkas
 
18.04.19
10:57
как-то так наверное

Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Ссылка
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    Номенклатура.СтавкаНДС <> &СтавкаНДС";
    
    Запрос.УстановитьПараметр("СтавкаНДС", Объект.СтавкаНДС);    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ОбъектНоменклатура = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
        ОбъектНоменклатура.СтавкаНДС = Объект.СтавкаНДС; //либо Перечисления.СтавкиНДС.Ставка20
        ОбъектНоменклатура.Записать();
    КонецЦикла;
9 piter3
 
18.04.19
10:58
И еще пропускаете,что может быть пустаяссылка
10 ДенисЧ
 
18.04.19
11:00
(8) Работаете на бисерной фабрике?
11 Eg0rkas
 
18.04.19
11:07
(10) нет, накидал в учебной базе по быстрому. я и сам стажер еще в общем-то
12 Йохохо
 
18.04.19
11:17
(11) санкта симплиситас против дабл пенетрейшен, раз уж сегодня пятница пронеслась
13 VladZ
 
18.04.19
11:28
(0) Совет на будущее:  ошибка вида "Метод объекта не обнаружен (ПолучитьОбъект)" означает, что ты написал бред. Открываешь букварь и читаешь описание.
14 AlvlSpb
 
18.04.19
13:04
(0) Самый дельный совет в (2). Все давно придумано до нас. В любой типовой есть обработка Групповое изменение справочников и документов. Это то что тебе надо
15 catena
 
18.04.19
13:09
(14)Особенно при решении тестовых задач))
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший