8.х Проблема с кодом Автоматическое заполнение цены в Документе оказание услуг

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Цукерман, 15 апр 2010.

  1. TopicStarter Overlay
    Цукерман
    Offline

    Цукерман

    Регистрация:
    15 апр 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    из Книги Радченко 1С:Приедприятие 8.1 Практическое пособие разработчика

    В модуле формы:

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

    _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ _ _ __ _ _ __ _ _ __ _ _ __ _ _ __ _ _ __ _ _ __ _ _ __

    Ошибка:

    {Документ.ОказаниеУслуги.Форма.ФормаДокумента(52,37)}: Переменная не определена (СтрокаТабличнойЧасти)
    РаботаСДокументами.РассчитатьСумму(<<?>>СтрокаТабличнойЧасти);
    {Документ.ОказаниеУслуги.Форма.ФормаДокумента(50,30)}: Переменная не определена (РаботаСоСправочниками)
    СтрокаТабличнойЧасти.Цена = <<?>>РаботаСоСправочниками.РозничнаяЦена(Дата, Элемент.Значение)

    _________________________________________________________________________________________

    Общий модуль РаботаСДокументами:



    Процедура РасчитатьСумму(СтрокаТабличнойЧасти)Экспорт
    СтрокаТабличнойЧасти.Сумма=СтрокаТабличнойЧасти.Количество*СтрокаТабличнойЧасти.Цена;
    КонецПроцедуры

    ________________________________________________________________________________________


    Общий модуль РаботаСоСправочниками:



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

    _________________________________________________________________________________________



    Помогите разобраться, пожалуйста!?!?
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Что за конфигурация, релиз? вы сами изменения вносите или что происходит?
  3. TopicStarter Overlay
    Цукерман
    Offline

    Цукерман

    Регистрация:
    15 апр 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Учебная конфигурация по Книге Радченко 1С:Приедприятие 8.1 Практическое пособие разработчика

    Автоматическое заполнение цены в Документе оказание услуг, при вызове процедуры в модуле формы документа "ОказаниеУслуг" из общего модуля РаботаСДокументами выводит сообщение об ошибке(приведена в теме) также при вызове функции РаботаСоСправочниками.РозничнаяЦена
  4. TopicStarter Overlay
    Цукерман
    Offline

    Цукерман

    Регистрация:
    15 апр 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Пишу по листингу приведенному в учебнике.

    Ошибка: Переменная не определена (СтрокаТабличнойЧасти)
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну а где вы определяете что такое СтрокаТабличнойЧасти?

    попробуйте так

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

    Цукерман

    Регистрация:
    15 апр 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Аналогичное поведение, имена все проверил
  7. TopicStarter Overlay
    Цукерман
    Offline

    Цукерман

    Регистрация:
    15 апр 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1

    {Документ.ОказаниеУслуги.Форма.ФормаДокумента(53,2)}: Переменная не определена (РаботаСДокументами)
    <<?>>РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    {Документ.ОказаниеУслуги.Форма.ФормаДокумента(51,28)}: Переменная не определена (РаботаСоСправочниками)
    СтрокаТабличнойЧасти.Цена=<<?>>РаботаСоСправочниками.РозничнаяЦена(Дата, Элемент.Значение);
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    У Вас платформа какая? Номер
  9. TopicStarter Overlay
    Цукерман
    Offline

    Цукерман

    Регистрация:
    15 апр 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    1С:Предприятие 8.1, учебная версия (8.1.9.57)
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    попробуйте

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

    Вообще он ругается что не может найти ваши Общие модули. Они у Вас точно есть? Оба модуля? какие у них галочки в свойсвах стоят?
  11. TopicStarter Overlay
    Цукерман
    Offline

    Цукерман

    Регистрация:
    15 апр 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    {Документ.ОказаниеУслуги.Форма.ФормаДокумента(50,30)}: Процедура или функция с указанным именем не определена (РозничнаяЦена)
    СтрокаТабличнойЧасти.Цена = <<?>>РозничнаяЦена(Дата, Элемент.Значение);
    {Документ.ОказаниеУслуги.Форма.ФормаДокумента(51,2)}: Процедура или функция с указанным именем не определена (РассчитатьСумму)
    <<?>>РассчитатьСумму(СтрокаТабличнойЧасти);
  12. TopicStarter Overlay
    Цукерман
    Offline

    Цукерман

    Регистрация:
    15 апр 2010
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Спасибо за помощь, не понял в чем причина до конца, снес всю процедуру, перезапустил конфигуратор и вбил все заново как и было + СтрокаТабличнойЧасти=ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;(которую сам упустил,а вы напомнили) и и заработало

    Спасибо за помощь, не понял в чем причина до конца, снес всю процедуру, перезапустил конфигуратор и вбил все заново как и было + СтрокаТабличнойЧасти=ЭлементыФормы.ПереченьНоменклатуры.ТекущиеДанные;(которую сам упустил,а вы напомнили) и и заработало

Поделиться этой страницей