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

РегистрСведении

Автор sachok7778, 05 янв 2012, 19:57

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

sachok7778

Короче есть
1. РегистрСведений=Цены;Измерение:Номенклатура, Ресурс: Цена.
2. Есть Документ=Приходная и Расходная

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

Dethmontt

И что тебе в этом мешает?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Public_enemy

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


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


&НаКлиенте
Процедура ТаблицаПокупокНоменклатураПриИзменении(Элемент)
 

    Строка = Элементы.ТаблицаПокупок.ТекущиеДанные;
                                           
   Строка.Цена   = РаботаСоСправочниками.РознечнаяЦена(Объект.Дата, Строка.Номенклатура);

КонецПроцедуры

красным выделено то как вызывается функция
В параметрах передаешь дату и номенклатуру


Public_enemy

еще можно с помощью запроса получить такие данные

sachok7778

Цитата: Березин от 06 янв 2012, 00:06
Цитата: sachok7778 от 05 янв 2012, 19:57
Короче есть
1. РегистрСведений=Цены;Измерение:Номенклатура, Ресурс: Цена.
2. Есть Документ=Приходная и Расходная

Мне надо чтобы когда выбираю в документе номенклатуру чтобы  поставились актуальные цены автоматически к данному товару.
В натуре, братан,
может тебе еще телка, тачка, хата нужны.
Ты только скажи. А то я спать не могу, как вот таким хачикам услужить хочу. Короче, может тебе ботинки еще почистить?

если не знаешь  ответ, не влезай
мой вопрос к тем кто знает ответ

Шурик_1985

Можно сделать при активации строки, потом запрос на сервере :

Процедура ПолучитьЦенуНаНоменклатура (Номенклатура) Экспорт
   
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ЦеныНоменклатурыСрезПоследних.ВидЦен,
      |   ЦеныНоменклатурыСрезПоследних.Цена
      |ИЗ
      |   РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
      |ГДЕ
      |   ЦеныНоменклатурыСрезПоследних.Номенклатура = &Номенклатура";

   Запрос.УстановитьПараметр("Номенклатура", Справочники.Номенклатура.НайтиПоНаименованию(Номенклатура));
   ЭтаФорма.Цена.Загрузить(Запрос.Выполнить().Выгрузить());

КонецПроцедуры;

sachok7778

есть общий модуль: Имя: РаботаСоСправочниками.

Функция РозничнаяЦена(АктуальнаяДата,ЭлементНоменклатуры) Экспорт
   Отбор = Новый Структура("Номенклатура",ЭлементНоменклатуры);
   ЗначРесурсов=РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,Отбор);
   Возврат ЗначРесурсов.Цена;               
КонецФункции // РозничнаяЦена()


Вызываю из модуля формы:

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

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

{ОбщийМодуль.РаботаСоСправочниками.Модуль(3)}: Ошибка при вызове метода контекста (ПолучитьПоследнее): Недопустимое значение параметра (параметр номер '2')
   ЗначРесурсов=РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,Отбор);
Недопустимое значение параметра (параметр номер '2')

Вроде все сделал норм но не могу понять в чем проблема

Dethmontt

В регистре измерение номенклатура индексируется???
Если нет, то только запросом. Или про индексируй измерение номенклатура!!!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

sachok7778

Цитата: Dethmontt от 11 янв 2012, 22:38
В регистре измерение номенклатура индексируется???
Если нет, то только запросом. Или про индексируй измерение номенклатура!!!

Поставил индексировать все равно. ошибка показывает здесь:
ЗначРесурсов=РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,Отбор);

{ОбщийМодуль.РаботаСоСправочниками.Модуль(3)}: Ошибка при вызове метода контекста (ПолучитьПоследнее): Недопустимое значение параметра (параметр номер '2')
   ЗначРесурсов=РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,Отбор);
Недопустимое значение параметра (параметр номер '2')


Кстати  я все делаю по книге Радченко но пока не получается

Dethmontt

Выложи сюда конфу
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Теги:
Рейтинг@Mail.ru

Поиск