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

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

  1. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Я сделал так но не помогает!(

    &НаКлиенте
    Процедура ЗарегистрироватьИзменения(Команда)
    РегистрацияИзмененийНаСервере(Элементы.Список.ТекущаяСтрока)

    ;КонецПроцедуры

    Я сделал так но не помогает!(

    &НаКлиенте
    Процедура ЗарегистрироватьИзменения(Команда)
    РегистрацияИзмененийНаСервере(Элементы.Список.ТекущаяСтрока)

    ;КонецПроцедуры

    Я сделал так но не помогает!(

    &НаКлиенте
    Процедура ЗарегистрироватьИзменения(Команда)
    РегистрацияИзмененийНаСервере(Элементы.Список.ТекущаяСтрока)

    ;КонецПроцедуры
  2. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    зачем затраивать сообщения, не паникуйте. вы на мой вопрос ответьте для начала
  3. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    у тебя в ЭЛЕМЕНТЫ есть то, чему ты хочешь закрыть доступность???
  4. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Да есть
  5. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Элементы.ЗарегистрироватьИзменения - тип какой?
  6. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
  7. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Да есть!
  8. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    пройдитесь отладчиком. Может у вас называется она как-то не так на форме?
  9. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Я в первую очередь, сверил по буквам все правильно... Я сейчас скину текст может так будет легче разобраться...???

    Код:
    &НаКлиенте
    Процедура ЗарегистрироватьИзменения(Команда)
    РегистрацияИзмененийНаСервере(Элементы.Список.ТекущаяСтрока);
    КонецПроцедуры
    
    &НаСервереБезКонтекста
    Функция ПредопределенныйУзел(Узел)
    Возврат Узел = ПланыОбмена.Филиалы.ЭтотУзел();
    КонецФункции
    
    &НаСервереБезКонтекста
    Процедура РегистрацияИзмененийНаСервере(Узел)
    // Регистрация изменений всех данных для узла
    ПланыОбмена.ЗарегистрироватьИзменения(Узел);
    КонецПроцедуры
    &НаКлиенте
    Процедура СписокПриАктивизацииСтроки(Элементы)
    Если ПредопределенныйУзел(Элементы.ТекущаяСтрока) Тогда
    Элементы.ЗарегистрироватьИзменения.Доступность = Ложь;			   <--Указывает вот на эту строку!!!!! И пишит ошибку!!!
    Иначе
    Элементы.ЗарегистрироватьИзменения.Доступность = Истина;
    КонецЕсли;
    КонецПроцедуры
    

    {ПланОбмена.Филиалы.Форма.ФормаСписка.Форма(28)}: Поле объекта не обнаружено (ЗарегистрироватьИзменения)
    Элементы.ЗарегистрироватьИзменения.Доступность = Ложь;
  10. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Элементы.ФормаЗарегистрироватьИзменения.Доступность
    а не
    Элементы.ЗарегистрироватьИзменения.Доступность
  11. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Спасибо тебе ОГРОМНОЕ)))
  12. Fsmitt
    Offline

    Fsmitt

    Регистрация:
    5 дек 2013
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Доброе время суток. Начал изучать 1С по книге Радченко, Листинг С суммой все исправил как тут обсуждалось, В свойствах конфигурации - обычное приложение, запуск 1С предприятия - выбрать автоматически. проблема такая при запуске предприятия выходит пустое окно, что не так сделано? Заранее спасибо!
  13. Бахыт
    Offline

    Бахыт

    Регистрация:
    6 дек 2013
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте !Пожалуйста помогите, у меня выдает такую ошибку:"{Справочник.Организации.Форма.ФормаЭлемента.Форма(1090,45)}: Переменная не определена (СерияСвидетельстваПоНДС)
    НовыйКонтрагент.СерияСвидетельстваПоНДС = <<?>>СерияСвидетельстваПоНДС;"
  14. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Запускайте не в авто, а в обычном приложении.
    У вас нет инициализации этой переменной.
  15. Бахыт
    Offline

    Бахыт

    Регистрация:
    6 дек 2013
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    А как сделать инициализацию этой переменной?
  16. alexburn
    Online

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.767
    Симпатии:
    509
    Баллы:
    204
    Например:
    Код:
    Перем СерияСвидетельстваПоНДС;
  17. kurs73
    Offline

    kurs73

    Регистрация:
    17 мар 2015
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Перелистал ваш форум, но так и не нашел ответа. Помогите разобраться. Как и многие изучаю 1с по Радченко. Набрал все как в учебнике но .... .
    Код:
    Процедура ОбработкаПроведения(Отказ, Режим)
      
         Движения.ОстаткиМатериалов.Записывать = Истина;
         Движения.СтоимостьМатериалов.Записывать = Истина;
         Движения.Продажи.Записывать = Истина;
        
        Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
            Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
              
                // регистр ОстаткиМатериалов Расход      
            Движение = Движения.ОстаткиМатериалов.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
            Движение.Период = Дата;
            Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
            Движение.Склад = Склад;
            Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
            
        // регистр СтоимостьМатериалов Расход
            Движение = Движения.СтоимостьМатериалов.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
            Движение.Период = Дата;
            Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
            Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость * ТекСтрокаПереченьНоменклатуры.Количество;
           КонецЕсли;
          
        // регистр Продажи
            Движение = Движения.Продажи.Добавить();
            Движение.Период = Дата;
            Движение.Номенклатура = ТекСтрокаПереченьНоменклатуры.Номенклатура;
            Движение.Клиент = Клиент;
            Движение.Мастер = Мастер;
            Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
            Движение.Выручка = ТекСтрокаПереченьНоменклатуры.Сумма;
            Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость * ТекСтрокаПереченьНоменклатуры.Количество;
        КонецЦикла;
    
    КонецПроцедуры
    
    при добавлении регистра продаж начал выдавать ошибки:
    {Документ.ОказаниеУслуги.МодульОбъекта(31,22)}: Переменная не определена (Клиент)
    Движение.Клиент = <<?>>Клиент; (Проверка: Сервер)
    {Документ.ОказаниеУслуги.МодульОбъекта(32,22)}: Переменная не определена (Мастер)
    Движение.Мастер = <<?>>Мастер; (Проверка: Сервер)
    Помогите пож. разобраться.

    пользуйтесь тегами для оформления кода
    Последнее редактирование модератором: 17 мар 2015
  18. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    какой учебник конкретно, стр. скажите гляну
  19. Svb
    Online

    Svb Опытный в 1С Команда форума

    Регистрация:
    12 янв 2011
    Сообщения:
    980
    Симпатии:
    19
    Баллы:
    29
    Интересно, Петрович изучил 1С?..
  20. slmmls
    Offline

    slmmls

    Регистрация:
    19 июн 2015
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Всем доброго времени суток! Очередной "чайник":). Изучаю Радченко "1С 8.2 Практическое пособие разработчика". Столкнулась с проблемой по теме "Перерасчет" (стр. 575) при создании модуля формы Отчета НачисленияСотрудникам:
    Есть общий модуль ПроведениеРасчетов, в котором прописаны 2 процедуры: РассчитатьНачисления и ПерерассчитатьНачисления.

    1-ая процедура
    Процедура РассчитатьНачисления(НаборЗаписейРегистра,ТребуемыйВидРасчета,СписокСотрудников) Экспорт

    Регистратор=НаборЗаписейРегистра.Отбор.Регистратор.Значение;

    //Рассчитать первичные записи.
    Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма,
    |НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,
    |НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки
    |ИЗ
    |РегистрРасчета.Начисления.ДанныеГрафика(Регистратор = &Регистратор И
    |ВидРасчета = &ВидРасчета И Сотрудник В (&СписокСотрудников))
    |КАК НачисленияДанныеГрафика";

    Запрос.УстановитьПараметр("Регистратор", Регистратор);
    Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);
    Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);

    ВыборкаРезультата = Запрос.Выполнить().Выбрать();

    Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
    СтруктураНомер = Новый Структура("НомерСтроки");
    СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;
    ВыборкаРезультата.Сбросить();
    Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда
    Если ВыборкаРезультата.Норма = 0 Тогда
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Вид расчета: Оклад - Нет рабочих дней в заданном периоде";
    Сообщение.Сообщить();
    ЗаписьРегистра.Результат = 0;
    Иначе

    //Рассчитать оклад по фактическому периоду и исходным данным.
    ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные/ВыборкаРезультата.Норма) * ВыборкаРезультата.Факт;
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Выполнен расчет" +ЗаписьРегистра
    .Регистратор +"-"+
    ЗаписьРегистра.ВидРасчета +"-"+
    ЗаписьРегистра.Сотрудник;
    Сообщение.Сообщить();
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    //Рассчитать вторичные записи.
    ИначеЕсли ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |НачисленияБазаНачисления.РезультатБаза КАК База,
    |НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки
    |ИЗ
    |РегистрРасчета.Начисления.БазаНачисления(&ИзмеренияОсновного,
    |&ИзмеренияБазового,,Регистратор = &Регистратор И ВидРасчета = &ВидРасчета И
    |Сотрудник В (&СписокСотрудников)) КАК НачисленияБазаНачисления";

    Измер = Новый Массив (1);
    Измер[0] = "Сотрудник";

    Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер);
    Запрос.УстановитьПараметр("ИзмеренияБазового", Измер);
    Запрос.УстановитьПараметр("Регистратор", Регистратор);
    Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);
    Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);

    ВыборкаРезультата = Запрос.Выполнить().Выбрать();

    Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
    СтруктураНомер = Новый Структура("НомерСтроки");
    СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;
    ВыборкаРезультата.Сбросить();
    Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда
    ЗаписьРегистра.Результат = ВыборкаРезультата.База*(10/100);
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Выполнен расчет"+
    ЗаписьРегистра.Регистратор
    +"-"+ЗаписьРегистра.ВидРасчета
    +"-"+ЗаписьРегистра.Сотрудник;
    Сообщение.Сообщить();
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры

    2-ая процедура
    Процедура ПерерассчитатьНачисления(ТребуемыйВидРасчета) Экспорт
    //Здесь следует выбрать из набора записей перерасчета записи в следующей последовательности:
    //записи документа1 для сотрудников из списка,
    //записи документа2 для сотрудников из списка и т.д.

    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    |НачисленияПерерасчет.ОбъектПерерасчета,
    |НачисленияПерерасчет.Сотрудник
    |ИЗ
    |РегистрРасчета.Начисления.Перерасчет КАК НачисленияПерерасчет
    |
    |ГДЕ
    |НачисленияПерерасчет.ВидРасчета = &ТребуемыйВидРасчета
    |
    |ИТОГИ ПО
    |НачисленияПерерасчет.ОбъектПерерасчета");

    Запрос.УстановитьПараметр("ТребуемыйВидРасчета",ТребуемыйВидРасчета);
    СписокСотрудников = Новый СписокЗначений;

    //Перебрать группировку по регистратору.
    ВыборкаПоРегистратору = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    Пока ВыборкаПоРегистратору.Следующий() Цикл
    Регистратор = ВыборкаПоРегистратору.ОбъектПерерасчета;

    //Перебрать группировку по сотрудникам для выбранного регистратора и создать список сотрудников.
    ВыборкаПоСотрудникам = ВыборкаПоРегистратору.Выбрать();
    СписокСотрудников.Очистить();

    Пока ВыборкаПоСотрудникам.Следующий() Цикл
    СписокСотрудников.Добавить(ВыборкаПоСотрудникам.Сотрудник);
    КонецЦикла;

    //Получить набор записей регистра расчета для выбранного регистратора.
    НаборЗаписей = РегистрыРасчета.Начисления.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Значение=Регистратор;
    НаборЗаписей.Прочитать();

    РассчитатьНачисления(НаборЗаписей,ТребуемыйВидРасчета,СписокСотрудников);
    НаборЗаписей.Записать(,Истина);

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

    Если следовать тексту книги, то при написании 1-ой процедуры РассчитатьНачисления для общего модуля изначально необходимо было установить свойства: Глобальный, Сервер, Вызов сервера. А потом в этот же общий модуль нужно было прописать вторую процедуру ПерерассчитатьНачисления и сослаться на нее в модуле формы Отчета НачисленияСотрудникам:

    &НаКлиенте
    Процедура Перерассчитать()
    ПроведениеРасчетов.ПерерассчитатьНачисления(ПредопределенноеЗначение("ПланВидовРасчета.ОсновныеНачисления.Оклад"));
    ПроведениеРасчетов.ПерерассчитатьНачисления(ПредопределенноеЗначение("ПланВидовРасчета.ОсновныеНачисления.Премия"));
    КонецПроцедуры

    При закрытии модуля формы начало выдавать ошибку:

    {Отчет.НачисленияСотрудникам.Форма.ФормаОтчета.Форма(5,2)}: Переменная не определена (ПроведениеРасчетов)
    <<?>>ПроведениеРасчетов.ПерерассчитатьНачисления(ПредопределенноеЗначение("ПланВидовРасчета.ОсновныеНачисления.Оклад")); (Проверка: Тонкий клиент)
    {Отчет.НачисленияСотрудникам.Форма.ФормаОтчета.Форма(6,2)}: Переменная не определена (ПроведениеРасчетов)
    <<?>>ПроведениеРасчетов.ПерерассчитатьНачисления(ПредопределенноеЗначение("ПланВидовРасчета.ОсновныеНачисления.Премия")); (Проверка: Тонкий клиент)

    Моё дилетантское решение: две процедуры сделала отдельно в разных общих модулях. Для второго общего модуля установила флажок в свойстве Клиент (управляемое приложение) ввиду наличия в модуле формы Отчета НачисленияСотрудникам директивы "&НаКлиенте". После этого все работает.

    Вопрос: как можно все-таки сделать код двух этих процедур в одном общем модуле рабочим для всех обращений к нему?
    Спасибо за понимание!-Happy-

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