Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 21:48
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Автоматический пересчёт номенклатуры по новому курсу.  (Прочитано 759 раз)

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

Оффлайн xuor

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-05-20
  • Сайт: 
Доброго времени суток!

Платформа 1c 7.7, конфигурация: "Торговля и Склад", редакция 9.2

Пытаюсь сделать обработку для ручного выставления курса валюты и автоматического пересчёта номенклатуры по новому курсу.

Проблема заключается в следующем:
1. Не могу получить цену. глПолучитьЦену() всегда выдаёт 0
2. Не знаю как записать новую цену в справочник.

Код:
Процедура ПересчитатьЦены()
 
НовыйКурс = 50;
   
Спр=СоздатьОбъект("Справочник.Номенклатура"); 
СпрТипЦ =  СоздатьОбъект ("Справочник.ТипыЦен");

Спр.ВыбратьЭлементы();
СпрТипЦ.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл 
Если Спр.ЭтоГруппа()=0 Тогда
ТекЭл = Спр.ТекущийЭлемент();
СпрТипЦ.ВыбратьЭлементы();
Пока СпрТипЦ.ПолучитьЭлемент()=1 Цикл 
ТекТипЦен = СпрТипЦ.ТекущийЭлемент();
Если ТекТипЦен.Наименование = "Закупочные" Тогда
ЗакупочнаяЦенаТовара = глПолучитьЦену(ТекЭл.Наименование, ТекТипЦен, ТекущаяДата(), ТекЭл.БазоваяЕдиница,ТекТипЦен.Валюта,1);
Иначе     
ЦенаТовара = ЗакупочнаяЦенаТовара*НовыйКурс*(ТекТипЦен.Процент/100+1);
//Здесь нужно записать новую цену в справочник

КонецЕсли;
Сообщить (ТекТипЦен.Наименование + ЦенаТовара);
КонецЦикла;
КонецЕсли; 
КонецЦикла;
КонецПроцедуры
Прошу помочь.


Оффлайн xuor

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-05-20
  • Сайт: 
РЕШЕНО:

	НовыйКурс = 50;   

Спр=СоздатьОбъект("Справочник.Номенклатура"); 
СпрЦены =  СоздатьОбъект ("Справочник.Цены");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент()=1 Цикл 
Если Спр.ЭтоГруппа()=0 Тогда
ТекЭл = Спр.ТекущийЭлемент();
СпрЦены.ИспользоватьВладельца(ТекЭл);
СпрЦены.ВыбратьЭлементы();
Пока СпрЦены.ПолучитьЭлемент()=1 Цикл
Если СпрЦены.ТипЦен.Наименование = "Закупочные" Тогда
ЗакупочнаяЦенаТовара = СпрЦены.Цена.Получить(ТекущаяДата());
Иначе
ЦенаТовара = ЗакупочнаяЦенаТовара*НовыйКурс*(СпрЦены.ТипЦен.Процент/100+1);
ЦенаТовара = Окр(ЦенаТовара,2);        
СпрЦены.Цена.Установить(ТекущаяДата(),ЦенаТовара);
СпрЦены.Записать();
    Сообщить ("Новая цена   "+ТекЭл.Наименование+"   "+ЦенаТовара+СпрЦены.Валюта);
КонецЕсли;
КонецЦикла;
КонецЕсли; 
КонецЦикла;


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
141 Сообщений
AIFrame
73 Сообщений
ilyay ilyay
65 Сообщений
alex0402
52 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
31 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 349
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal