8.х Выборка ТиповЦен из РегистраСведений

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Pavel2009, 26 фев 2011.

  1. TopicStarter Overlay
    Pavel2009
    Offline

    Pavel2009 Опытный в 1С

    Регистрация:
    11 окт 2010
    Сообщения:
    183
    Симпатии:
    0
    Баллы:
    26
    Добрый День!
    Пытаюсь в ПриходнойНакладной, чтобы в форме при выборе Наименование(из Справочника, Номенклатура) и потом при выборе Типы цен (Справочник ТипыЦен), автоматически в поле цена, подставлялось значение из РегистраСведений;

    РегистрСведений
    Измерение - Номенклатура(Справочник.Номенклатура)
    Ресурсы - ЗакупочнаяЦена
    ОптоваяЦена
    РозничнаяЦена

    Не получается! Может я как то, не так подхожу, к самому механизму отбора по ТипуЦен?

    Код:
     ТекущаяСтрока=ЭлементыФормы.ПродажаТоваров1.ТекущиеДанные;
    //Ищу Закупочную  и Оптовую цену в справочнике ТипыЦен
    Закупочная=Справочники.ТипыЦен.НайтиПоКоду("000000001");
    Оптовая=Справочники.ТипыЦен.НайтиПоКоду("000000002");
    //Выбираю ЗакупочнуюЦену и ОптовуюЦену из РегистраСведений
    Регистр=РегистрыСведений.ЦеныНоменклатуры.Выбрать();
    Пока Рег.Следующий()Цикл
    РегистрЗакупоч=Рег.ЗакупочнаяЦена;
    РегистрОптовая=Рег.ОптоваяЦена;
    //Присваиваю Закупочной и Оптовой из справочника, найденному в Регистре
    Закупочная=РегистрЗакупоч;
    Оптовая=РегистрОптовая;
    
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Дата",ТекущаяДата());
    Запрос.УстановитьПараметр("Номенклатура", ТекущаяСтрока.Наименование);
    Запрос.УстановитьПараметр("ЗакупочнаяЦена",ТекущаяСтрока.ТипыЦен);
    Запрос.УстановитьПараметр("ОптоваяЦена",ТекущаяСтрока.ТипыЦен);
    Запрос.Текст = "ВЫБРАТЬ
    |	ЦеныНоменклатурыСрезПоследних.Номенклатура,
    |	ЦеныНоменклатурыСрезПоследних.ЗакупочнаяЦена
    |   ЦеныНоменклатурыСрезПоследних.ОптоваяЦена
    |ИЗ
    |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    |			&Дата,
    |			Номенклатура = &Номенклатура
    |				И ЗакупочнаяЦена = &ЗакупочнаяЦена
    | И ОптоваяЦена = &ОптоваяЦена ) КАК ЦеныНоменклатурыСрезПоследних";
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    Пока Выборка.Следующий() Цикл
    ТекущаяСтрока.Цена=Выборка.ЗакупочнаяЦена;
    ТекущаяСтрока.Цена=Выборка.ОптоваяЦена;
    КонецЦикла;
    
    КонецЦикла;
    
    КонецПроцедуры
    
    

    Вложения:

  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не так подходите.
    Регистр сведений должен иметь структуру:
    Измерение - Номенклатура(Справочник.Номенклатура)
    Измерение - ТипЦен(Справочник.ТипыЦен)
    Ресурс - Цена

    Дальше как-то так:
    Код:
    ТекущаяСтрока=ЭлементыФормы.ПродажаТоваров1.ТекущиеДанные;
    Если ТекущаяСтрока = Неопределено Тогда
    Возврат;
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Дата",ТекущаяДата());
    Запрос.УстановитьПараметр("Номенклатура", ТекущаяСтрока.Наименование);
    Запрос.УстановитьПараметр("ТипЦен",ТекущаяСтрока.ТипыЦен);
    Запрос.Текст = "ВЫБРАТЬ
    |	ЦеныНоменклатурыСрезПоследних.Цена
    |ИЗ
    |	РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
    |			&Дата,
    |			Номенклатура = &Номенклатура
    |				И ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних";
    
    
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    ТекущаяСтрока.Цена=0;
    Иначе
    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    ТекущаяСтрока.Цена=Выборка.Цена;
    КонецЕсли;
    
  3. TopicStarter Overlay
    Pavel2009
    Offline

    Pavel2009 Опытный в 1С

    Регистрация:
    11 окт 2010
    Сообщения:
    183
    Симпатии:
    0
    Баллы:
    26
    Т.е. в РегистреСведений должен быть один ресурс Цена, а уже от неё, рассчитываться Оптовая, Розничная и т.д путем умножения на какие-либо коэффициенты?
  4. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Возможно мы друг друга не понимаем. Само ничего рассчитываться просто так не будет. Регистр сведений предназначен для хранения для каждой номенклатурной позиции списка различных цен. Т.е. если посмотреть все записи, то они могут выглядеть так (например):
    показано упрощенно (без периода).

    Выполняя запрос, вы указываете в нем параметры (номенклатура и тип цен), и после выполнения запроса, из этого регистра получаете последнюю цену для указанной номенклатуры указанного типа цен.


    У вас какая задача стоит?
  5. TopicStarter Overlay
    Pavel2009
    Offline

    Pavel2009 Опытный в 1С

    Регистрация:
    11 окт 2010
    Сообщения:
    183
    Симпатии:
    0
    Баллы:
    26
    Это моя первая разработка и я хотел построить, несложное ценообразование, т.е. приход товара по Накладной, и сохранение этой цены, и при реализации выбор ТипаЦены(Оптовая или Розничная) с учётом сохраненной.
    Спасибо за ваше пояснение, стало намного понятней!

Поделиться этой страницей