Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Регистр Сведений  (Прочитано 2893 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SHveД
Интересующийся

ru
Offline Offline

« : 27-01-2010 19:19 » 

Доброго времени суток, пытаюсь освоить 8 версию, для чего был найден обучающий диск, с учебной версией 1С и с книгой разбирающей основы с примерами програмирования.
Теперь сама суть, создаю Регистр Сведений, с помощью которого в документе Оказание Услуги при изменении даты должна изменится цена товара и пересчитаться соответственно сумма, пример:
10.1.2005 продали транзистор за 3 рубля одну штуку, сумма 3 рубля, но если меняем дату на 08.1.2005 то программа сверившись с Регистром Сведений должна поменять цену транзистора на 5 рублей и сумму пересчитать.

НО этого не происходит, приобновлении товара в строке выдает такую ошибку:

Поле объекта не обнаружено (ПереченьНомеклатуры)

Нажимаю "Подробно" выдает строчку из модуля :

{Документ.ОказаниеУслуги.Форма.ФормаДокумента(55)}: Поле объекта не обнаружено (ПереченьНоменклатуры)
СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;

В чем проблема никак понять не могу, только осваиваю 1С, все переделывал по нескольку раз, результат один и тот же, совсем стопарнулся я в изучении, помогите, и если можно с разъяснением.

Вот модули форм, самого документа Оказание Услуги:

Процедура ПереченьНоменлатурыНомеклатураПриИзменении(Элемент)
// Получить текущую строку табличной части
СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
   
// Установить цену
СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Дата,Элемент.Значение);
   
// Пересчитать сумму строки
РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
КонецПроцедуры

И модуль из Общего модуля - Работа с Документами:

Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт

   // Создать вспомогательный объект Отбор
   Отбор = Новый Структура("Номенклатура",ЭлементНоменклатуры);
   
   // Получить актуальные значения ресурсов регистра
   ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата,Отбор);

   Возврат ЗначенияРесурсов.Цена;

КонецФункции

Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 04-02-2010 13:25 » 

На форме нету элемента ПереченьНоменклатуры.
Как это получилось - другой вопрос. Возможный вариант:
создали элемент ПереченьНоменклатуры
к нему привязали событие ПереченьНоменлатурыНомеклатураПриИзменении
элемент переименовали(!), при этом событие не переименовывается(!!!) автоматически

Попробуй вместо
Код:
СтрокаТабличнойЧасти = ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;
использовать
Код:
СтрокаТабличнойЧасти = Элемент.ТекущиеДанные;
т.к. Элемент (то, что передается внутрь обработчика события) и есть вызвавший событие элемент формы
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines