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

Получить цену номенклатуры

Автор Kostik2013, 28 мар 2013, 17:48

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

Kostik2013

Цитата: SlazZy от 28 мар 2013, 21:26
Цитироватьподсказали сделать таким способом &НаКлиентеНаСервереБезКонтекста ,но что с ним делать не представляю
не слушайте их, и эту диррективу не используйте ))

ваш код на 100% рабочий...Опишите проблему более конкретно, возвращается цена 0? Значит у вас просто не задана цена в справочнике. Проверьте типы данных, ну и так далее. А код, написанный выше - работает.

Код работал когда ЦенаПродажи была ПолеВвода а теперь она в табличной части и не хочет((Цена в справочнике указана.

SlazZy

ЦитироватьКод работал когда ЦенаПродажи была ПолеВвода а теперь она в табличной части и не хочет((Цена в справочнике указана.
в табличной части справочника Номенклатура?
Вообще неплохо бы увидеть хотя бы пару скринов ваших форм :)

Kostik2013

Цитата: SlazZy от 29 мар 2013, 15:01
ЦитироватьКод работал когда ЦенаПродажи была ПолеВвода а теперь она в табличной части и не хочет((Цена в справочнике указана.
в табличной части справочника Номенклатура?
Вообще неплохо бы увидеть хотя бы пару скринов ваших форм :)





SlazZy

Ну так бы сразу и сказали...
У вас Цена продажи в табличной части, соответственно надо её получать из табличной части. Я не знаю по какому принципу, это уж зависит от вашей прикладной задачи.

Если по хорошему, то налицо неправильная структура хранения информации - в данном случае цена продажи должна быть в регистре сведений. Но чтобы ничего не переделывать, можете в общем-то использовать запрос к табличной части по ссылке, с указание контрагента, даты и ссылки на саму номенклатуру.


Напишу пример запроса, его придется переделывать в любом случае :) тк я не знаю имен полей.

&НаСервереБезКонтекста
Функция ПолучитьЦену (Номенклатура,Контрагент, дата)
  Запрос = Новый запрос("Выбрать Первые 1 Н.Цена Как Цена из Справочник.Номенклатура.ЦенаПродажи КАК Н Где Н.Ссылка = &Номенклатура И н.Поставщик = &Поставщик И Н.ДатаЗагрузки <= &Дата Упорядочить ПО Н.ДатаЗагрузки Убыв");
Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
Запрос.УстановитьПараметр("Поставщик",Контрагент);
Запрос.УстановитьПараметр("Дата",Дата);
Выборка = Запрос.Выполнить().Выбрать();

ЦенаПродажи = 0;
Если Выборка.Следующий() Тогда
    ЦенаПРодажи = Выборка.Цена;
КонецЕсли;

возврат ЦенаПродажи;
       
КонецФункции


:dfbsdfbsdf:
Это один из примеров. В любом случае вам надо получать данные из табличной части, что несколько отличается от получения реквизита.

Kostik2013

Цитата: SlazZy от 29 мар 2013, 15:59
Ну так бы сразу и сказали...
У вас Цена продажи в табличной части, соответственно надо её получать из табличной части. Я не знаю по какому принципу, это уж зависит от вашей прикладной задачи.

Если по хорошему, то налицо неправильная структура хранения информации - в данном случае цена продажи должна быть в регистре сведений. Но чтобы ничего не переделывать, можете в общем-то использовать запрос к табличной части по ссылке, с указание контрагента, даты и ссылки на саму номенклатуру.


Напишу пример запроса, его придется переделывать в любом случае :) тк я не знаю имен полей.

&НаСервереБезКонтекста
Функция ПолучитьЦену (Номенклатура,Контрагент, дата)
  Запрос = Новый запрос("Выбрать Первые 1 Н.Цена Как Цена из Справочник.Номенклатура.ЦенаПродажи КАК Н Где Н.Ссылка = &Номенклатура И н.Поставщик = &Поставщик И Н.ДатаЗагрузки <= &Дата Упорядочить ПО Н.ДатаЗагрузки Убыв");
Запрос.УстановитьПараметр("Номенклатура",Номенклатура);
Запрос.УстановитьПараметр("Поставщик",Контрагент);
Запрос.УстановитьПараметр("Дата",Дата);
Выборка = Запрос.Выполнить().Выбрать();

ЦенаПродажи = 0;
Если Выборка.Следующий() Тогда
    ЦенаПРодажи = Выборка.Цена;
КонецЕсли;

возврат ЦенаПродажи;
       
КонецФункции


:dfbsdfbsdf:
Это один из примеров. В любом случае вам надо получать данные из табличной части, что несколько отличается от получения реквизита.

Регистр есть)Как из него тогда можно получить эту цену?Надо же чтобы она автоматом заполнилась и в самой номенклатуре да?

SlazZy

Цитата: Kostik2013 от 29 мар 2013, 16:35Регистр есть)Как из него тогда можно получить эту цену?Надо же чтобы она автоматом заполнилась и в самой номенклатуре да?
ну, да :) я же не буду за вас весь код писать? :btbzdb:
мне кажется в номенклатуре вообще не должно быть этой табличной части, там может быть кнопочка с переходом в регистр с отбором по номенклатуре.
Либо можно выводить набор записей регистра как таблицу значений в самой номенклатуре. Для этого надо добавить динамический список и установить запрос к регистру сведений с нужными параметрами.
Если есть доступ, посмотрите как это сделано например в УТ.

А получить цену из регистра примерно так же, как получить её из табличной части )) делаете запрос, если регистр периодический, то срез последних. С отбором по комбинации измерений.

Kostik2013

Цитата: SlazZy от 29 мар 2013, 16:45
Цитата: Kostik2013 от 29 мар 2013, 16:35Регистр есть)Как из него тогда можно получить эту цену?Надо же чтобы она автоматом заполнилась и в самой номенклатуре да?
ну, да :) я же не буду за вас весь код писать? :btbzdb:
мне кажется в номенклатуре вообще не должно быть этой табличной части, там может быть кнопочка с переходом в регистр с отбором по номенклатуре.
Либо можно выводить набор записей регистра как таблицу значений в самой номенклатуре. Для этого надо добавить динамический список и установить запрос к регистру сведений с нужными параметрами.
Если есть доступ, посмотрите как это сделано например в УТ.

А получить цену из регистра примерно так же, как получить её из табличной части )) делаете запрос, если регистр периодический, то срез последних. С отбором по комбинации измерений.

Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск