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

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

  1. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Такой листинг вполне мог быть в учебнике.
    Нередко такие ошибки НАМЕРЕННО вносятся в книги.
    Дабы обучающийся не занимался тупой копи-пастой/перепечатыванием текста, а был хоть иногда ВЫНУЖДЕН посидеть и подумать.

    В свое время бОльшая часть книг по паскалям/сям и прочим бейсикам жавам содержала такие ошибки - и недоумения это не вызывало.

    Тупо печатать код можно научить и макаку (и даже индуса), но вот чтобы этот код работал - это надо мозг хоть как то тренировать.
  2. Ser'ga
    Offline

    Ser'ga

    Регистрация:
    12 авг 2010
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Страница справочника 179.


    Код:
    ....
    Запрос.УстановитьПараметр("СкладВДокументе",Склад)
    Запрос.Текст=
    "ВЫБРАТЬ
    ...
    |РегистрНакопления.ОстаткиМатериалов.Остатки";
    КонецЕсли;
    Запрос.УстановитьПараметр("МоментВремени",МоментВремени());
    Запрос.УстановитьПараметр("СписокНоменклатурыДокумента",ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    
    
    
  3. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    А что в запросе там где "..."? Не там ли вам надо написать текст запроса, добавить в конце ключевое слово "ИЗ" и дописать "|РегистрНакопления.ОстаткиМатериалов.Остатки";?
  4. Ser'ga
    Offline

    Ser'ga

    Регистрация:
    12 авг 2010
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Может быть... наверное. Хотя до этого по порядку читая книгу, все листинги были полные, и примерно было понятно че к чему и в итоге все получалось. Ну да ладно, буду думать ) Спасибо всем
  5. Ser'ga
    Offline

    Ser'ga

    Регистрация:
    12 авг 2010
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Все, разобрался)))
  6. alfard
    Offline

    alfard

    Регистрация:
    26 апр 2011
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Добрый вечер, проблема такая же как и у Petrovich1984 в посте 44084 платформа стоит 8,2 вот файл подскажите что не так.. в свойствах убарана галочка с "Глобальный"

    Вложения:

    • 1Cv8.rar
      Размер файла:
      58,7 КБ
      Просмотров:
      22
  7. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Простите меня несведущего...
    А где этот пост 44084????

    Может всё-таки проблему опишите????
  8. alfard
    Offline

    alfard

    Регистрация:
    26 апр 2011
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Может всё-таки проблему опишите????
    [/quote]
    Цель: автоматически вычислять "Сумма" в документе при изменении при изменении "Количество" или "Цена".
    воть пишет как у петровича в начале темы.
  9. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    У вас не определена переменная РаботаСДокументами?
  10. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Бегло посмотрел Вашу базу. У Вас там нет ни вызова общего модуля, ни самого общего модуля.
    Так я и не понял, где ошибка возникает...
    Плюс у Вас там управляемое приложение.

    Создайте общий модуль "РаботаСДокументами". В его свойствах поставьте галку "Клиент (управляемое приложение)". В этом модуле создайте экспортную процедуру расчета суммы.

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

    И вызывайте её из модуля формы документа из обработчиков событий "ПриИзменении" Количества и цены.

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

    ukegsq

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

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

    {ОбщийМодуль.РаботаСДокументами.Модуль(6,25)}: Переменная не определена (Элементы)
    СтрокаТабличнойЧасти = <<?>>Элементы.Материалы.ТекущиеДанные; (Проверка: Тонкий клиент)
    {ОбщийМодуль.РаботаСДокументами.Модуль(11,25)}: Переменная не определена (Элементы)
    СтрокаТабличнойЧасти = <<?>>Элементы.Материалы.ТекущиеДанные; (Проверка: Тонкий клиент)

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

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

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Вот эти процедуры:
    Код:
    &НаКлиенте
    Процедура МатериалыПриИзменении(элемент)
    СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;
    РаботаСДокументами.РассчитатьСумму(СтрокаТабличнойЧасти);
    КонецПроцедуры
    
    &НаКлиенте
    Процедура МатериалыЦенаПриИзменении(Элемент)
    СтрокаТабличнойЧасти = Элементы.Материалы.ТекущиеДанные;
    РаботаСДокументами.РассчитатьСумму(строкаТабличнойЧасти);
    КонецПроцедуры
    
    должны располагаться не в общем модуле, а в модуле формы документа. Плюс они должны быть привязаны к событиям "При изменении" соответствующих полей.
  13. ukegsq
    Offline

    ukegsq

    Регистрация:
    17 авг 2011
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Спасибо!
    Теперь я столкнулся с другой проблемой.
    Я не могу найти процедуру РассчитатьСумму()
    Можете подсказать что мне надо сделать?
  14. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Эта процедура в общем модуле РаботаСДокументами, зачем ее искать?
  15. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    кхм...её не нужно в &НаСервере заключать?
  16. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Не, можно оставить на клиенте... Там же только цифры перемножаются (Цена*Кличество). Обращения к базе нет. Клиент справится. :)

    А вот если цену товара, допустим, получить надо, то тогда уже на сервер обращаться надо. Но тогда уже в качестве параметра строку табличной части не передать)))
  17. ukegsq
    Offline

    ukegsq

    Регистрация:
    17 авг 2011
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Просто у меня выходит
    Цель: автоматически вычислять "Сумма" в документе при изменении "Количество" или "Цена".

    У меня только получается, количество меняю и сумма автоматически меняется, но если я меняю цену то мне выводит на экран : Метод обьекта не обнаружен (РасситатьСумму)
  18. 1cUserAndrew
    Offline

    1cUserAndrew Профессионал в 1С Команда форума

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Наверное орфографическая ошибка в обработчике "ПриИзменении" цены.
    Сравните код с обработчиком "ПриИзменении" количества. Должно быть одинаково. Там ведь работает...
  19. ukegsq
    Offline

    ukegsq

    Регистрация:
    17 авг 2011
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Все проверил как вы и сказали, но мне все равно вылетает это окошко с надписью : Метод обьекта не обнаружен(РассчитатьСумму) :angry:
  20. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    А в общем модуле Работа с документами слово экспорт стоит после РассчитатьСумму()?

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