Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0
1С Предприятие - 7.70.027 Торговля+Склад для Украины 7.70.013 Подскажите пожалуйста как получить цену товара и изменить ее. У меня постоянно возникает необходимость сформировать цены на различные группы товаров. На некоторые оптовая=закупка+20, розница=закупка+30, консигнация и пр. На другие группы товаров другие проценты наценки. Обычно делаю это вручную, используя "Формирование цен", но т.к. групп много и наценки разные, то решил написать обработку с прописанными в ней группами и наценками. Что б просто можно было нажатием одной кнопки сделать монотонную работы быстро. Но не могу никак разобраться как получить в цикле закупочную цену на товар. Понимаю что вопрос наверно "детский", но я пока только учусь... Подскажите пожалуйста. Спасибо.
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(Vofka @ 03.08.10, 14:56)
Код обработки покажите
Дак нет пока кода обработки. Я не знаю как получить цены товара (закупочная, розница и пр.) Мне хотя б простой пример, как получить например закупочную цену товара, а дальше я надеюсь что додумаю сам. Может есть какой-то приблизя пример?
Пока Спр.ПолучитьЭлемент()=1 Цикл усл="Старое"; родит=СокрЛП(Спр.Родитель); Если родит = усл Тогда; СпрТипыЦен.НайтиПоНаименованию("Оптовая",0); ТипЦен = СпрТипыЦен.ТекущийЭлемент();
Возможно все и не верно, но пока застрял вообще на мертво.
Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Цены.ИспользоватьВладельца(Спр.ТекущийЭлемент()); Цены.ВыбратьЭлементы(); Пока Цены.ПолучитьЭлемент() = 1 Цикл // в этом цикле получим все цены КонецЦикла; КонецЦикла;
Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Цены.ИспользоватьВладельца(Спр.ТекущийЭлемент()); Цены.ВыбратьЭлементы(); Пока Цены.ПолучитьЭлемент() = 1 Цикл // в этом цикле получим все цены КонецЦикла; КонецЦикла;
Ага, понимаю, спасибо за подсказку. А как вот например тут выдрать закупочную. Т.е. как сослаться на тип цены "закупочная"?. Вот к примеру ее нужно просто умножить на 2. Пока не могу допереть.
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(Vofka @ 03.08.10, 17:25)
За правильность не отвечаю, надо пробовать. Навскидку (во 2 цикле):
Если Цены.Наименование = "Закупочная" Тогда // производим нужные действия КонецЕсли;
Все вроде получается верно, но по прежнему не могу допереть как считать цену. Пробовал вот так:
Пока Цены.ПолучитьЭлемент() = 1 Цикл // в этом цикле получим все цены Если Цены.Наименование = "Закупочная" Тогда // производим нужные действия Закупка=Цены.Цена; КонецЕсли; КонецЦикла;
Абсурд получается. Просто мне для проведения арифметических операций необходимо занести информацию в переменные, а дальше уже проведя арифметические оп-ции, перегнать цифры из переменных опять в базу. Во как... Ведь получается что в справочнике Цены есть поле Цена, но оно не считывается. ...или я что-то не верно делаю.
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(alex1c @ 03.08.10, 22:12)
В меню "сервис - Формирование цен" помоему все что автор хотел, есть... Или я ошибаюсь...
Конечно есть, но прочтите мое первое сообщение. Если делать через "Формирование цен", у меня это займет кучу времени. Т.к. на разные группы товара, нужны разные наценки. Групп много. Поэтому и приходится извращаться.
Спр.ВыбратьЭлементы(); Пока Спр.ПолучитьЭлемент() = 1 Цикл
Если СокрЛП(Спр.Родитель) = "Аккумуляторы" Тогда; Если Спр.ЭтоГруппа()<1 Тогда
Цены.ИспользоватьВладельца(Спр.ТекущийЭлемент()); Цены.ВыбратьЭлементы(); Пока Цены.ПолучитьЭлемент() = 1 Цикл Сообщить(Цены.Наименование); КонецЦикла;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!