Простой Запрос

Форум 1С: Одинэс.Ру

Найти!

Простой Запрос

qwertypirogov
27.01.2009 - 09:24
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Оклад = Справочник.Сотрудники.Оклад;
|Наименование1 = Справочник.Сотрудники.Подразделение.Наименование;
|Наименование = Справочник.Сотрудники.Наименование;
|Д = Справочник.Сотрудники.Должность.Наименование;
|СостояниеФизлица = Справочник.Сотрудники.СостояниеФизлица;
|Группировка Наименование1;
|Группировка Наименование;
|Условие(СостояниеФизлица =Перечисление.СостояниеФизлица.СотрудникОсновной);
что надо, чтоб запрос и совместителей выбирал
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
20.10.2020 - 02:22
Смотри также:
Как из 1С распечатать сертификаты в формате pdf
Глюк с БИ или я чё-то не понимаю
Как из 1С обратиться к странице Интернета?

Re: Простой Запрос

qwertypirogov
8 - 30.01.2009 - 06:13
Пока Запрос.Группировка(2) = 1 Цикл  
окл=Запрос.Ставка*Запрос.Оклад ;
ПриказОПриеме = глПриказПоСотруднику(Запрос.Наименование,РабочаяДата(),"ПриказОПриемеНаРаботу");
Принят=ПриказОПриеме.ДатаПриема;
н=н+1;  
Как сделать, чтоб Перем Принят дату приема выводила.Спасибо.

Re: Простой Запрос

Arden
9 - 30.01.2009 - 06:26
куда выводила ?

Re: Простой Запрос

qwertypirogov
10 - 30.01.2009 - 06:42
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос  
н=0;
с=0;
о=0;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;  
 
|Ставка= Справочник.Сотрудники.Ставка;
|Оклад = Справочник.Сотрудники.Оклад;
|Наименование1 = Справочник.Сотрудники.Подразделение.Наименование;
|Наименование = Справочник.Сотрудники.Наименование;
|Д = Справочник.Сотрудники.Должность.Наименование;
|СостояниеФизлица = Справочник.Сотрудники.СостояниеФизлица;
|Группировка Наименование1;
|Группировка Наименование;
|Условие((СостояниеФизлица =Перечисление.СостояниеФизлица.СотрудникОсновной)ИЛИ(СостояниеФизлица =Перечисление.СостояниеФизлица.СотрудникНеосновной));
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
 
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Наименование1
Таб.ВывестиСекцию("Наименование1");
Пока Запрос.Группировка(2) = 1 Цикл  
окл=Запрос.Ставка*Запрос.Оклад ;
ПриказОПриеме = глПриказПоСотруднику(Запрос.Наименование,РабочаяДата(),"ПриказОПриемеНаРаботу");
Принят=ПриказОПриеме.ДатаПриема;
н=н+1;  
Если    Запрос.СостояниеФизлица =Перечисление.СостояниеФизлица.СотрудникОсновной Тогда
        
в="+";
о=о+1;
Иначе
в="-";
с=с+1;
КонецЕсли;      
 
// Заполнение полей Наименование
Таб.ВывестиСекцию("Наименование");
КонецЦикла;
КонецЦикла;
Таб.ВывестиСекцию("Всего");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
Предупреждение("Есть!!"+РазделительСтрок+"товарищ");

Re: Простой Запрос

Arden
11 - 30.01.2009 - 06:48
заполнить секцию таблицы не получается чтоли ?
http://www.firststeps.ru/1c/1cbuh1.html - Шаг 7

Re: Простой Запрос

qwertypirogov
12 - 30.01.2009 - 07:23
Выдает: СостояниеСотрудника.ИспользоватьОбъект("СостояниеФизлица",Сотрудник);
{Глобальный модуль(1847)}: СостояниеФизлица не является константой или периодическим параметром!

Интересные темы

odines.ru
20.10.2020 - 02:22
Смотри также:
Нужен программист 7.7
Падает 1С при открытии обработки загрузки/выгрузки проводок
Открыть диалог нового документа через расшифровку ячейки возможно?

Re: Простой Запрос

Arden
13 - 30.01.2009 - 08:12
ааа, вот у тебя что.
1С не идентифицирует сотрудников по строковому реквизиту ФИО
ты не правильно группируешь сотрудников в запросе (вернее не по тому реквизиту).
ты группируешь по ФИО, а если у тебя на предприятии будет 2 полных однофамильца ? редко но такое встречается, тогда у тебя 1 сотрудник выпадет из результатов запроса.
в запрос надо вставить строку
|Объект = Справочник.Сотрудники.ТекущийЭлемент;
.
вместо
|Группировка Наименование;
написать
|Группировка Объект;
тогда
ПриказОПриеме = глПриказПоСотруднику(Запрос.Объект,РабочаяДата(),"ПриказОПриемеНаРаботу");
.
кстати
|Группировка Наименование1;
теоретически тоже не правильно, но в конкретной ситуации будет работать.

Re: Простой Запрос

qwertypirogov
14 - 30.01.2009 - 08:25
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
н=0;
с=0;
о=0;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;  
    |Объект = Справочник.Сотрудники.ТекущийЭлемент;
|Ставка= Справочник.Сотрудники.Ставка;
|Оклад = Справочник.Сотрудники.Оклад;
|Наименование1 = Справочник.Сотрудники.Подразделение.Наименование;
|Д = Справочник.Сотрудники.Должность.Наименование;
|СостояниеФизлица = Справочник.Сотрудники.СостояниеФизлица;
|Группировка Наименование1;
|Группировка Объект;
|Условие((СостояниеФизлица =Перечисление.СостояниеФизлица.СотрудникОсновной)ИЛИ(СостояниеФизлица =Перечисление.СостояниеФизлица.СотрудникНеосновной));
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Наименование1");
Пока Запрос.Группировка(2) = 1 Цикл  
окл=Запрос.Ставка*Запрос.Оклад ;
ПриказОПриеме = глПриказПоСотруднику(Запрос.Объект,РабочаяДата(),"ПриказОПриемеНаРаботу");
Принят=ПриказОПриеме.ДатаПриема;
н=н+1;  
Если    Запрос.СостояниеФизлица =Перечисление.СостояниеФизлица.СотрудникОсновной Тогда
в="+";
о=о+1;
Иначе
в="-";
с=с+1;
КонецЕсли;      
Таб.ВывестиСекцию("Наименование");
КонецЦикла;
КонецЦикла;
Таб.ВывестиСекцию("Всего");
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
Предупреждение("Есть!!"+РазделительСтрок+"товарищ");
КонецПроцедуры
Все равно Выдает: СостояниеСотрудника.ИспользоватьОбъект("СостояниеФизлица",Сотрудник);
{Глобальный модуль(1847)}: СостояниеФизлица не является константой или периодическим параметром!

Re: Простой Запрос

Arden
15 - 30.01.2009 - 08:38
блин, про группы забыл :(
у тебя там наверное сотрудники по папочкам разложены, а они в запрос попадают ?
а какое у папочки "Состояние физлица"
|Группировка Объект без групп;

Re: Простой Запрос

qwertypirogov
16 - 30.01.2009 - 09:01
Все получилось.Спасибо.

Re: Простой Запрос

Jimbo
17 - 02.04.2009 - 08:44
многабукф - устал читать (зачем столько кода??? 3 строчки подправили)
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Можно ли быстро посчитать кол-во документов? Расшифровка - не пойму((( »
© 2009 Форум 1С: Одинэс.Ру