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

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

  1. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Проверьте есть ли у Вас модуль "Работа с документами"?
  2. Kostya
    Offline

    Kostya

    Регистрация:
    22 фев 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Есть такой модуль.
    Вроде бы все правильно, но все же ошибка есть(((
  3. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    В свойствах модуля стоит галка "Клиент"?
  4. Kostya
    Offline

    Kostya

    Регистрация:
    22 фев 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Да,стоит.
  5. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    может быть ключевое слово экспорт отсутствует?
  6. Kostya
    Offline

    Kostya

    Регистрация:
    22 фев 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Слово Экспорт тоже присутствует.
    С Общим модулем все в порядке.
    Я и ранее вызывал эту процедуру из общего модуля и все работало. А сейчас не могу понять в чем проблема...
  7. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    тогда делитесь dt файлом
  8. Kostya
    Offline

    Kostya

    Регистрация:
    22 фев 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Вот файл dt.
    Посмотрите и помогите разобраться пожалуйста.

    Вложения:

    • 1Cv8.rar
      Размер файла:
      52,9 КБ
      Просмотров:
      114
  9. Dimrik
    Offline

    Dimrik

    Регистрация:
    3 апр 2008
    Сообщения:
    39
    Симпатии:
    0
    Баллы:
    1
    В слове РаботаСДокументами пропущена буква)
  10. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    сам не проверял, но автору советую пользоваться ctrl+пробел чтобы не заниматься машинописью :)
  11. Kostya
    Offline

    Kostya

    Регистрация:
    22 фев 2010
    Сообщения:
    32
    Симпатии:
    0
    Баллы:
    1
    Да.. Не знал,что уж на таком смогу ошибиться.
    Спасибо всем большое кто пытался помочь :)
  12. senty
    Offline

    senty

    Регистрация:
    1 мар 2010
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    У меня,что-то схожее с тем,что указано в первом сообщении.
    Но нет такого
    Посмотреть вложение 3468 Посмотреть вложение 3469
    1С - 8.0.Учебная версия.
    И как вызвать процедуру без указания имени?
    Если убираю имя "РаботаСДокументами",то
    всё работает,извините за ап темы :unsure:
    Заработало почему то лишь после перезапуска конфигурации 1С,а так не хотел работать ...
    Но виноват конечно я,ни как ни программа ..

    Вложения:

  13. Ser'ga
    Offline

    Ser'ga

    Регистрация:
    12 авг 2010
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток. Тоже карпею над изучением сего языка программирования. Пишу учебную конфу на платформе 8.1 по книге Радченко. Так вот в главе про оптимизацию проведения документа ОказаниеУслуг в конце после окончания написания процедуры у меня не получилось запустить отладку ввиду кучи возникших в коде ошибок. Текст процедуры такой:

    Код:
    Процедура ОбработкаПроведения()
    Запрос=Новый Запрос;
    Если Режим=РежимПроведенияДокумента.Оперативный Тогда
    Запрос.Текст=
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |	ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
    |	ОказаниеУслугиПереченьНоменклатуры.Количество,
    |	ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    |	ОказаниеУслугиПереченьНоменклатуры.Сумма,
    |	СтоимостьМатериаловОстатки.СтоимостьОстаток,
    |	ОстаткиМатериаловОстатки.КоличествоОстаток,
    |	ОстаткиМатериаловОстаткиНаСкладе.КоличествоОстаток КАК КоличествоНаСкладе
    |ИЗ
    |	Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК СтоимостьМатериаловОстатки
    |		ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = СтоимостьМатериаловОстатки.Материал
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(&МоментВремени, Материал В (&СписокНоменклатурыДокумента)) КАК ОстаткиМатериаловОстатки
    |		ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстатки.Материал
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
    |				&МоментВремени,
    |				Материал В (&СписокНоменклатурыДокумента)
    |					И Склад = &СкладВДокументе) КАК ОстаткиМатериаловОстаткиНаСкладе
    |		ПО ОказаниеУслугиПереченьНоменклатуры.Номенклатура = ОстаткиМатериаловОстаткиНаСкладе.Материал
    |ГДЕ
    |	ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
    |
    |ДЛЯ ИЗМЕНЕНИЯ
    |	РегистрНакопления.ОстаткиМатериалов.Остатки,
    |	РегистрНакопления.СтоимостьМатериалов.Остатки";
    Запрос.УстановитьПараметр("СкладВДокументе",Склад);
    Иначе
    Запрос.Текст=
    "ВЫБРАТЬ
    |РегистрНакопления.ОстаткиМатериалов.Остатки";
    КонецЕсли;
    Запрос.УстановитьПараметр("МоментВремени",МоментВремени());
    Запрос.УстановитьПараметр("СписокНоменклатурыДокумента",ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
    Запрос.УстановитьПараметр("Ссылка",Ссылка);
    ВыборкаРезультатаЗапроса=Запрос.Выполнить().Выбрать();
    Пока ВыборкаРезультатЗапроса.Следующий() Цикл
    //Проверить остаток при оперативном проведении.
    Если Режим=РежимПроведенияДокумента.Оперативный Тогда
    Если ВыборкаРезультатаЗапроса.ВидНоменклатуры=Перечисления.ВидыНоменклатуры.Материал Тогда
    Остаток=?(ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе=Null,0,ВыборкаРезультатаЗапроса.КоличествоОстатокНаСкладе);
    Если Остаток<ВыборкаРезультатаЗапроса.Количество Тогда
    Сообщить("Материал"+СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура)+"имеется только"+Остаток);
    Отказ=Истина;
    Возврат;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    //Сформировать движения.
    Если ВыборкаРезультатаЗапроса.ВидНоменклатуры=Перечисления.ВидыНоменклатуры.Материал Тогда
    //Регистор ОстаткиМатериалов Расход Движение=Движения.ОстаткиМатериалов.Добавить();
    Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
    Движение.Период=Дата;
    Движение.Материал=ВыборкаРезультатЗапроса.Номенклатура;
    Движение.Склад=Склад;
    Движение.Количество=ВыборкаРезультатЗапроса.Количество;
    
    //Регистр СтоимостьМатериалов Расход.
    Движение=Движения.СтоимостьМатериалов.Добавить();
    Движение.ВидДвижения=ВидДвиженияНакопления.Расход;
    Движение.Период=Дата;
    Движение.Материал=ВыборкаРезультатаЗапроса.Номенклатура;
    //Расчитать стоимость материала.СтоимостьМатериала=?(ВыборкаРезультатаЗапроса.КоличествоОстаток=Null,0,ВыборкаРезультатаЗапроса.СтоимостьОстаток/ВыборкаРезультатаЗапроса.КоличествоОстаток);
    Движение.Стоимость=СтоимостьМатериала*ВыборкаРезультатаЗапроса.Количество;
    КонецЕсли;
    
    //Регистр Продажи.
    Движение=Движения.Продажи.Добавить();
    Движение.Период=Дата;
    Движение.Номенклатура=ВыборкаРезультатаЗапроса.Номенклатура;
    Движение.Клиент=Клиент;
    Движение.Мастер=Мастер;
    Движение.Количество=ВыборкаРезультатаЗапроса.Количество;
    Движение.Выручка=ВыборкаРезультатаЗапроса.Сумма;
    Если ВыборкаРезультатаЗапроса.ВидНоменклатуры=Перечисления.ВидыНоменклатуры.Материал Тогда
    Движение.Стоимость=СтоимостьМатериала*ВыборкаРезультатаЗапроса.Количество;
    Иначе
    Движение.Стоимость=0;
    КонецЕсли;
    
    КонецЦикла;
    
    //Записать движения регистров
    Движения.ОстаткиМатериалов.Записать();
    Движения.СтоимостьМатериалов.Записать();
    Движения.Продажи.Записать();
    КонецПроцедуры
    
    
    
    Ошибки следующие:
    умент.ОказаниеУслуги(3,6)}: Переменная не определена (Режим)
    Если <<?>>Режим=РежимПроведенияДокумента.Оперативный Тогда

    {Документ.ОказаниеУслуги(42,7)}: Переменная не определена (Режим)
    Если <<?>>Режим=РежимПроведенияДокумента.Оперативный Тогда

    {Документ.ОказаниеУслуги(40,6)}: Переменная не определена (ВыборкаРезультатЗапроса)
    Пока <<?>>ВыборкаРезультатЗапроса.Следующий() Цикл

    {Документ.ОказаниеУслуги(57,21)}: Переменная не определена (ВыборкаРезультатЗапроса)
    Движение.Материал=<<?>>ВыборкаРезультатЗапроса.Номенклатура;

    {Документ.ОказаниеУслуги(59,23)}: Переменная не определена (ВыборкаРезультатЗапроса)
    Движение.Количество=<<?>>ВыборкаРезультатЗапроса.Количество;

    {Документ.ОказаниеУслуги(55,3)}: Переменная не определена (Движение)
    <<?>>Движение.ВидДвижения=ВидДвиженияНакопления.Расход;

    {Документ.ОказаниеУслуги(56,3)}: Переменная не определена (Движение)
    <<?>>Движение.Период=Дата;

    {Документ.ОказаниеУслуги(57,3)}: Переменная не определена (Движение)
    <<?>>Движение.Материал=ВыборкаРезультатЗапроса.Номенклатура;

    {Документ.ОказаниеУслуги(58,3)}: Переменная не определена (Движение)
    <<?>>Движение.Склад=Склад;

    {Документ.ОказаниеУслуги(59,3)}: Переменная не определена (Движение)
    <<?>>Движение.Количество=ВыборкаРезультатЗапроса.Количество;

    {Документ.ОказаниеУслуги(67,22)}: Переменная не определена (СтоимостьМатериала)
    Движение.Стоимость=<<?>>СтоимостьМатериала*ВыборкаРезультатаЗапроса.Количество;

    {Документ.ОказаниеУслуги(79,22)}: Переменная не определена (СтоимостьМатериала)
    Движение.Стоимость=<<?>>СтоимостьМатериала*ВыборкаРезультатаЗапроса.Количество;

    Ошибки однотипные вроде, но понять не могу че происходит..... :unsure:
  14. Ser'ga
    Offline

    Ser'ga

    Регистрация:
    12 авг 2010
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Данные ошибки решил сам ) Но в результате проведения документов появилась новая!!!
    {Документ.ОказаниеУслуги(40)}: Ошибка при вызове метода контекста (Выполнить): {(2, 37)}: Поле не найдено "РегистрНакопления.ОстаткиМатериалов.Остатки"
    РегистрНакопления.ОстаткиМатериалов.<<?>>Остатки
    ВыборкаРезультатаЗапроса=Запрос.Выполнить().Выбрать();
    Че делать????
  15. Ser'ga
    Offline

    Ser'ga

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

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

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Тема не мертвая. Просто решать за вас простые какие то задачи, коих у каждого программиста в день появляется по паре штук. И если Вы "ломаетесь" на таких простых вещак - то может стоит подумать о том, чтобы пройти курсы обучения или хотябы прочитать книгу по 1С (а то и вообще сменить сферу дейятельности).

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


    P.S.
    Все вышесказанное является сугубо моим личным мнением. Оно может не совпадать с мнением отдельных товарищей, и даже с мнением большинства.

    P.P.S.
    Вместо того, чтобы сидеть и ждать когда вам ответят - включите межушный нерв и посмотрите на кусок
    Код:
    Запрос.Текст=
    "ВЫБРАТЬ
    |РегистрНакопления.ОстаткиМатериалов.Остатки";
    
    
    ОТКУДА БЛИН ВЫБРАТЬ ТО? ОТКУДА?
    - Рядовой Ser'ga принесите мне.
    - Что принести, товарищ сержант?
    - Ты че, тупой чтоли? Сказал же тебе принеси.

    Вот ваш диалог с 1С примерно так и выглядит.
  17. Ser'ga
    Offline

    Ser'ga

    Регистрация:
    12 авг 2010
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Всего навсего это листинг как раз из учебника ) И не стоит так болезненно это воспринимать, я новичок в этом деле да! Вот и спрашиваю то что не могу допетрить сам...
  18. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Если бы допер сам-эффект от обучения был бы намного лучше:)
  19. Ser'ga
    Offline

    Ser'ga

    Регистрация:
    12 авг 2010
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Я просто не пойму, вроде все делал как в книге, все на пять раз перепроверил вроде.... а не работает!
  20. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ser'ga неужели в учебнике есть действительно такой листинг? Не верю.. (с)
    Код:
    Запрос.Текст=
    "ВЫБРАТЬ
    |РегистрНакопления.ОстаткиМатериалов.Остатки";
    
    это могло быть как часть запроса или пример.
    Посмотрите на этот запрос, и сравните его с вашим первым. Помимо ключевого слова "ВЫБРАТЬ" в запросе также должно присутствовать указание откуда выбрать ("ИЗ"), а также (опционально) условия накладываемые на выборку ("ГДЕ").

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