При открытии справочника Номенклатур, под текущего пользователя базы из реестра сведений к номенклатурам подставляются соответствующие цены.
Долго бился головой об стену, мануалы, книги и барабан, в конечном итоге это максимум к чему я смог прийти, но все-равно не работает.
Вернее все как бы работает, а вот записать цену в ячейку - зась.
Что я не так делаю? Я начинающий так что могу не замечать самой тупейшей ошибки.
Метод решил реализовать следующим образом:
Процедура СправочникСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
НашЭлемент = ДанныеСтроки.ссылка;
НашОбъект = НашЭлемент.ПолучитьОбъект();
НашОбъект.цена = ПолучениеЦены(ТекущаяДата(), НашЭлемент); //поле для записи. пятой точкой чую, что проблема тут
КонецПроцедуры
Функция ПолучениеЦены (АктуальнаяДата, ЭлементНоменклатуры)
НашОтбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);
ЗначениеРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,НашОтбор);
Возврат ЗначениеРесурсов.цена;
КонецФункции
метод выбора пользователя я реализую потом, главное с этим разобраться.
Нужно не столько записать в поле значение цены, сколько его там отобразить, это если что.
Возможно стоило бы по другому это сделать все, я не знаю. Возможно есть вариант сохранения несколько справочников под каждого контрагента...
Или в документах цену нужно тянуть не из справочника а напрямую из регистра? Да, наверное так и нужно.
И еще по спискам:
Так как я только учусь, то не до конца еще понимаю всей механики. На данный момент опять же списков, раз о них идет речь.
Вот например, я решил создать документ, в форме списка которого, в зависимости от значения РадиоКнопки будут выводится списки документов разного типа, в котором ТекущийПользователь является "владельцем".
Все выводится так как я хочу. Но есть один минус - таблица выводится с колонками сгенеренными ею самой. Там не хватает нужным мне колонок, к примеру: "пользователь", "магазин" и т.д., которые там вообще есть.
И как их отобразить в таблице?
Вот код:
Процедура ПриОткрытии()
//Значение РадиоКнопкм при открытии
Приходы = "Приходы";
//Создаем Массив типов
Массив = Новый Массив;
Массив.Добавить(Тип("ДокументСписок.Приход"));
Таблица = ЭлементыФормы.ТабличноеПоле1;
ОтборПоТекПользователю(Таблица, массив);
Таблица.СоздатьКолонки();
КонецПроцедуры
Процедура ПриходыПриИзменении(Элемент)
Таблица = ЭлементыФормы.ТабличноеПоле1;
Если Приходы = "Приходы" тогда
Массив = Новый Массив;
Массив.Добавить(Тип("ДокументСписок.Приход"));
ОтборПоТекПользователю(Таблица, Массив);
иначе
Массив = Новый Массив;
Массив.Добавить(Тип("ДокументСписок.Отправка"));
ОтборПоТекПользователю(Таблица, Массив);
КонецЕсли;
Таблица.СоздатьКолонки();
КонецПроцедуры
процедура ОтборПоТекПользователю(Таблица, Массив)
//смена типа табличного поля по значению РадиоКнопки
НашТип = Новый ОписаниеТипов(Массив);
Таблица.ТипЗначения = НашТип;
//вывод документов по текущему пользователю
ТекПользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
Таблица.Значение.Отбор.пользователь.значение = ТекПользователь;
//Даем права Админу видеть всё
если ТекПользователь <> "Админ" тогда
Таблица.Значение.Отбор.пользователь.использование = Истина;
Конецесли;
КонецПроцедуры
Спасибо большое заранее.
А то так тяжело самому это все осваивать. Даже спросить не у кого. Бывает бьешься над какой-то мелочью днями, которую бы практикущий кодер подсказал бы в аське за пару минут.
А тут уже сил больше моих нет...