8.х Переменная не определена

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Petrovich1984, 1 ноя 2008.

  1. TopicStarter Overlay
    Petrovich1984
    Offline

    Petrovich1984

    Регистрация:
    1 ноя 2008
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Добрый день!
    Я только начинаю изучать 1С, читаю книгу Радченко "Практическое пособие разработчика. Примеры и типовые приемы". Создал по книге 2 документа (ПриходнаяНакладная и ОказаниеУслуги), в модуле ПриходнаяНакладная написано следующее:

    Код:
    Процедура МатериалыКоличествоПриИзменении(Элемент)
    
    СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
    //
    РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    
    
    КонецПроцедуры
    
    Процедура МатериалыЦенаПриИзменении(Элемент)
    
    СтрокаТабличнойЧасти = ЭлементыФормы.Материалы.ТекущиеДанные;
    
    // 
    
    РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    КонецПроцедуры>> (Аналогично и для др. документа)
    
    Также создал общий модуль под названием "РаботаСДокументами" со след. текстом:
    
    <<Процедура РассчитатьСумму(СтрокаТабличнойЧасти) Экспорт
    
    СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество * СтрокаТабличнойЧасти.Цена;
    
    КонецПроцедуры
    
    При попытке создать документ выдает следующее:

    <<{Документ.ОказаниеУслуги.Форма.ФормаДокумента(5,2)}: Переменная не определена (РаботаСДокументами)
    <<?>>РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    {Документ.ОказаниеУслуги.Форма.ФормаДокумента(11,2)}: Переменная не определена (РаботаСДокументами)
    <<?>>РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    >>

    Цель: автоматически вычислять "Сумма" в документе при изменении при изменении "Количество" или "Цена".

    Все делал по книге, помогите плиз разобраться, в чем дело.
  2. GRUV
    Offline

    GRUV Опытный в 1С

    Регистрация:
    7 ноя 2007
    Сообщения:
    106
    Симпатии:
    0
    Баллы:
    26
    В свойствах общего модуля убери галочку <Глобальный> или вызывай функцию без указания имени модуля ...
  3. TopicStarter Overlay
    Petrovich1984
    Offline

    Petrovich1984

    Регистрация:
    1 ноя 2008
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Спасибо! Действительно, вызвал процедуру без указания имени модуля - помогло. Только вот галочку "Глобальный" я не нашел: при нажатии правой кнопкой мыши появились свойства, на них нажал левой - появились свойства. Там ничего похожего нет...
  4. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Где нажимал-то? Нужно на имени модуля в дереве конфигурации нажимать.
  5. TopicStarter Overlay
    Petrovich1984
    Offline

    Petrovich1984

    Регистрация:
    1 ноя 2008
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Там и нажимал
  6. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Значит платформа 8.0 установлена.
  7. TopicStarter Overlay
    Petrovich1984
    Offline

    Petrovich1984

    Регистрация:
    1 ноя 2008
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Понятно, спасибо
  8. gsh23
    Offline

    gsh23

    Регистрация:
    7 апр 2007
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Товарищи, у меня примерно такая же ситуация. Радченко стр238 "Оптимизация документа Оказание Услуги. Выдает ошибку -
    {Документ.ОказаниеУслуги(3,9)}: Переменная не определена (НовыйЗапрос)
    Запрос=<<?>>НовыйЗапрос;

    Подскажите ещё, какова методика поиска ошибки? Потому что, доверяешь тому, что написано в книге. А, ведь, есть и ошибки. Как самому их отлавливать?

    Вложения:

    • 1Cv8.rar
      Размер файла:
      78,6 КБ
      Просмотров:
      159
  9. x_under
    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Ну у вас просто пробела не хватает. Надо так
    Код:
    Запрос = Новый Запрос;
    
  10. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Да методики особой нет, она приходит с опытом, и у каждого она своя. А то что касается ошибок в книге, так я думаю что это даже на руку, ведь когда сам догонишь из-за чего ошибка, тогда и на душе приятно и опыта набираешься.
  11. gsh23
    Offline

    gsh23

    Регистрация:
    7 апр 2007
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Понял, с пробелом - косяк. Но , все равно , что-то с этим документом не то. Теперь выдает ошибку -
    {Документ.ОказаниеУслуги(97)}: Преобразование значения к типу Число не может быть выполнено
    СтоимостьМатериала = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток = Null,
    Весь конфиг перечитал и сверил с книгой. Что не так делаю?

    Вложения:

    • 1Cv8.rar
      Размер файла:
      96,4 КБ
      Просмотров:
      99
  12. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Скачал вашу конфу, накидал быстро базу. Документ ОказаниеУслуги проводится.
    Вот только в коде есть ошибка:
    В запросе вы выбираете КоличествоОстаток, а ниже в коде используете КоличествоОстатокНаСкладе.
    Можно подробнее описать проблему? Или dt-шник выложи, а то базу нужно самому заполнять:)
  13. gsh23
    Offline

    gsh23

    Регистрация:
    7 апр 2007
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Да, пытаюсь по книге Радченко освоить 1С. В ней есть Раздел " Оптимизация документа ОказаниеУслуги" После которой необходимо перепровести созданные документы по оказанию услуги. Здесь ошибка и вылетает.

    Вложения:

    • 1Cv8.rar
      Размер файла:
      102,7 КБ
      Просмотров:
      94
  14. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    У вас Номенклатура Шланг резиновый имеет СтоимостьОстаток=-3, если менять,например, на Транзистор Philips 2N2369(СтоимостьОстаток=28), то проводит нормально. Значит у вас ошибка в регистре накопления СтоимостьМатериалов(может неправильно что раньше сделали).
  15. gsh23
    Offline

    gsh23

    Регистрация:
    7 апр 2007
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Понял, спасибо!
  16. Mobyk
    Offline

    Mobyk

    Регистрация:
    8 янв 2010
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Тоже это делаю на платформе 8.2 так мне выдает сл. ошибки

    {Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(4,23)}: Переменная не определена (ЭлементыФормы)
    СтрокаТабличнойЧасти=<<?>>ЭлементыФормы.Материалы.ТекущиеДанные; (Проверка: Тонкий клиент)
    {Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(11,23)}: Переменная не определена (ЭлементыФормы)
    СтрокаТабличнойЧасти=<<?>>ЭлементыФормы.Материалы.ТекущиеДанные; (Проверка: Тонкий клиент)
    {Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(6,2)}: Переменная не определена (РаботаСДокументами)
    <<?>>РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); (Проверка: Тонкий клиент)
    {Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(13,2)}: Переменная не определена (РаботаСДокументами)
    <<?>>РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти); (Проверка: Тонкий клиент)
    :unsure:
  17. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
  18. Евгения 18
    Offline

    Евгения 18

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

    Алдр

    Регистрация:
    2 фев 2010
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Вот там где у тебя "СтрокаТабличнойЧасти=<<?>>ЭлементыФормы.Материалы" нужно добавить после Материалы ".ТекущиеДанные"
  20. Kostya
    Offline

    Kostya

    Регистрация:
    22 фев 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. Вот решил заняться учением программированию в 1С.
    Все бы хорошо шло, да вот есть ошибочка. И никак не могу ее понять, помогите кто знает.
    За ранее благодарен.
    Вот сама ошибка,которую мне выдает.

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

    А вот и процедура в которой возникает ошибка.

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

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