Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подстановка цены из справочника
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
bodka
Не получается подставить цену из справочника Номенклатура. Помогите можалуйста...
В модуле формы
&НаКлиенте
Процедура МатериалыМатериалПриИзменении(Элемент)
    ТестНаСервере1();
КонецПроцедуры

&НаСервере
Процедура ТестНаСервере1()
    ОбъектНаСервере = РеквизитФормыВЗначение("Объект");
    ОбъектНаСервере.ЦенаСерв();
    ЗначениеВРеквизитФормы(ОбъектНаСервере, "Объект");
КонецПроцедуры


В модуле объекта:
Процедура ЦенаСерв()экспорт
  Отбор = Новый Структура();
    Отбор.Вставить("номенклатура",Номенклатура);
    Цена = Номенклатура.Розничная;


    
      
КонецПроцедуры // ЦенаСерв()


В отладчике видно что не передается Номенклатура, тоесть "".
Vofka
Номенклатура - это реквизит табличной части?
bodka
Да

&НаКлиенте
Процедура МатериалыМатериалПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;
    СтрокаТабличнойЧасти.Цена = ПолучитьЦену(СтрокаТабличнойЧасти.Материал);

КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьЦену(Номенклатура)

Возврат Номенклатура.Розничная;    

КонецФункции // ()
Vofka
Я так понял уже работает?
Sharki
Цитата(bodka @ 02.05.12, 18:09) необходимо зарегистрироваться для просмотра ссылки
В модуле объекта:
Процедура ЦенаСерв()экспорт
  Отбор = Новый Структура();
    Отбор.Вставить("номенклатура",Номенклатура);
    Цена = Номенклатура.Розничная;
      
КонецПроцедуры // ЦенаСерв()


Я бы сделал так если хочется писать в модуле объекта
Обновление цен для всех строк.
Для Каждого лСтрока Из ЭтотОбъект.ВашаТабличнаяЧасть Цикл
       лСтрока.Цена = лСтрока.Номенклатура.Розничная;
КонецЦикла;


А чтоб этим не заниматься то лучше на форме вынести отдельную колонку методом перетягивания нужного реквизита из ссылки реквизита табличной части.
bodka
А как допустим устанавливать разные виды цен, которые есть в справочнике номенклатура (Розничная, Оптовая) Если для каждого контрагента указывать тип цены (Перечисления.ТипЦены.Розничная). На форме есть реквизит "ТипЦены" - он устанавливается при смене реквизита "Контрагент".Нужно что б все цены соответствовали реквизиту "ТипЦены". Подскажите пожалуйста как реализовать или где можно почитать...
Batchir
1. Оформляйте вопросы согласно правилам, а то есть большое желание проходить мимо.
2. Если цен больше чем одна, то логично их хранить не в номенклатуре, а в отдельном месте (например, регистре сведений)
3. Как будут попадать в это место цены Вам решать, стандартно это делается документами установки цен.
4. Ну и получать уже цены из этого самого места по установленным отборам

Цитата(bodka @ 03.05.12, 15:40) необходимо зарегистрироваться для просмотра ссылки
Подскажите пожалуйста как реализовать или где можно почитать...

Почитать лучше всего в росийской УТ
Sharki
Цитата(bodka @ 03.05.12, 15:40) необходимо зарегистрироваться для просмотра ссылки
А как допустим устанавливать разные виды цен, которые есть в справочнике номенклатура (Розничная, Оптовая) Если для каждого контрагента указывать тип цены (Перечисления.ТипЦены.Розничная). На форме есть реквизит "ТипЦены" - он устанавливается при смене реквизита "Контрагент".Нужно что б все цены соответствовали реквизиту "ТипЦены". Подскажите пожалуйста как реализовать или где можно почитать...


не совсем не понятна задача как таковая.

Пожалуй стоит для начала описать что имеется(к примеру Есть справочник Контрагенты, у него табличная часть с колонками Номенклатура, цена и т.д.) Нужно сделать заполнение той колонки или той...
А то так вслепую развивая разные мысли с дикой фантазией то вариантов образуется оч. много и они зацикливаются на одной теме - что же я хочу сделать?
Vofka
"Вы пока делайте, а я потом скажу как надо" необходимо зарегистрироваться для просмотра ссылки
Sharki
Цитата(Vofka @ 03.05.12, 17:36) необходимо зарегистрироваться для просмотра ссылки
"Вы пока делайте, а я потом скажу как надо" необходимо зарегистрироваться для просмотра ссылки


Я когда пытаюсь выяснить что конкретно хочет заказчик - в итоге он говорит "сделайте как считаете нужным", и я делаю как-нибудь зная что 100% переделывать)
Проще сделать абы как и не заморачиваться один фиг они далеко не всегда знают че хотят)
Batchir
необходимо зарегистрироваться для просмотра ссылки
Цитата(Sharki @ 03.05.12, 17:41) необходимо зарегистрироваться для просмотра ссылки
Я когда пытаюсь выяснить что конкретно хочет заказчик - в итоге он говорит "сделайте как считаете нужным"
...
один фиг они далеко не всегда знают че хотят

Где-то читал что в таких случаях очень эффективно играть с заказчиком в игру "Зачем?"
т.е. задавать этот вопрос до тех пор, пока не выяснится первоисточник из-за которого возникла задача,
а тогда уже и КПД попадания в "то что нужно" намного выше.
Vofka
необходимо зарегистрироваться для просмотра ссылки
Цитата(Batchir @ 04.05.12, 8:20) необходимо зарегистрироваться для просмотра ссылки
Где-то читал что в таких случаях очень эффективно играть с заказчиком в игру "Зачем?"
т.е. задавать этот вопрос до тех пор, пока не выяснится первоисточник из-за которого возникла задача,
а тогда уже и КПД попадания в "то что нужно" намного выше.

Если долго играть в "Зачем" - заказчик может найти себе для игр другого "игрока"

Batchir
необходимо зарегистрироваться для просмотра ссылки
Цитата(Vofka @ 04.05.12, 8:47) необходимо зарегистрироваться для просмотра ссылки
Если долго играть в "Зачем" - заказчик может найти себе для игр другого "игрока"

Я больше склоняюсь к тому что если заказчик неадекватный и вообще не знает чего хочет, то скорее
всего "игрок" найдет себе "новую площадку для игр".
Ну или озвученная цена будет в несколько раз превышать предполагаемые затраты (с учетом 100% переделки), что вызовет у заказчика чувство "жабы" и ему придется осознать то что ему нужно и изложить в доступном для понимания виде (ну или как вариант программист заработает больше чем ожидал).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.