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

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

  1. n.s.gnedash
    Offline

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

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    в конце этих процедур добавить СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Цена*СтрокаТабличнойЧасти.Количество
  2. gru_svet
    Offline

    gru_svet

    Регистрация:
    9 окт 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    если честно - не вижу логики - сумма документа должна выводить сумму по нескольким строкам, а то что вы предлагаете - во первых - дает ошибки, во вторых считает только по одной строке
  3. n.s.gnedash
    Offline

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

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Да, извините не до конца прочитал и сразу начал печатать.
    Ну а по-вопросу , вот эти галки стоят?
    1.В свойствах таб. части Посмотреть вложение 12510
    2.В свойствах колонки Посмотреть вложение 12511

    Ну а по-другим ошибкам в отладчике нужно посмотреть как называется реквизит сумма

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      132,1 КБ
      Просмотров:
      59
    • 2.JPG
      2.JPG
      Размер файла:
      94 КБ
      Просмотров:
      49
  4. gru_svet
    Offline

    gru_svet

    Регистрация:
    9 окт 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    теперь подсчет суммы документа отпал, но сумму по все равно не считает....ни так ни сяк
  5. n.s.gnedash
    Offline

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

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    1. поставь точку останова в процедуре ТоварыКоличествоПриИзменении в месте КонецПроцедуры
    2. измени количество в документе в режиме отладки
    3. когда программа остановится выдели надпись СтрокаТабличнойЧасти и нажми Shift+F9, или правой кнопкой Вычислить выражение. В открывшемся вычисленном выражении найди как называется реквизит таб части Сумма и замени его
  6. gru_svet
    Offline

    gru_svet

    Регистрация:
    9 окт 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    функция вычислить выыражение недоступна :(
  7. n.s.gnedash
    Offline

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

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    не может быть такого
    опиши по шагам, что делаешь и что происходит
  8. gru_svet
    Offline

    gru_svet

    Регистрация:
    9 окт 2012
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    в конфигурации: точку останова поставила в конце процедуры количествоПриИзменении,
    в режиме 1с предприятия: открыла документ приходная, в таблице в колонке количество написала число. нажала кнопку ОК, изменений не произошло.
    в конфигурации: выделила первую строчку, где встречается строкаТабличнойЧасти, правой кнопкой мыши - вычислить выражение - серое, недоступное
  9. n.s.gnedash
    Offline

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

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    1. полностью закрой все окна 1с
    2. открой 1с в конфигураторе
    3. открой свой документ и поставь курсор в процедуре ТоварыКоличествоПриИзменении в месте КонецПроцедуры
    4. нажми F9. после этого напротив КонецПроцедуры, в этой же строке должна появиться красноватая точка
    5. нажми F5
    6. программа откроется в режиме отладки.теперь открывай документ и меняй количество
    7. когда программа перекинет тебя в конфигуратор выделяй ТоварыКоличествоПриИзменении жми вычислить выражение
  10. n.s.gnedash
    Offline

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

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Опечатка... СтрокаТабличнойЧасти вычислять нужно, а не ТоварыКоличествоПриИзменении
  11. 1cUserAndrew
    Offline

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

    Регистрация:
    27 май 2010
    Сообщения:
    4.948
    Симпатии:
    149
    Баллы:
    104
    Судя по ошибке на третьем скрине, не хватает кавычки. Но в коде все кавычки на месте.
    Может, проще будет, если Вы выложите Вашу базу, а мы посмотрим :)

    А то получается какое-то гадание, что у Вас там за проблема...
    Вероятность угадывания маловероятна :)
  12. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Всем доброго времени сутот, очень нужна ваша помошь, прошу не игнорировать!!! Заранее очень благодарен!!!
    Прблема следущая Документ НачисленияСотрудникам выдает ошибку:

    {Документ.НачисленияСотрудникам.МодульОбъекта(54,1)}: Переменная не определена (ПроведениеРасчетов)
    <<?>>ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников); (Проверка: Сервер)
    {Документ.НачисленияСотрудникам.МодульОбъекта(57,1)}: Переменная не определена (ПроведениеРасчетов)
    <<?>>ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Премия, МассивСотрудников); (Проверка: Сервер)
    {Документ.НачисленияСотрудникам.МодульОбъекта(54,1)}: Переменная не определена (ПроведениеРасчетов)
    <<?>>ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников); (Проверка: Толстый клиент (обычное приложение))
    {Документ.НачисленияСотрудникам.МодульОбъекта(57,1)}: Переменная не определена (ПроведениеРасчетов)
    <<?>>ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Премия, МассивСотрудников); (Проверка: Толстый клиент (обычное приложение))

    В общем модуле, ПроведениеРасчетов ощибок нет и настроен он так, стоят галки: глобальный, сервер, вызов сервера!!
    При снятии галки глобальный ошибки в модуле документа, НачисленияСотрудникам проподают но при проведении документов выкидывает сразу в модуль документа мол, что то не так....

    Сижу 5-ый час не могу понять почему....
    Помогите пожалуйста.
  13. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.984
    Симпатии:
    398
    Баллы:
    104
    Уберите галку Глобальный и поставьте Экспорт рядом с названием процедуры.
  14. Goldenrain
    Offline

    Goldenrain

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

    Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    // регистр Начисления
    Движения.Начисления.Записывать = Истина;
    Для Каждого ТекСтрокаНачисления Из Начисления Цикл
    Движение = Движения.Начисления.Добавить();
    Движение.Сторно = Ложь;
    Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;
    Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала;
    Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
    Движение.ПериодРегистрации = Дата;
    Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала;
    Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);
    Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;
    Движение.ГрафикРаботы = ТекСтрокаНачисления.ГрафикРаботы;
    Движение.ИсходныеДаннны = ТекСтрокаНачисления.Начислено;
    КонецЦикла;

    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

    // Записываем движения регистров
    Движения.Начисления.Записать();

    // Получим список всех сотрудников, содержащихся в документе
    Запрос = Новый Запрос(
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    | НачисленияСотрудникамНачисления.Сотрудник
    |ИЗ
    | Документ.НачисленияСотрудникам.Начисления
    | КАК НачисленияСотрудникамНачисления
    |
    |ГДЕ
    | НачисленияСотрудникамНачисления.Ссылка = &ТекущийДокумент");
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);

    // Сформируем список сотрудников
    ТаблЗнач = Запрос.Выполнить().Выгрузить();
    МассивСотрудников = ТаблЗнач.ВыгрузитьКолонку("Сотрудник");

    //Вызов процедуры РассчитатьНачисления из общего модуля
    ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников);
    Движения.Начисления.Записать( , Истина);

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

    И ВОТ КОД, ОБЩЕГО МОДУЛЯ.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

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

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

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

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

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

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


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

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


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

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

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

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

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


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

    КонецЕсли;

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

    Не могу прекрипить фаил базы!!!!!!!!!!!!!!!!!!!!!! К СОЖАЛЕНИЮ(((((((((((((((((

    Я так делал, вот, что он пишет!!!!!!!!!!!!!! ОбщийМодуль.ПроведениеРасчетов.Модуль(39)}: Поле объекта не обнаружено (ИсходныеДанные)
    ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные /ВыборкаРезультата.Норма) * ВыборкаРезультата.Факт;

    Я так делал, вот, что он пишет!!!!!!!!!!!!!! ОбщийМодуль.ПроведениеРасчетов.Модуль(39)}: Поле объекта не обнаружено (ИсходныеДанные)
    ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные /ВыборкаРезультата.Норма) * ВыборкаРезультата.Факт;


    Я так делал, вот, что он пишет!!!!!!!!!!!!!! ОбщийМодуль.ПроведениеРасчетов.Модуль(39)}: Поле объекта не обнаружено (ИсходныеДанные)
    ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные /ВыборкаРезультата.Норма) * ВыборкаРезультата.Факт;
  15. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.984
    Симпатии:
    398
    Баллы:
    104
    Ну вот видите, до общего модуля то достучались. Значит у Вас нет такого поля в Запись регистра. Отладчиком посмотрите, что там.
  16. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    ВСЕМ огромное спасибо за внимание!!! Особенно выражаю свою благодарность nbIpKuH_BaH9I, ты очень помог, я все таки разобрался в чем дело, галка мешала: глобальный, ну и.... спустя 8 часор работы,)) хочу заметить, что не даром сидел, такой опыт не пропьеш... Я так правдо и не понял, что галка: глобальный меняет??!!! И зачем ана вобще нужна?? Вобщем всем хорошего настроения на выходных......
  17. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.984
    Симпатии:
    398
    Баллы:
    104
    8 часов работали и так не смогли ответить на этот вопрос. Значит синтакс-помощником не пользовались. Запомните, там есть все. (Практически). :) Глобальный модуль в 1С 8 - это общий модуль с установленной галкой "Глобальный". Что означает, что он будет использоваться в глобальном контексте. Т.е. процедуры и функции такого модуля можно вызывать без прописания имя самого модуля.
  18. Goldenrain
    Offline

    Goldenrain

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

    Я ПОНЯЛ СПАСИБО!!!
  19. Goldenrain
    Offline

    Goldenrain

    Регистрация:
    23 ноя 2012
    Сообщения:
    14
    Симпатии:
    0
    Баллы:
    1
    Доброго времени суток... ЛЮДИ ПОМОГИТЕ ПОЖАЛУЙСТА!!! Очень нужна ваша помощь. Вопрос такой создал Процедуру ПриАктивизацииСтроки в ПланеОбменов/Филиалы/ФормаСписка/Список

    &НаКлиенте
    Процедура СписокПриАктивизацииСтроки(Элемент)
    Если ПредопределенныйУзел(Элемент.ТекущаяСтрока) Тогда
    Элементы.ЗарегистрироватьИзменения.Доступность = Ложь;
    Иначе
    Элементы.ЗарегистрироватьИзменения.Доступность = Истина;
    КонецЕсли;
    КонецПроцедуры

    Захожу в 1С Предприятие 8.2 в Филиалы пишет ошибку: {ПланОбмена.Филиалы.Форма.ФормаСписка.Форма(29)}: Поле объекта не обнаружено (ЗарегистрироватьИзменения)
    Элементы.ЗарегистрироватьИзменения.Доступность = Ложь;
  20. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ЗарегистрироватьИзменения - что есть такое?

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