|
Цена позиции номенклатуры | ☑ | ||
---|---|---|---|---|
0
lakich
10.03.13
✎
15:52
|
Насмешу вопросом,но тем не менее -как получить по конкретной позиции
номенклатуры ее цену заданного вида?..приведите кусок кода пожалуйста.. |
|||
1
shuhard
10.03.13
✎
15:59
|
(0) форуму приятно видеть очередной вопрос по конфигурацим Управление борделем 1.1
|
|||
2
lakich
10.03.13
✎
16:01
|
так дайте ссылку на архив или приведите кусок кода?
|
|||
3
lakich
10.03.13
✎
16:11
|
неужто никто не знает?)..ну серьезно?)
|
|||
4
AmoreMe
10.03.13
✎
16:14
|
Знают, просто жмутся... Самим надо :)
|
|||
5
floody
10.03.13
✎
16:17
|
(0) ну в общем случае что-то типа
глВернутьЦену(Номенклатура,Тип,Дата); для остального недостаточно инфы в (0) |
|||
6
lakich
10.03.13
✎
16:19
|
фокус - на позиции номенклатуры,хочу ,чтобы по нажатию кнопки появлялись цены в текстовом поле
|
|||
7
lakich
10.03.13
✎
16:43
|
глВерннутьЦену -нет такого,в 8.2 уп нет такой функции
|
|||
8
hhhh
10.03.13
✎
17:34
|
(7) так Верннуть с одной "н" пишется.
|
|||
9
shuhard
10.03.13
✎
18:05
|
(8) ввернуть пишется с двумя "в"
|
|||
10
ILM
гуру
10.03.13
✎
18:58
|
(9) Вставитвцену круче))
|
|||
11
shuhard
10.03.13
✎
19:19
|
(10) Ыыыыыыыыыыыыыыыыыыыыыыы
|
|||
12
hohol
10.03.13
✎
19:28
|
(0)
Ценообразование.ПолучитьЦенуНоменклатуры(Номенклатура,Характеристика,ТипЦен,Дата); |
|||
13
hohol
10.03.13
✎
19:29
|
для упп
// Функция возвращает цену номенклатуры для требуемой номенклатуры в указанном типе цен, // на заданную дату, за заданную единицу измерения, пересчитанную в требуемую валюту по заданному курсу. // // Параметры: // Номенклатура - ссылка на элемент справочника "Номенклатура", для которого надо получить цену, // ХарактеристикаНоменклатуры - ссылка на элемент справочника "ХарактеристикаНоменклатуры", // ТипЦен - ссылка на элемент справочника "Типы цен", опредедяет цену какого типа надо получить, // Дата - дата, на которую надо получить цену, если не заполнено, то берется рабочая дата // ЕдиницаИзмерения - ссылка на элемент справочника "Единицы измерения", определяет для какой единицы надо получить // цену, если не заполнен, то заполняется единицей цены // Валюта - ссылка на элемент справочника "Валюты", определяет валюту. в которой надо вернуть цену, // если не заполнен, то заполняется валютой цены // Курс - число, курс требуемой валюты, если не заполнен, берется курс из регистра // сведений "Курсы валют", // Кратность - число, кратность требуемой валюты, если не заполнена, берется курс из регистра // сведений "Курсы валют", // ПроцентСкидкиНаценки - число, процент наценки (скидки) на базовый тип цен, заполняется процентом // наценки (скидки) цены для цен, которые не рассчитываются автоматически. // // Возвращаемое значение: // Число, рассчитанное значение цены. // Функция ПолучитьЦенуНоменклатуры(Номенклатура, ХарактеристикаНоменклатуры = Неопределено, Знач ТипЦен, ДатаПараметр = Неопределено, ЕдиницаИзмерения = Неопределено, Валюта = Неопределено, Курс = 0, Кратность = 1, ПроцентСкидкиНаценки = 0, ДоговорКонтрагента = Неопределено, УсловиеПродаж = Неопределено) Экспорт Если ЕдиницаИзмерения = Неопределено Тогда ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.ПустаяСсылка(); // для услуг КонецЕсли; ХарактеристикиНоменклатуры = ПолучитьМассивХарактеристик(ХарактеристикаНоменклатуры); Дата = ПолучитьАктуальнуюДатуРасчетаЦен(ДатаПараметр); ПолученнаяЦена = 0; Если ДоговорКонтрагента <> Неопределено Тогда Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата", Дата); Запрос.УстановитьПараметр("Договор", ДоговорКонтрагента); Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("ХарактеристикиНоменклатуры", ХарактеристикиНоменклатуры); ТекстЗапроса = " |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | УсловияПоставок.Цена КАК Цена, | ВЫБОР КОГДА сНоменклатура.Услуга И УсловияПоставок.ЕдиницаИзмерения = ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка) | ТОГДА сНоменклатура.ЕдиницаХраненияОстатков | ИНАЧЕ УсловияПоставок.ЕдиницаИзмерения | КОНЕЦ КАК ЕдиницаИзмерения, | УсловияПоставок.ВалютаЦены КАК ВалютаЦены |ИЗ | РегистрСведений.УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.СрезПоследних(&Дата, | ДоговорКонтрагента = &Договор И Номенклатура = &Номенклатура | И ХарактеристикаНоменклатуры В (&ХарактеристикиНоменклатуры)) КАК УсловияПоставок |ВНУТРЕННЕЕ СОЕДИНЕНИЕ | Справочник.Номенклатура КАК сНоменклатура |ПО | сНоменклатура.Ссылка = УсловияПоставок.Номенклатура |ГДЕ | УсловияПоставок.Цена <> 0 И сНоменклатура.Ссылка = &Номенклатура |УПОРЯДОЧИТЬ ПО | УсловияПоставок.ХарактеристикаНоменклатуры УБЫВ |"; Запрос.Текст = ТекстЗапроса; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда ПолученнаяЦена = ПересчитатьЦенуПриИзмененииЕдиницы(Выборка.Цена, Выборка.ЕдиницаИзмерения, ЕдиницаИзмерения); ПолученнаяЦена = ПересчитатьЦенуПриИзмененииВалюты(ПолученнаяЦена, Выборка.ВалютаЦены, Валюта, Курс, Кратность, Дата); КонецЕсли; // Проверим, не установлены ли по этому договору типы цен для групп. Если ПолученнаяЦена = 0 Тогда Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата", Дата); Запрос.УстановитьПараметр("Контрагент", ДоговорКонтрагента.Владелец); Запрос.УстановитьПараметр("Группы", ПолучитьМассивГруппНоменклатуры(Номенклатура)); Запрос.Текст = " |ВЫБРАТЬ РАЗРЕШЕННЫЕ | ТипыЦенПоГруппам.ТипЦен КАК ТипЦен |ИЗ | РегистрСведений.ТипыЦенПоГруппамНоменклатурыДляПокупателей.СрезПоследних(&Дата, Контрагент = &Контрагент | И НоменклатурнаяЦеноваяГруппа В (&Группы)) КАК ТипыЦенПоГруппам |"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Если Не Выборка.ТипЦен.Пустая() Тогда // переопределим тип цен для расчета ТипЦен = Выборка.ТипЦен; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; Если ПолученнаяЦена = 0 И ЗначениеЗаполнено(ТипЦен) Тогда // особых условий нет Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата", Дата); Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("ХарактеристикиНоменклатуры", ХарактеристикиНоменклатуры); Если ТипЦен.Рассчитывается Тогда // надо достать цену базового типа и рассчитать по наценке Запрос.УстановитьПараметр("ТипЦен", ТипЦен.БазовыйТипЦен); Запрос.УстановитьПараметр("ТипЦенРасчетный", ТипЦен); Запрос.УстановитьПараметр("СпособРасчета", ТипЦен.СпособРасчетаЦены); Запрос.УстановитьПараметр("ПроцентНаценки", ТипЦен.ПроцентСкидкиНаценки); Иначе Запрос.УстановитьПараметр("ТипЦен", ТипЦен); КонецЕсли; Запрос.Текст = " |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1 | ЦеныНоменклатурыСрезПоследних.Цена КАК Цена, | ВЫБОР КОГДА сНоменклатура.Услуга И ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения = ЗНАЧЕНИЕ(Справочник.ЕдиницыИзмерения.ПустаяСсылка) | ТОГДА сНоменклатура.ЕдиницаХраненияОстатков | ИНАЧЕ ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения | КОНЕЦ КАК ЕдиницаИзмерения, |"; Если ТипЦен.Рассчитывается Тогда Запрос.Текст = Запрос.Текст + " | ЕСТЬNULL(ВложенныйЗапрос.ПроцентСкидкиНаценки, &ПроцентНаценки) КАК ПроцентСкидкиНаценки, | ЕСТЬNULL(ВложенныйЗапрос.СпособРасчетаЦены, &СпособРасчета) КАК СпособРасчетаЦены, |"; КонецЕсли; Запрос.Текст = Запрос.Текст + " | ЦеныНоменклатурыСрезПоследних.Валюта |ИЗ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, Номенклатура = &Номенклатура | И ТипЦен = &ТипЦен И ХарактеристикаНоменклатуры В (&ХарактеристикиНоменклатуры) | ) КАК ЦеныНоменклатурыСрезПоследних |"; Если ТипЦен.Рассчитывается Тогда Запрос.Текст = Запрос.Текст + " |ЛЕВОЕ СОЕДИНЕНИЕ | (ВЫБРАТЬ | ЦеныНоменклатурыСрезПоследних.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки, | ЦеныНоменклатурыСрезПоследних.СпособРасчетаЦены КАК СпособРасчетаЦены, | ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, | ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры | ИЗ | РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, Номенклатура = &Номенклатура | И ТипЦен = &ТипЦенРасчетный | И ХарактеристикаНоменклатуры В (&ХарактеристикиНоменклатуры) | ) КАК ЦеныНоменклатурыСрезПоследних | ) КАК ВложенныйЗапрос |ПО | ЦеныНоменклатурыСрезПоследних.Номенклатура = ВложенныйЗапрос.Номенклатура И ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры = ВложенныйЗапрос.ХарактеристикаНоменклатуры |"; КонецЕсли; Запрос.Текст = Запрос.Текст + " |ВНУТРЕННЕЕ СОЕДИНЕНИЕ | Справочник.Номенклатура КАК сНоменклатура |ПО | сНоменклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура |ГДЕ | сНоменклатура.Ссылка = &Номенклатура |УПОРЯДОЧИТЬ ПО | ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры УБЫВ |"; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Если ТипЦен.Рассчитывается Тогда ВалютаТекущая = ТипЦен.ВалютаЦены; ПолученнаяЦена = ПересчитатьЦенуПриИзмененииВалюты(Выборка.Цена, Выборка.Валюта, ВалютаТекущая, 0, 0, Дата); Если Выборка.СпособРасчетаЦены = Перечисления.СпособыРасчетаЦены.ПоВхождениюБазовойЦеныВДиапазон Тогда ПолученнаяЦена = ПолучитьЦенуПоЦеновымДиапазонам(ТипЦен, Дата, ПолученнаяЦена, ВалютаТекущая, ВалютаТекущая); ИначеЕсли Выборка.СпособРасчетаЦены = Перечисления.СпособыРасчетаЦены.ПоПроцентнойНаценкеНаБазовыйТип Тогда ПолученнаяЦена = ПолученнаяЦена * (1 + Выборка.ПроцентСкидкиНаценки / 100); КонецЕсли; Иначе ВалютаТекущая = Выборка.Валюта; ПолученнаяЦена = Выборка.Цена; КонецЕсли; ПолученнаяЦена = ПересчитатьЦенуПриИзмененииЕдиницы(ПолученнаяЦена, Выборка.ЕдиницаИзмерения, ЕдиницаИзмерения); ПолученнаяЦена = ПересчитатьЦенуПриИзмененииВалюты(ПолученнаяЦена, ВалютаТекущая, Валюта, Курс, Кратность, Дата); КонецЕсли; КонецЕсли; ИзменитьЦенуПоУсловиюПродаж(Дата, Номенклатура, УсловиеПродаж, ПолученнаяЦена); Если ЗначениеЗаполнено(ТипЦен) Тогда ПолученнаяЦена = ОкруглитьЦену(ПолученнаяЦена, ТипЦен.ПорядокОкругления, ТипЦен.ОкруглятьВБольшуюСторону); КонецЕсли; Возврат ПолученнаяЦена; КонецФункции // ПолучитьЦенуНоменклатуры() в УТ и клонах тоже самое. В БП не смотрел. Ну наверное также. |
|||
14
lakich
12.03.13
✎
22:21
|
вот спасибо то..человек,большое спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |