|
Ошибка Переменная не определена в Общем модуле ПроведениеРасчетов | ☑ | ||
---|---|---|---|---|
0
Lite2008
28.01.22
✎
18:52
|
1. Добрый день всем! Я ученик-новичок в 1с, потому заранее извиняюсь при наличии элементарных ошибок.
2. Сделал Общий модуль ПроведениеРасчетов. В свойствах поставил галочку "Глобальный". Выбивает ошибку: {CommonModule.ПроведениеРасчетов.Module(9,3)}: Переменная не определена (Запрос) < >Запрос.Текст = {CommonModule.ПроведениеРасчетов.Module(19,3)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("Регистратор", Регистратор);{CommonModule.ПроведениеРасчетов.Module(20,3)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);{CommonModule.ПроведениеРасчетов.Module(21,9)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);{CommonModule.ПроведениеРасчетов.Module(23,23)}: Переменная не определена (Запрос) ВыборкаРезультата = < >Запрос.Выполнить().Выбрать();{CommonModule.ПроведениеРасчетов.Module(50,4)}: Переменная не определена (Запрос) < >Запрос.Текст ={CommonModule.ПроведениеРасчетов.Module(62,3)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер);{CommonModule.ПроведениеРасчетов.Module(63,3)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("ИзмеренияБазового", Измер);{CommonModule.ПроведениеРасчетов.Module(64,3)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("Регистратор", Регистратор);{CommonModule.ПроведениеРасчетов.Module(65,3)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);{CommonModule.ПроведениеРасчетов.Module(66,9)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);{CommonModule.ПроведениеРасчетов.Module(68,26)}: Переменная не определена (Запрос) ВыборкаРезультата = < >Запрос.Выполнить().Выбрать(); 3. Вот сам текст модуля: Процедура РассчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников) Экспорт Регистратор = НаборЗаписейРегистра.Отбор.Регистратор.Значение; // Рассчитать первичные записи. Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда Запрс = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НачисленияДанныеГрафика.ЗначениеПериодРегистрации КАК Норма, | НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт, | НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки |ИЗ | РегистрРасчета.Начисления.ДанныеГрафика(Регистратор = &Регистратор И | ВидРасчета = &ВидРасчета И Сотрудник В (&СписокСотрудников)) | КАК НачисленияДанныеГрафика"; Запрос.УстановитьПараметр("Регистратор", Регистратор); Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета); Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников); ВыборкаРезультата = Запрос.Выполнить().Выбрать(); Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл СтруктураНомер = Новый Структура("НомерСтроки"); СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки; ВыборкаРезультата.Сбросить(); Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда Если ВыборкаРезультата.Норма = 0 Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Вид расчета: Оклад - Нет рабочих дней в заданном периоде"; Сообщение.Сообщить(); ЗаписьРегистра.Результат = 0; Иначе // Рассчитать оклад по фактическому периоду // и исходным данным. ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные/ВыборкаРезультата.Норма) * ВыборкаРезультата.Факт; Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Выполнен расчет" + ЗаписьРегистра.Регистратор + " - " + ЗаписьРегистра.ВидРасчета + " - " + ЗаписьРегистра.Сотрудник; Сообщение.Сообщить(); КонецЕсли; КонецЕсли; КонецЦикла; // Рассчитать вторичные записи. ИначеЕсли ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда Запрс = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | НачисленияБазаНачисления.РезультатБаза КАК База, | НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки |ИЗ | РегистрРасчета.Начисления.БазаНачисления(&ИзмеренияОсновного, | &ИзмеренияБазового, , Регистратор = &Регистратор И ВидРасчета = &ВидРасчета И | Сотрудник В (&СписокСотрудников))КАК НачисленияБазаНачисления"; Измер = Новый Массив(1); Измер[0] = "Сотрудник"; Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер); Запрос.УстановитьПараметр("ИзмеренияБазового", Измер); Запрос.УстановитьПараметр("Регистратор", Регистратор); Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета); Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников); ВыборкаРезультата = Запрос.Выполнить().Выбрать(); Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл СтруктураНомер = Новый Структура("НомерСтроки"); СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки; ВыборкаРезультата.Сбросить(); Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда ЗаписьРегистра.Результат = ВыборкаРезультата.База * (10/100); Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Выполнен расчет" + ЗаписьРегистра.Регистратор + " - " + ЗаписьРегистра.ВидРасчета + " - " + ЗаписьРегистра.Сотрудник; Сообщение.Сообщить(); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры 4. Я пробовал снять галочку "Глобальный", тогда при попытках действий с документами Начисления сотрудникам выбивает ошибку: {Документ.НачисленияСотрудникам.МодульОбъекта(38,2)}: Переменная не определена (Запрос) < >Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка); {Документ.НачисленияСотрудникам.МодульОбъекта(41,13)}: Переменная не определена (Запрос) ТаблЗнач = < >Запрос.Выполнить().Выгрузить(); {Документ.НачисленияСотрудникам.МодульОбъекта(45,2)}: Переменная не определена (ПроведенияРасчетов) < >ПроведенияРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников); {Документ.НачисленияСотрудникам.МодульОбъекта(47,2)}: Переменная не определена (ПроведенияРасчетов) < >ПроведенияРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Премия, МассивСотрудников); 5. Вот модуль Документа НачисленияСотрудникам: Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр Начисления Движения.Начисления.Записывать = Истина; Для Каждого ТекСтрокаНачисления Из Начисления Цикл Движение = Движения.Начисления.Добавить(); Движение.Сторно = Ложь; Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета; Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала; Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания); Движение.ПериодРегистрации = Дата; Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала; Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания); Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник; Движение.ГрафикРаботы = ТекСтрокаНачисления.ГрафикРаботы; Движение.ИсходныеДанные = ТекСтрокаНачисления.Начислено; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Записываем движения регистров. Движения.Начисления.Записать(); // Получим список всех сотрудников, содержащихся в документе. Запрс = Новый Запрос( "ВЫБРАТЬ РАЗЛИЧНЫЕ | НачисленияСотрудникамНачисления.Сотрудник |ИЗ | Документ.НачисленияСотрудникам.Начисления | КАК НачисленияСотрудникамНачисления | |ГДЕ | НачисленияСотрудникамНачисления.Ссылка = &ТекущийДокумент"); Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка); // Сформируем список сотрудников. ТаблЗнач = Запрос.Выполнить().Выгрузить(); МассивСотрудников = ТаблЗнач.ВыгрузитьКолонку("Сотрудник"); // Вызов процедуры РассчитатьНачисления из общего модуля. ПроведенияРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников); Движения.Начисления.Записать( , Истина); ПроведенияРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Премия, МассивСотрудников); Движения.Начисления.Записать( , Истина); КонецПроцедуры 6. Помогите пожалуйста решить ошибку. |
|||
1
Фрэнки
28.01.22
✎
18:57
|
эх...
почти в самом конце простыни опечатка // Записываем движения регистров. Движения.Начисления.Записать(); // Получим список всех сотрудников, содержащихся в документе. Запрс = Новый Запрос( "ВЫБРАТЬ РАЗЛИЧНЫЕ Видишь? А дальше идет текст модуля уже без опечатки в слове Запрос и оно не определено. |
|||
2
Lite2008
28.01.22
✎
19:33
|
Благодарю. Опечатку исправил, но все равно выбивает ошибку:
{Документ.НачисленияСотрудникам.МодульОбъекта(42,2)}: Переменная не определена (ПроведенияРасчетов) <<?>>ПроведенияРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников); {Документ.НачисленияСотрудникам.МодульОбъекта(44,2)}: Переменная не определена (ПроведенияРасчетов) <<?>>ПроведенияРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Премия, МассивСотрудников); |
|||
3
Михаил Козлов
28.01.22
✎
19:48
|
Проверьте имя модуля.
|
|||
4
Lite2008
28.01.22
✎
21:14
|
Исправил в модуле Документа НачисленияСотрудникам ошибки в названиях общего модуля ПроведениеРасчетов:
с // Вызов процедуры РассчитатьНачисления из общего модуля. ПроведенияРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников); Движения.Начисления.Записать( , Истина); ПроведенияРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Премия, МассивСотрудников); Движения.Начисления.Записать( , Истина); на // Вызов процедуры РассчитатьНачисления из общего модуля. ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников); Движения.Начисления.Записать( , Истина); ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Премия, МассивСотрудников); Движения.Начисления.Записать( , Истина); Но все равно, при любых раскладах, выбивает ошибку: {ОбщийМодуль.ПроведениеРасчетов.Модуль(9,3)}: Переменная не определена (Запрос) <<?>>Запрос.Текст = {ОбщийМодуль.ПроведениеРасчетов.Модуль(19,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("Регистратор", Регистратор); {ОбщийМодуль.ПроведениеРасчетов.Модуль(20,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета); {ОбщийМодуль.ПроведениеРасчетов.Модуль(21,9)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников); {ОбщийМодуль.ПроведениеРасчетов.Модуль(23,23)}: Переменная не определена (Запрос) ВыборкаРезультата = <<?>>Запрос.Выполнить().Выбрать(); {ОбщийМодуль.ПроведениеРасчетов.Модуль(50,4)}: Переменная не определена (Запрос) <<?>>Запрос.Текст = {ОбщийМодуль.ПроведениеРасчетов.Модуль(62,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер); {ОбщийМодуль.ПроведениеРасчетов.Модуль(63,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ИзмеренияБазового", Измер); {ОбщийМодуль.ПроведениеРасчетов.Модуль(64,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("Регистратор", Регистратор); {ОбщийМодуль.ПроведениеРасчетов.Модуль(65,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета); {ОбщийМодуль.ПроведениеРасчетов.Модуль(66,9)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников); {ОбщийМодуль.ПроведениеРасчетов.Модуль(68,26)}: Переменная не определена (Запрос) ВыборкаРезультата = <<?>>Запрос.Выполнить().Выбрать(); |
|||
5
pechkin
28.01.22
✎
21:58
|
глобальный он же клиентский, а не серверный
|
|||
6
Lite2008
28.01.22
✎
22:16
|
pechkin "глобальный он же клиентский, а не серверный" То есть? Что нужно исправить?
В свойствах Общего модуля ПроведениеРасчетов я пробовал так ставить галочки (1 вариант - "Глобальный", "Сервер", "Вызов сервера"), (2 вариант - "Сервыер" и "Вызов сервера"), (3 вариант - только "Сервер"). Во всех случаях выбивало следующую ошибку (или не могло вовсе запустить режим Отладки или при попытке проведения/перепроведения документов Начисления сотрудникам в режиме отладки): {ОбщийМодуль.ПроведениеРасчетов.Модуль(9,3)}: Переменная не определена (Запрос) <<?>>Запрос.Текст = {ОбщийМодуль.ПроведениеРасчетов.Модуль(19,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("Регистратор", Регистратор); {ОбщийМодуль.ПроведениеРасчетов.Модуль(20,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета); {ОбщийМодуль.ПроведениеРасчетов.Модуль(21,9)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников); {ОбщийМодуль.ПроведениеРасчетов.Модуль(23,23)}: Переменная не определена (Запрос) ВыборкаРезультата = <<?>>Запрос.Выполнить().Выбрать(); {ОбщийМодуль.ПроведениеРасчетов.Модуль(50,4)}: Переменная не определена (Запрос) <<?>>Запрос.Текст = {ОбщийМодуль.ПроведениеРасчетов.Модуль(62,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер); {ОбщийМодуль.ПроведениеРасчетов.Модуль(63,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ИзмеренияБазового", Измер); {ОбщийМодуль.ПроведениеРасчетов.Модуль(64,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("Регистратор", Регистратор); {ОбщийМодуль.ПроведениеРасчетов.Модуль(65,3)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета); {ОбщийМодуль.ПроведениеРасчетов.Модуль(66,9)}: Переменная не определена (Запрос) <<?>>Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников); {ОбщийМодуль.ПроведениеРасчетов.Модуль(68,26)}: Переменная не определена (Запрос) ВыборкаРезультата = <<?>>Запрос.Выполнить().Выбрать(); Что делать в таком случае? |
|||
7
pechkin
28.01.22
✎
22:21
|
(6) сними галку глобальный
|
|||
8
Lite2008
28.01.22
✎
22:28
|
снял. все равно то же самое. Я пробовал (2 вариант - "Сервыер" и "Вызов сервера") и (3 вариант - только "Сервер") без галки глобальный. то же само. Может быть причина в чем-то другом?
|
|||
9
AlvlSpb
28.01.22
✎
22:41
|
Запрс = Новый Запрос; У тебя во всем коде так. Потому и нет Переменной Запрос, есть переменная Запрс
|
|||
10
Lite2008
28.01.22
✎
22:50
|
Очень благодарю за помощь со словом Запрос. Все наконец-то исправилось!)))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |