Ребята,помогите!Мне надо чтобы в расходной накладной при при выборе товара подставлялась цена продажи,актуальная на дату документа.История значений цены храниться в РС История значения цен.
Что то у меня не получается ее вытащить,подставляется какая попало(((
Помогите ,пожалуйста,туплю.не могу понять где не правильно.(((
Что то у меня не получается ее вытащить,подставляется какая попало(((
Помогите ,пожалуйста,туплю.не могу понять где не правильно.(((
ВЫБРАТЬ
ПриходнаяНакладнаяТовары.Ссылка КАК Документ,
ПриходнаяНакладнаяТовары.Номенклатура,
Максимум(ИсторияЗначенияЦен.Период) КАК Период
ПОМЕСТИТЬ ВТ
ИЗ
Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияЗначенияЦен КАК ИсторияЗначенияЦен
ПО ПриходнаяНакладнаяТовары.Номенклатура = ИсторияЗначенияЦен.Номенклатура
И ПриходнаяНакладнаяТовары.ЦенаПродажи = ИсторияЗначенияЦен.Цена
И ПриходнаяНакладнаяТовары.Ссылка.Дата >= ИсторияЗначенияЦен.Период
СГРУППИРОВАТЬ ПО
ПриходнаяНакладнаяТовары.Ссылка,
ПриходнаяНакладнаяТовары.Номенклатура,
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ.Документ,
ВТ.Номенклатура,
ВТ.Период,
ИсторияЗначенияЦен.Цена
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияЗначенияЦен КАК ИсторияЗначенияЦен
ПО ВТ.Номенклатура = ИсторияЗначенияЦен.Номенклатура
И ВТ.Период = ИсторияЗначенияЦен.Период
ПоказатьПо теме из базы знаний
- Перенос данных из УТ 10.3 в УТ 11 / КА 2 / ERP 2. Переносятся документы, справочники и остатки
- Запрос стоимости партии на даты документов одним запросом (УТ 10)
- Сравнение цен в реализации с ценами по виду цены
- Заполнение цен оприходования из документов поступлений / ввода остатков / реализаций
- Загрузка чеков ФНС в документы 1С:БП, 1С:УНФ, 1С:ERP, 1С:КА и 1С:УТ
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Мне не нужна цена последняя,а нужна цена которая в регистре ближе всего к дате документа.
Например
Приход 1.01 цена 100р
5.01-120р
Расходная 2.01 -цена должна подставляться 100р.
Я тоже сначала пробовала со СрезомПоследних,но как тогда в параметр Период передать дату документа?
Например
Приход 1.01 цена 100р
5.01-120р
Расходная 2.01 -цена должна подставляться 100р.
Я тоже сначала пробовала со СрезомПоследних,но как тогда в параметр Период передать дату документа?
ВЫБРАТЬ
ИсторияЗначенияЦенСрезПоследних.Период КАК Период,
ИсторияЗначенияЦенСрезПоследних.Номенклатура КАК Номенклатура,
ИсторияЗначенияЦенСрезПоследних.Цена КАК Цена
ИЗ
РегистрСведений.ИсторияЗначенияЦен.СрезПоследних(&Период, Номенклатура = &Номенклатура) КАК ИсторияЗначенияЦенСрезПоследних
я сначала сделала так
В параметры передаю Номенклатуру
Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
Запрос.УстановитьПараметр("Период", ??)-а тут что?
(13) Это СоСрезом
ВЫБРАТЬ
ИсторияЗначенияЦенСрезПоследних.Период КАК Период,
ИсторияЗначенияЦенСрезПоследних.Номенклатура КАК Номенклатура,
ИсторияЗначенияЦенСрезПоследних.Цена КАК Цена
ИЗ
РегистрСведений.ИсторияЗначенияЦен.СрезПоследних(&Период, Номенклатура = &Номенклатура) КАК ИсторияЗначенияЦенСрезПоследних
я сначала сделала так
В параметры передаю Номенклатуру
Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
Запрос.УстановитьПараметр("Период", ??)-а тут что?
//////////////////////////////////////////////
Это с ФизТаблицами
ВЫБРАТЬ
ПриходнаяНакладнаяТовары.Ссылка КАК Документ,
ПриходнаяНакладнаяТовары.Номенклатура,
Максимум(ИсторияЗначенияЦен.Период) КАК Период
ПОМЕСТИТЬ ВТ
ИЗ
Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияЗначенияЦен КАК ИсторияЗначенияЦен
ПО ПриходнаяНакладнаяТовары.Номенклатура = ИсторияЗначенияЦен.Номенклатура
И ПриходнаяНакладнаяТовары.ЦенаПродажи = ИсторияЗначенияЦен.Цена
И ПриходнаяНакладнаяТовары.Ссылка.Дата >= ИсторияЗначенияЦен.Период
СГРУППИРОВАТЬ ПО
ПриходнаяНакладнаяТовары.Ссылка,
ПриходнаяНакладнаяТовары.Номенклатура,
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ.Документ,
ВТ.Номенклатура,
ВТ.Период,
ИсторияЗначенияЦен.Цена
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияЗначенияЦен КАК ИсторияЗначенияЦен
ПО ВТ.Номенклатура = ИсторияЗначенияЦен.Номенклатура
И ВТ.Период = ИсторияЗначенияЦен.Период
Показать
(15) если нетрудно, оформите код вот так
так удобней читать
ВЫБРАТЬ
ВТ.Документ,
ВТ.Номенклатура,
ВТ.Период,
ИсторияЗначенияЦен.Цена
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияЗначенияЦен КАК ИсторияЗначенияЦен
ПО ВТ.Номенклатура = ИсторияЗначенияЦен.Номенклатура
И ВТ.Период = ИсторияЗначенияЦен.Период
Показатьтак удобней читать
(11)Управляемая форма.Если выбрать ТекущаяДата(),то он будет брать сумму даты последнего документа,а мне то надо не последнего документа,а мне надо сумму которая,"ближе " к дате документа.
Например
Приход 1.01 цена 100р
5.01-120р
Расходная 2.01 -цена должна подставляться 100р.
Например
Приход 1.01 цена 100р
5.01-120р
Расходная 2.01 -цена должна подставляться 100р.
Если вы в модуле формы этого документа и процедура с директивой на &НаСервере то Объект.Дата - должно работать. Либо вы что то не договариваете. Выложите код этой формы. Только оформите его с помощью специальной кнопки "Вставка кода"
&НаСервере
Функция ПолучитьЦенуНоменклатуры(Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИсторияЗначенияЦенСрезПоследних.Период,
| ИсторияЗначенияЦенСрезПоследних.Номенклатура,
| ИсторияЗначенияЦенСрезПоследних.Цена
|ИЗ
| РегистрСведений.ИсторияЗначенияЦен.СрезПоследних(&Период, Номенклатура = &Номенклатура) КАК ИсторияЗначенияЦенСрезПоследних";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Период",Объект.Дата);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
АктуальнаяЦена=Выборка.Цена;
КонецЦикла;
Возврат АктуальнаяЦена;
КонецФункции
Показать
(26) Не выходит...
Что тогда передавать сюда?
Что тогда передавать сюда?
&НаСервереБезКонтекста
Функция ПолучитьЦенуНоменклатуры(Номенклатура,Дата)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИсторияЗначенияЦенСрезПоследних.Период,
| ИсторияЗначенияЦенСрезПоследних.Номенклатура,
| ИсторияЗначенияЦенСрезПоследних.Цена
|ИЗ
| РегистрСведений.ИсторияЗначенияЦен.СрезПоследних(&Период, Номенклатура = &Номенклатура) КАК ИсторияЗначенияЦенСрезПоследних";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Период",Дата);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
АктуальнаяЦена=Выборка.Цена;
КонецЦикла;
Возврат АктуальнаяЦена;
КонецФункции
&НаКлиенте
Процедура НоменклатураПриИзменении(Элемент)
Стр = Элементы.Товары.ТекущиеДанные;
Стр.Цена=ПолучитьЦенуНоменклатуры(Стр.Номенклатура, <<?>> Дата);
КоличествоПриИзменении(Элемент);
КонецПроцедуры
Показать
(25)
Остальной код уже не про Цену...
&НаКлиенте
Процедура КоличествоПриИзменении(Элемент)
Стр = Элементы.Товары.ТекущиеДанные;
Стр.Сумма = Стр.Количество * Стр.Цена;
Объект.СуммаДокумента=Объект.Товары.Итог("Сумма")+Объект.Услуги.Итог("Сумма");
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьЦенуНоменклатуры(Номенклатура)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИсторияЗначенияЦенСрезПоследних.Период,
| ИсторияЗначенияЦенСрезПоследних.Номенклатура,
| ИсторияЗначенияЦенСрезПоследних.Цена
|ИЗ
| РегистрСведений.ИсторияЗначенияЦен.СрезПоследних(&Период, Номенклатура = &Номенклатура) КАК ИсторияЗначенияЦенСрезПоследних";
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
Запрос.УстановитьПараметр("Период",Объект.Дата);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
АктуальнаяЦена=Выборка.Цена;
КонецЦикла;
Возврат АктуальнаяЦена;
КонецФункции
&НаКлиенте
Процедура НоменклатураПриИзменении(Элемент)
Стр = Элементы.Товары.ТекущиеДанные;
Стр.Цена=ПолучитьЦенуНоменклатуры(Стр.Номенклатура); ///Что здесь тогда?
КоличествоПриИзменении(Элемент);
КонецПроцедуры
ПоказатьОстальной код уже не про Цену...
Только учусь
Для Торговли
передаем в функцию товар, вид цены и дату документа
&НаСервере
Функция ОпределитьЦенуНаДату(Товар,ВЦены,Период)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ЦеныНоменклатуры25.Период КАК Период,
| ЦеныНоменклатуры25.Цена КАК Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры25 КАК ЦеныНоменклатуры25
|ГДЕ
| ЦеныНоменклатуры25.Период <= &Период
| И ЦеныНоменклатуры25.Номенклатура.Ссылка = &Товар
| И ЦеныНоменклатуры25.ВидЦены.Ссылка = &ВЦены
|
|УПОРЯДОЧИТЬ ПО
| Период УБЫВ";
Запрос.УстановитьПараметр("Период", Период);
Запрос.УстановитьПараметр("Товар", Товар);
Запрос.УстановитьПараметр("ВЦены", ВЦены);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат 0;
Иначе
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Возврат ВыборкаДетальныеЗаписи.Цена;
КонецЦикла;
КонецЕсли;
КонецФункции
Для Торговли
передаем в функцию товар, вид цены и дату документа
&НаСервере
Функция ОпределитьЦенуНаДату(Товар,ВЦены,Период)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ЦеныНоменклатуры25.Период КАК Период,
| ЦеныНоменклатуры25.Цена КАК Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры25 КАК ЦеныНоменклатуры25
|ГДЕ
| ЦеныНоменклатуры25.Период <= &Период
| И ЦеныНоменклатуры25.Номенклатура.Ссылка = &Товар
| И ЦеныНоменклатуры25.ВидЦены.Ссылка = &ВЦены
|
|УПОРЯДОЧИТЬ ПО
| Период УБЫВ";
Запрос.УстановитьПараметр("Период", Период);
Запрос.УстановитьПараметр("Товар", Товар);
Запрос.УстановитьПараметр("ВЦены", ВЦены);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат 0;
Иначе
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Возврат ВыборкаДетальныеЗаписи.Цена;
КонецЦикла;
КонецЕсли;
КонецФункции
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот