Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Новичок! установление новых цен в справочнике!  (Прочитано 12305 раз)
0 Пользователей и 1 Гость смотрят эту тему.
zxc
Интересующийся

ru
Offline Offline

« : 06-03-2011 12:19 » 

Добрый вечер!
в поступление сделала кнопку обновить цены в справочнике, повесила на нее процедуру, но не могу сделать что бы обновлялась только та номенклатура у которой цена повысилась, а не уменьшилась.
Процедура...
создаю спр.цен
выбираю строки
получаю строку
использую владельца
и по том ищу по реквизиту и устанавливаю цену на дату документа.
 конецпроцедуры

помогите кто знает!!!
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 06-03-2011 19:57 » 

Перед установкой новой цены добавь проверку:
Код:
Если НоваяЦена>СтараяЦена Тогда
    //Присвоить и записать
КонецЕсли;
Записан
zxc
Интересующийся

ru
Offline Offline

« Ответ #2 : 07-03-2011 13:17 » 

Пробовала, не работает!
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 08-03-2011 20:35 » 

zxc, весь код в студию (только не забудь: [code]Твой код здесь...[/code])
Записан
zxc
Интересующийся

ru
Offline Offline

« Ответ #4 : 09-03-2011 13:59 » 

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

Если СпрЦен.НайтиПоРеквизиту ("ТипЦен", Константа.ОсновнаяЦенаПриобретения, 0)=1 тогда
ЦенаПриобретенияНайдена=1;
КонецЕсли;  

Если ЦенаПриобретенияНайдена=1 Тогда
СпрЦен.Цена.Установить (ДатаДок,Цена);
КонецЕсли;
КонецЦикла;
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 09-03-2011 14:18 » 

zxc, ну и где у тебя сравнение старой и новой цены?

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

Кстати - если ты делаешь это в обработке проведения документа - то можно использовать УстановитьРеквизитСправочника() (см. в справке). Тогда у тебя новое значение будет привязано к документу в просмотре истории
Записан
zxc
Интересующийся

ru
Offline Offline

« Ответ #6 : 09-03-2011 14:59 » 

делаю это в модуле форме.
но это я поняла, но а как сделать, что бы от заменял только только те цены которые увеличились  а не уменьшились??
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 09-03-2011 15:34 » 

Читать внимательно до просветления:
Перед установкой новой цены добавь проверку:
Код:
Если НоваяЦена>СтараяЦена Тогда
    //Присвоить и записать
КонецЕсли;
Записан
zxc
Интересующийся

ru
Offline Offline

« Ответ #8 : 11-03-2011 16:34 » new

а как обратится к старой цене?Не понял

Добавлено через 23 минуты и 58 секунд:
все сделала, РАБОТАЕТ!!!!! Улыбаюсь)
« Последнее редактирование: 11-03-2011 16:58 от 18031987A » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines