Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как изменить цену товара 2 страниц V   1 2 >          
nonsens Подменю пользователя
сообщение 03.08.10, 12:05
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

1С Предприятие - 7.70.027
Торговля+Склад для Украины 7.70.013
Подскажите пожалуйста как получить цену товара и изменить ее. У меня постоянно возникает необходимость сформировать цены на различные группы товаров. На некоторые оптовая=закупка+20, розница=закупка+30, консигнация и пр. На другие группы товаров другие проценты наценки. Обычно делаю это вручную, используя "Формирование цен", но т.к. групп много и наценки разные, то решил написать обработку с прописанными в ней группами и наценками. Что б просто можно было нажатием одной кнопки сделать монотонную работы быстро.
Но не могу никак разобраться как получить в цикле закупочную цену на товар. Понимаю что вопрос наверно "детский", но я пока только учусь... Подскажите пожалуйста. Спасибо.

Vofka Подменю пользователя
сообщение 03.08.10, 12:56
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Код обработки покажите

nonsens Подменю пользователя
сообщение 03.08.10, 13:24
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(Vofka @ 03.08.10, 14:56) *
Код обработки покажите

Дак нет пока кода обработки. Я не знаю как получить цены товара (закупочная, розница и пр.) Мне хотя б простой пример, как получить например закупочную цену товара, а дальше я надеюсь что додумаю сам. Может есть какой-то приблизя пример?

akella Подменю пользователя
сообщение 03.08.10, 13:29
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 54
Спасибо сказали: 0 раз
Рейтинг: 0

ну а где хранятся эти цены?
справочник какой нить?

nonsens Подменю пользователя
сообщение 03.08.10, 13:33
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(akella @ 03.08.10, 15:29) *
ну а где хранятся эти цены?
справочник какой нить?

Ну да, конфигурация стандартная, поэтому цены хранятся в справочнике "цены", который в свою очередь подчинен "Номенклатуре".

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


Возможно все и не верно, но пока застрял вообще на мертво.

Vofka Подменю пользователя
сообщение 03.08.10, 15:14
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Что-то вообще не то.
Я думаю как-то так:

Спр = СоздатьОбъект("Справочник.Номенклатура");
Цены = СоздатьОбъект("Справочник.Цены");

Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Цены.ИспользоватьВладельца(Спр.ТекущийЭлемент());
Цены.ВыбратьЭлементы();
Пока Цены.ПолучитьЭлемент() = 1 Цикл // в этом цикле получим все цены
КонецЦикла;
КонецЦикла;

Спасибо сказали: nonsens,

nonsens Подменю пользователя
сообщение 03.08.10, 15:22
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(Vofka @ 03.08.10, 17:14) *
Что-то вообще не то.
Я думаю как-то так:

Спр = СоздатьОбъект("Справочник.Номенклатура");
Цены = СоздатьОбъект("Справочник.Цены");

Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Цены.ИспользоватьВладельца(Спр.ТекущийЭлемент());
Цены.ВыбратьЭлементы();
Пока Цены.ПолучитьЭлемент() = 1 Цикл // в этом цикле получим все цены
КонецЦикла;
КонецЦикла;


Ага, понимаю, спасибо за подсказку. А как вот например тут выдрать закупочную. Т.е. как сослаться на тип цены "закупочная"?. Вот к примеру ее нужно просто умножить на 2. Пока не могу допереть.

Vofka Подменю пользователя
сообщение 03.08.10, 15:25
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Цитата
Ага, понимаю, спасибо за подсказку.

У нас для "спасибо" есть кнопка специальная wink.gif

Цитата
А как вот например тут выдрать закупочную.

За правильность не отвечаю, надо пробовать. Навскидку (во 2 цикле):

Если Цены.Наименование = "Закупочная" Тогда
// производим нужные действия
КонецЕсли;

Спасибо сказали: nonsens,

nonsens Подменю пользователя
сообщение 03.08.10, 15:46
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(Vofka @ 03.08.10, 17:25) *
За правильность не отвечаю, надо пробовать. Навскидку (во 2 цикле):

Если Цены.Наименование = "Закупочная" Тогда
// производим нужные действия
КонецЕсли;

Все вроде получается верно, но по прежнему не могу допереть как считать цену. Пробовал вот так:
Пока Цены.ПолучитьЭлемент() = 1 Цикл // в этом цикле получим все цены 
    Если Цены.Наименование = "Закупочная" Тогда
// производим нужные действия
Закупка=Цены.Цена;
КонецЕсли;
КонецЦикла;

Абсурд получается. Просто мне для проведения арифметических операций необходимо занести информацию в переменные, а дальше уже проведя арифметические оп-ции, перегнать цифры из переменных опять в базу. Во как...
Ведь получается что в справочнике Цены есть поле Цена, но оно не считывается. ...или я что-то не верно делаю.

Vofka Подменю пользователя
сообщение 03.08.10, 15:49
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Это не абсурд, это периодический реквизит! Посмотрите в СП методы работы с периодическими реквизитами.

Спасибо сказали: nonsens,

nonsens Подменю пользователя
сообщение 03.08.10, 16:02
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(Vofka @ 03.08.10, 17:49) *
Это не абсурд, это периодический реквизит! Посмотрите в СП методы работы с периодическими реквизитами.

Ай спасибо! Взял вот так:
Закупка=Цены.Цена.Получить();


Щас буду думать как обыграть весь процесс с учетом всего задуманного.

Вместо условия использовал:

Цены.НайтиПоНаименованию("Закупочная");


P.S. Жаль что нет кнопки "Большое спасибо" smile.gif

alex1c Подменю пользователя
сообщение 03.08.10, 20:12
Сообщение #12

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 237
Спасибо сказали: 47 раз
Рейтинг: 42

В меню "сервис - Формирование цен" помоему все что автор хотел, есть...
Или я ошибаюсь...

Vofka Подменю пользователя
сообщение 04.08.10, 6:59
Сообщение #13

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Пожалуйста smile.gif

nonsens Подменю пользователя
сообщение 04.08.10, 7:21
Сообщение #14

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(alex1c @ 03.08.10, 22:12) *
В меню "сервис - Формирование цен" помоему все что автор хотел, есть...
Или я ошибаюсь...

Конечно есть, но прочтите мое первое сообщение. Если делать через "Формирование цен", у меня это займет кучу времени. Т.к. на разные группы товара, нужны разные наценки. Групп много. Поэтому и приходится извращаться. 32000000.gif

nonsens Подменю пользователя
сообщение 04.08.10, 21:18
Сообщение #15

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Блин, все равно не работает. Вот что получилось:

Процедура Сформировать()                          
    Спр = СоздатьОбъект("Справочник.Номенклатура");
Цены = СоздатьОбъект("Справочник.Цены");
Цены.ИспользоватьДату(ТекущаяДата());

Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл  

Если СокрЛП(Спр.Родитель) = "Аккумуляторы" Тогда;
Если Спр.ЭтоГруппа()<1 Тогда    

Цены.ИспользоватьВладельца(Спр.ТекущийЭлемент());

Если Цены.НайтиПоНаименованию("Закупочная") = 1 Тогда
    Сообщить("Закупка"+Спр.ТекущийЭлемент());
Закупка=Цены.Цена;
КонецЕсли;

Если Цены.НайтиПоНаименованию("Розница") = 1 Тогда
Цены.Цена=Закупка*0.25;
//Цены.Записать();
КонецЕсли;

КонецЕсли;
КонецЕсли;

КонецЦикла;
КонецПроцедуры


Не находит тип цены "Розница", как собсно и других типов. Уж даже и не знаю где рыть. sad.gif

logist Подменю пользователя
сообщение 04.08.10, 21:55
Сообщение #16

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

А закупочная цена есть всегда? Может не нашлась закупочная цена, то тогда и розница будет 0


Signature
Личные бесплатные консультации не даю, для этого есть форум!

nonsens Подменю пользователя
сообщение 05.08.10, 6:46
Сообщение #17

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Цитата(logist @ 04.08.10, 23:55) *
А закупочная цена есть всегда? Может не нашлась закупочная цена, то тогда и розница будет 0


Да, я проверил. Она есть всегда.

Vofka Подменю пользователя
сообщение 05.08.10, 6:55
Сообщение #18

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Тип цен точно называется "Розница"? Не "Розничная"?

nonsens Подменю пользователя
сообщение 05.08.10, 7:02
Сообщение #19

Общительный
**
Группа: Пользователи
Сообщений: 25
Из: Украина
Спасибо сказали: 2 раз
Рейтинг: 0

Да, я проверил. И даже скопировал тип цены из справочника прямо в обработку.

Vofka Подменю пользователя
сообщение 05.08.10, 7:07
Сообщение #20

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13988
Из: Киев
Спасибо сказали: 4562 раз
Рейтинг: 3690.8

Процедура Сформировать()                          
    Спр = СоздатьОбъект("Справочник.Номенклатура");
Цены = СоздатьОбъект("Справочник.Цены");
Цены.ИспользоватьДату(ТекущаяДата());

Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл  

Если СокрЛП(Спр.Родитель) = "Аккумуляторы" Тогда;
Если Спр.ЭтоГруппа()<1 Тогда    

Цены.ИспользоватьВладельца(Спр.ТекущийЭлемент());
Цены.ВыбратьЭлементы();
Пока Цены.ПолучитьЭлемент() = 1 Цикл
Сообщить(Цены.Наименование);
КонецЦикла;

КонецЕсли;
КонецЕсли;

КонецЦикла;
КонецПроцедуры


что выводит?

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 01.11.24, 1:09
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!