Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Поменять ставку ндс у всех элементов группы справочника УТ 11.1

Поменять ставку ндс у всех элементов группы справочника УТ 11.1
Я
   anshnine
 
09.02.21 - 13:01
Добрый день. Есть необходимость поменять у всех элементов  определённой группы справочника ставку ндс на 20% , если такая еще не стоит. Решил это делать через запрос. Получаю все позиции определенной группы , где ндс не равен 20% и уже там пытаюсь перезаписать. Но дело в том что запись не происходит, если у товара стояла БезНДС то так и остается. На самой форме вобще нет возможности вручную изменить ставку , заблокировано. Групповая обработка по изменению реквизитов не работает на этой конфигураци..сказывается очень много допилов и так далее. Видимо , я что-то делаю не так или проблема и правда заключается втом , что реквзит не доступен для редактирования , но я не смог его разблокировать


Группа =Справочники.Номенклатура.НайтиПоНаименованию("ПрограммноеОбеспечение");
запрос = Новый Запрос;
НДС20 = Перечисления.СтавкиНДС.БезНДС;

Запрос.Текст="ВЫБРАТЬ
              |    Номенклатура.Ссылка,
              |    Номенклатура.ЭтоГруппа,
              |    Номенклатура.Родитель,
              |    Номенклатура.Наименование,
              |    Номенклатура.СтавкаНДС
              |ИЗ
              |    Справочник.Номенклатура КАК Номенклатура
              |ГДЕ
              |    Номенклатура.Родитель = &Группа
              |    И Номенклатура.ЭтоГруппа = &Ложь
              |    И Номенклатура.СтавкаНДС <> &НДС20"   ;
Запрос.УстановитьПараметр("Группа",Группа);
  Запрос.УстановитьПараметр("Ложь",Ложь);
  Запрос.УстановитьПараметр("НДС20",НДС20);

РезультатЗапроса = Запрос.Выполнить();  
Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
     //Выборка.Ссылка.ПолучитьОбъект().СтавкаНДС.Доступность = Истина;
     Выборка.Ссылка.ПолучитьОбъект().СтавкаНДС=НДС20;
     Выборка.Ссылка.ПолучитьОбъект().Записать();
КонецЦикла;
   Галахад
 
1 - 09.02.21 - 13:07
Выборка.Ссылка.ПолучитьОбъект()...
Выборка.Ссылка.ПолучитьОбъект()...
Это разные объекты.
   hhhh
 
2 - 09.02.21 - 13:16
(0) да, и вот это хрень

НДС20 = Перечисления.СтавкиНДС.БезНДС;
   mikecool
 
3 - 09.02.21 - 13:18
(0) используй инструменты разработчика и не пиши больше такой код
   Галахад
 
4 - 09.02.21 - 13:22
(3) Хм, а чем лучше "не писать"?
   sitex
 
5 - 09.02.21 - 13:26
(0) Куча обработок уже создано - пересоздано . Зачем писать эту Дичь*?
   hhhh
 
6 - 09.02.21 - 13:28
(0) откойте Администрирование - обслуживание и там где-то есть пункт Групповое изменение реквизитов
   anshnine
 
7 - 09.02.21 - 13:31
(2) Тут согласен , изначально там ндс20 было , просто тестировал изменения и скинул сюда в таком виде.
(5) в свободном доступе обработки найти не всегда получается , а если и получается то не факт , что она взлетит на конктреной конфигурации..В данном случае пишу для себя , использовать один раз и удалить ее нафиг , не на продажу...
(6) Как уже сказал , данной обработки нет в конфе , скачивал ее под 11.1 но там из-за ошибок совместимости или что-то такое не запустилась . В любом случае спасибо за совет
   azernot
 
8 - 09.02.21 - 13:31
Пока Выборка.Следующий() Цикл

     Объект = Выборка.Ссылка.ПолучитьОбъект();
     Объект.СтавкаНДС=НДС20;
     Объект.Записать();

КонецЦикла;

И будет счастье
   Krendel
 
9 - 09.02.21 - 13:33
(0) а нафига ты пишешь обработку если это Типовой функционал, типовая обработка поиск и замена значений
   d_monah
 
10 - 09.02.21 - 13:36
(6) И там ОбменДанными.Загрузка=Истина ,НДС вроде просто так не меняется,если номенклатуру использовали

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.