Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 ноя 2022, 21:47

Изменить цену для конкретного товара во всех документах установка цен номенклатуры - установить 5000

Автор Olia-BO, 28 сен 2022, 11:10

0 Пользователей и 1 гость просматривают эту тему.

Olia-BO

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

 

LexaK

Цитата: Olia-BO от 28 сен 2022, 11:10нужно Изменить цену для конкретного товара 
у вас не полная постановка задачи! еще необходимо знать КАКОЙ ВИД ЦЕНЫ необходимо менятьв,
так как в документе задаются разные цены
Розничные, Оптовые, Закупочные и т.д.
при этом учитывается единицы измерения, упаковка товара, Штуки, Коробки так как у них могут различаться цены
(если используется)

если хотите хорошо выполнить свою задачу, тогда необходимо использовать запрос, с помощью него получить
документы Установка цены именно с нужным товаром, (с нужным видом цены)

если абы как сдать задачу, то сойдет и ваш код, все перебрать в цикле, добавьте туда проверку условия на равенство номенклатуры заданной 
если помогло нажмите: Спасибо!

Olia-BO

Цитата: LexaK от 28 сен 2022, 11:28
Цитата: Olia-BO от 28 сен 2022, 11:10нужно Изменить цену для конкретного товара 
у вас не полная постановка задачи! еще необходимо знать КАКОЙ ВИД ЦЕНЫ необходимо менятьв,
так как в документе задаются разные цены
Розничные, Оптовые, Закупочные и т.д.
при этом учитывается единицы измерения, упаковка товара, Штуки, Коробки так как у них могут различаться цены
(если используется)

если хотите хорошо выполнить свою задачу, тогда необходимо использовать запрос, с помощью него получить
документы Установка цены именно с нужным товаром, (с нужным видом цены)

если абы как сдать задачу, то сойдет и ваш код, все перебрать в цикле, добавьте туда проверку условия на равенство номенклатуры заданной 

А может подскажете как это равенство правильно написать??

LexaK

Цитата: Olia-BO от 28 сен 2022, 15:55А может подскажете как это равенство правильно написать??
все так плохо?
равенство так пишется, примерно

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

Olia-BO

LexaK, Да. я тоже так пробовала делать... Не помогло. Хотя радует, что "по логике" мыслю в нужном направлении  :D  Спасибо :D

Olia-BO

Olia-BO, Процедура Изменение5000НаСервере()
   Выборка = Документы.УстановкаЦенНоменклатуры.Выбрать();
   Пока Выборка.Следующий() Цикл
      ТО = Выборка.ПолучитьОбъект();
      Для Каждого ТекСтр Из ТО.Данные Цикл
         Если ТекСтр.Номенклатура = ВыборНоменклатуры Тогда
         ТекСтр.Цена = 5000;
         КонецЕсли;
      КонецЦикла;
   КонецЦикла;
   ТО.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры


ВСЕ РАБОТАЕТ. :zebzdr:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск