Доброго дня! необходимо чтобы формировался список численности по подразделениям.
Создаю внешний отчет. 1С8.3
Выдает ошибку: {ВнешнийОтчет.Список.Форма.ФормаОтчета.Форма(158)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос1.Выполнить();
по причине:
{(37, 59)}: Не задано значение параметра "ТекущееПодразделение"
(ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение = <<?>>&ТекущееПодразделение
Листинг:
Прошу учесть, что опыт программиста у меня без малого 3 недели. Почему ругается на текущее подразделение?
Создаю внешний отчет. 1С8.3
Выдает ошибку: {ВнешнийОтчет.Список.Форма.ФормаОтчета.Форма(158)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос1.Выполнить();
по причине:
{(37, 59)}: Не задано значение параметра "ТекущееПодразделение"
(ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение = <<?>>&ТекущееПодразделение
Листинг:
ТабДок=Новый ТабличныйДокумент();
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Подразделение");
ТЗ.Колонки.Добавить("РШ");
ТЗ.Колонки.Добавить("РФ");
ТЗ.Колонки.Добавить("РП");
ТЗ.Колонки.Добавить("РС");
ТЗ.Колонки.Добавить("РВР");
ТЗ.Колонки.Добавить("РВД");
Запрос1=Новый Запрос;
Запрос1.Текст=
"ВЫБРАТЬ
| ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение КАК ТекущееПодразделение,
| КВ_ДополнительныеРеквизитыСрезПоследних.Категория КАК Категория,
| ВЫБОР
| КОГДА СостоянияСотрудниковСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ КАК ВД,
| ВЫБОР
| КОГДА КВ_ДополнительныеРеквизитыСрезПоследних.ХарактерРаботы = ЗНАЧЕНИЕ(Перечисление.КВ_ХарактерРаботы.РаботающийНаВременнойРаботе)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ КАК ВР,
| ВЫБОР
| КОГДА КадроваяИсторияСотрудниковСрезПоследних.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство)
| ИЛИ КадроваяИсторияСотрудниковСрезПоследних.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ КАК Сов,
| ВЫБОР
| КОГДА КВ_ДополнительныеРеквизитыСрезПоследних.ХарактерРаботы = ЗНАЧЕНИЕ(Перечисление.КВ_ХарактерРаботы.РаботающийНаПостояннойРаботе)
| И СостоянияСотрудниковСрезПоследних.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком)
| И КадроваяИсторияСотрудниковСрезПоследних.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство)
| И КадроваяИсторияСотрудниковСрезПоследних.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ КАК Пост
|ИЗ
| РегистрСведений.СостоянияСотрудников.СрезПоследних(&Период, ) КАК СостоянияСотрудниковСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТекущиеКадровыеДанныеСотрудников КАК ТекущиеКадровыеДанныеСотрудников
| ПО СостоянияСотрудниковСрезПоследних.Сотрудник = ТекущиеКадровыеДанныеСотрудников.Сотрудник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КВ_ДополнительныеРеквизиты.СрезПоследних КАК КВ_ДополнительныеРеквизитыСрезПоследних
| ПО СостоянияСотрудниковСрезПоследних.Сотрудник = КВ_ДополнительныеРеквизитыСрезПоследних.Сотрудник
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
| ПО СостоянияСотрудниковСрезПоследних.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник
|ГДЕ
| (ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение = &ТекущееПодразделение
| ИЛИ ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение.Родитель = &ТекущееПодразделение
| ИЛИ ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение.Родитель.Родитель = &ТекущееПодразделение
| ИЛИ ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение.Родитель.Родитель.Родитель = &ТекущееПодразделение)
| И СостоянияСотрудниковСрезПоследних.Состояние <> &состояние
| И РАЗНОСТЬДАТ(СостоянияСотрудниковСрезПоследних.Сотрудник.ФизическоеЛицо.ДатаРождения, СостоянияСотрудниковСрезПоследних.Период, ГОД) <= &Возраст
| И СостоянияСотрудниковСрезПоследних.Сотрудник.ФизическоеЛицо.Пол = &Пол
|
|СГРУППИРОВАТЬ ПО
| КВ_ДополнительныеРеквизитыСрезПоследних.Категория,
| ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение,
| ВЫБОР
| КОГДА КадроваяИсторияСотрудниковСрезПоследних.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство)
| ИЛИ КадроваяИсторияСотрудниковСрезПоследних.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА КВ_ДополнительныеРеквизитыСрезПоследних.ХарактерРаботы = ЗНАЧЕНИЕ(Перечисление.КВ_ХарактерРаботы.РаботающийНаПостояннойРаботе)
| И СостоянияСотрудниковСрезПоследних.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком)
| И КадроваяИсторияСотрудниковСрезПоследних.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство)
| И КадроваяИсторияСотрудниковСрезПоследних.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА СостоянияСотрудниковСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ,
| ВЫБОР
| КОГДА КВ_ДополнительныеРеквизитыСрезПоследних.ХарактерРаботы = ЗНАЧЕНИЕ(Перечисление.КВ_ХарактерРаботы.РаботающийНаВременнойРаботе)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ";
РезультатЗапроса = Запрос1.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
Стр = ТЗ.Добавить();
Стр.Подразделение=Выборка.Подразделение;
Если Выборка.Категория= Справочники.КВ_КатегорииСотрудников.НайтиПоКоду("000000001") Тогда
Стр.РП=Выборка.Пост;
Стр.РС= Выборка.Сов;
Стр.РВР= Выборка.ВР;
Стр.РВД= Выборка.ВД;
КонецЕсли;
КонецЦикла;
тз.ВыбратьСтроку();
ПоказатьПрошу учесть, что опыт программиста у меня без малого 3 недели. Почему ругается на текущее подразделение?
По теме из базы знаний
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.
- Не спеша, эффективно и правильно – путь разработки. Часть 2. Теория
- Работа с 1С через протокол OData
- Внедрение системы технологического контроля (практический кейс)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
добавляла строку уже
ругается:
{ВнешнийОтчет.Список.Форма.ФормаОтчета.Форма(156,52)}: Переменная не определена (ТекущееПодразделение)
Запрос1.УстановитьПараметр("ТекущееПодразделение",<<?>>ТекущееПодразделение); (Проверка: Сервер)
Не пойму почему. Вначале запроса же объявляли:
Запрос1.УстановитьПараметр("ТекущееПодразделение",ТекущееПодразделение);
ругается:
{ВнешнийОтчет.Список.Форма.ФормаОтчета.Форма(156,52)}: Переменная не определена (ТекущееПодразделение)
Запрос1.УстановитьПараметр("ТекущееПодразделение",<<?>>ТекущееПодразделение); (Проверка: Сервер)
Не пойму почему. Вначале запроса же объявляли:
ВЫБРАТЬ
| ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение КАК ТекущееПодразделение,
(4) в запросе:
|ГДЕ
| (ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение = &ТекущееПодразделение
вы указываете отбор, по какому подразделению хотите получить информацию, для этого необходимо перед выполнением запроса установить подразделение:
Запрос1.УстановитьПараметр("ТекущееПодразделение", Необходимое подразделение);
в начале запроса вы указали поле для результирующей таблицы, с отборами никак не связанную... По вашей логике: я получаю подразделение по подразделению, но не понятно какому.
установите параметр для какого подразделения вы хотите получить данные.
|ГДЕ
| (ТекущиеКадровыеДанныеСотрудников.ТекущееПодразделение = &ТекущееПодразделение
вы указываете отбор, по какому подразделению хотите получить информацию, для этого необходимо перед выполнением запроса установить подразделение:
Запрос1.УстановитьПараметр("ТекущееПодразделение", Необходимое подразделение);
в начале запроса вы указали поле для результирующей таблицы, с отборами никак не связанную... По вашей логике: я получаю подразделение по подразделению, но не понятно какому.
установите параметр для какого подразделения вы хотите получить данные.
сделаем скидку на трехнедельный "опыт"...
вам нужно в запрос передать значение "ПодразделениеПоКоторомуДелаетсяЗапрос" - т.е. это ссылка на элемент справочника "Подразделения"... соответственно вам нужно присвоить (или получить) переменной "ПодразделениеПоКоторомуДелаетсяЗапрос" значение
как пример это может быть
вам нужно в запрос передать значение "ПодразделениеПоКоторомуДелаетсяЗапрос" - т.е. это ссылка на элемент справочника "Подразделения"... соответственно вам нужно присвоить (или получить) переменной "ПодразделениеПоКоторомуДелаетсяЗапрос" значение
как пример это может быть
ПодразделениеПоКоторомуДелаетсяЗапрос = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделение");
(6)
Устанавливаем параметры:
Извините,надо делать срочно, а мозгов не хватает+каша в голове. => Поэтому
1)т.к. все подразделения хранятся в Справочник.ПодразделенияОрганизаций
наверное надо так указать значение переменной. чтобы оттуда брались данные. так?
но по идее надо брать данные из регистра сведений ТекущиеКадровыеДанныеСотр
2)
что есть УправлениеПользователями у вас??
Еще раз извиняюсь за детсадовские вопросы. Хотя возможно кому-то будет интересна темка.
Устанавливаем параметры:
ПодразделениеПоКоторомуДелаетсяЗапрос=Справочники.ПодразделенияОрганизаций;
Запрос1.УстановитьПараметр("Пол", Пол);
Запрос1.УстановитьПараметр("Возраст", Возраст);
Запрос1.УстановитьПараметр("Состояние", Перечисления.СостоянияСотрудника.Увольнение);
Запрос1.УстановитьПараметр("КонДата", КонДата);
Запрос1.УстановитьПараметр("ТекущееПодразделение",ПодразделениеПоКоторомуДелаетсяЗапрос);
РезультатЗапроса = Запрос1.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
ПоказатьИзвините,надо делать срочно, а мозгов не хватает+каша в голове. => Поэтому
1)т.к. все подразделения хранятся в Справочник.ПодразделенияОрганизаций
наверное надо так указать значение переменной. чтобы оттуда брались данные. так?
но по идее надо брать данные из регистра сведений ТекущиеКадровыеДанныеСотр
2)
ПодразделениеПоКоторомуДелаетсяЗапрос = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделение");
что есть УправлениеПользователями у вас??
Еще раз извиняюсь за детсадовские вопросы. Хотя возможно кому-то будет интересна темка.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот