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

Хранилище

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

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



> як користуватися функцією Ценообразование.ПолучитьЦенуКонтрагента() ? , УТП 1.2.58.1          
berest.andriy@gm... Подменю пользователя
сообщение 21.11.22, 10:23
Сообщение #1

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

привіт. підкажіть б-ласка як користуватися функцією ценообразование.ПолучитьЦенуКонтрагента?
перепробував все що можна а мені видає 0.
може у когось є приклад використання даної функції та опис як вона працює. мені потрібно отримати ціну контрагента з врахуванням знижок встановлених в документа "Установка скидок номенклатури"
дякую

Код
qqq=ценообразование.ПолучитьЦенуКонтрагента(полеввода1,,справочники.Контрагенты.НайтиПоКоду("УТП000438"),Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("утп000004"),,,справочники.Валюты.НайтиПоКоду("980"),,,,);


вже пробував вказувати договір, але все одно на виході 0


1С:Підприємство 8.3 (8.3.15.1869)
"Управление торговым предприятием для Украины", редакция 1.2. (1.2.58.1) (http://1c.ua/v8/RegionalSolutions_UA_UTP.php)
Copyright © Molenari OU, 2017-2020. All rights reserved

Сообщение отредактировал Vofka - 21.11.22, 15:02

mvo2008 Подменю пользователя
сообщение 21.11.22, 10:57
Сообщение #2

Общительный
**
Группа: Пользователи
Сообщений: 39
Из: г. Черкасcы
Спасибо сказали: 11 раз
Рейтинг: 6.3

berest.andriy@gmail.com @ Сегодня, 10:23 * ,

F12 і читаєте опис функції......

denis84 Подменю пользователя
сообщение 21.11.22, 11:17
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 428
Из: Украина
Спасибо сказали: 137 раз
Рейтинг: 138.5

berest.andriy@gmail.com @ Сегодня, 10:23 * ,
// Функция возвращает цену контрагента для требуемой номенклатуры в указанном типе цен , 
// на заданную дату, за заданную единицу измерения, пересчитанную в требуемую валюту по заданному курсу.
//
// Параметры:
//  Номенклатура               - ссылка на элемент справочника "Номенклатура", для которого надо получить цену,
//  ХарактеристикаНоменклатуры - ссылка на элемент справочника "Характеристики номенклатуры",
//  Контрагент                 - ссылка на элемент справочника "Контрагенты", для которого надо получить цену,
//  ТипЦен                     - ссылка на элемент справочника "Типы цен", опредедяет цену какого типа надо получить,
//  Дата                       - дата, на которую надо получить цену, если не заполнено, то берется рабочая дата
//  ЕдиницаИзмерения           - ссылка на элемент справочника "Единицы измерения", определяет для какой единицы надо получить
//                               цену, если не заполнен, то заполняется единицей цены
//  Валюта                     - ссылка на элемент справочника "Валюты", определяет валюту. в которой надо вернуть цену,
//                               если не заполнен, то заполняется валютой цены
//  Курс                       - число, курс требуемой валюты, если не заполнен, берется курс из регистра
//                               сведений "Курсы валют".
//  Кратность                  - число, кратность требуемой валюты, если не заполнена, берется курс из регистра
//                               сведений "Курсы валют".
//
// Возвращаемое значение:
//  Число, рассчитанное значение цены.
//
Функция ПолучитьЦенуКонтрагента(Номенклатура, ХарактеристикаНоменклатуры = Неопределено, Контрагент,
                                ТипЦен, Дата = Неопределено, ЕдиницаИзмерения = Неопределено,
                                Валюта = Неопределено, Курс = 0, Кратность = 1,
                                ДоговорКонтрагента = Неопределено, УсловиеПродаж = Неопределено) Экспорт

    ХарактеристикиНоменклатуры = ПолучитьМассивХарактеристик(ХарактеристикаНоменклатуры);

    Дата = ПолучитьАктуальнуюДатуРасчетаЦен(Дата);

    ПолученнаяЦена = 0;

    Если ДоговорКонтрагента <> Неопределено Тогда
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("Дата", Дата);
        Запрос.УстановитьПараметр("Договор", ДоговорКонтрагента);
        Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
        Запрос.УстановитьПараметр("ХарактеристикиНоменклатуры", ХарактеристикиНоменклатуры);

        ТекстЗапроса = "
        |ВЫБРАТЬ ПЕРВЫЕ 1
        |    УсловияПоставок.Цена                  КАК Цена,
        |    ВЫБОР    КОГДА сНоменклатура.Услуга И УсловияПоставок.ЕдиницаИзмерения = ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка)
        |            ТОГДА сНоменклатура.ЕдиницаХраненияОстатков
        |            ИНАЧЕ УсловияПоставок.ЕдиницаИзмерения
        |    КОНЕЦ                                 КАК ЕдиницаИзмерения,
        |    УсловияПоставок.ВалютаЦены            КАК ВалютаЦены
        |ИЗ
        |    РегистрСведений.УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.СрезПоследних(&Дата,
        |       ДоговорКонтрагента = &Договор И Номенклатура = &Номенклатура
        |       И ХарактеристикаНоменклатуры В (&ХарактеристикиНоменклатуры)) КАК УсловияПоставок
        |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
        |    Справочник.Номенклатура КАК сНоменклатура
        |ПО
        |    сНоменклатура.Ссылка = УсловияПоставок.Номенклатура
        |ГДЕ
        |    УсловияПоставок.Цена <> 0 И сНоменклатура.Ссылка = &Номенклатура
        |УПОРЯДОЧИТЬ ПО
        |    УсловияПоставок.ХарактеристикаНоменклатуры УБЫВ
        |";

        Запрос.Текст = ТекстЗапроса;

        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда
            ПолученнаяЦена = ПересчитатьЦенуПриИзмененииЕдиницы(Выборка.Цена, Выборка.ЕдиницаИзмерения, ЕдиницаИзмерения);
            ПолученнаяЦена = ПересчитатьЦенуПриИзмененииВалюты(ПолученнаяЦена, Выборка.ВалютаЦены, Валюта, Курс, Кратность, Дата);
        КонецЕсли;
    КонецЕсли;

    Если ПолученнаяЦена = 0 Тогда // особых условий нет
        Запрос = Новый Запрос;
        Запрос.УстановитьПараметр("Дата", Дата);
        Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
        Запрос.УстановитьПараметр("ХарактеристикиНоменклатуры", ХарактеристикиНоменклатуры);
        Запрос.УстановитьПараметр("ТипЦен", ТипЦен);

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

        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда
            ПолученнаяЦена = ПересчитатьЦенуПриИзмененииЕдиницы(Выборка.Цена, Выборка.ЕдиницаИзмерения, ЕдиницаИзмерения);
            ПолученнаяЦена = ПересчитатьЦенуПриИзмененииВалюты(ПолученнаяЦена, Выборка.Валюта, Валюта, Курс, Кратность, КонецДня(Дата));
        КонецЕсли;
    КонецЕсли;

    ИзменитьЦенуПоУсловиюПродаж(Дата, Номенклатура, УсловиеПродаж, ПолученнаяЦена);

    Возврат ПолученнаяЦена;

КонецФункции // ПолучитьЦенуКонтрагента()


Цена = Ценообразование.ПолучитьЦенуКонтрагента(Номенклатура, Характеристика, Контрагент, ТипЦен, Дата, ЕдиницаХранения, Валюта);


Сообщение отредактировал denis84 - 21.11.22, 11:24

Moloko Подменю пользователя
сообщение 21.11.22, 11:59
Сообщение #4

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

berest.andriy@gmail.com @ Сегодня, 10:23 * ,
Дуже цікаве запитання. Скільки років вже працюю з УТП, але ніколи не бачив, щоби хтось використовував регістр відомостей
"Умови поставок за договорами контрагентів по номенклатурі", та документ "Умови поставок за договорами контрагентів",
який є реєстратором для нього. Саме завдяки ним буде працювати/не працювати ваша функція

Gazulo Подменю пользователя
сообщение 21.11.22, 12:34
Сообщение #5

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

berest.andriy@gmail.com @ Сегодня, 11:23 * ,
Добрий день, яке значення в "полеввода1"?

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

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

berest.andriy@gmail.com, 99%, что полеввода1 это не то, что туда надо передавать. Скорее всего надо передавать реквизит, к которому привязано это ваше поле ввода.

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


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

 

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