|
v7: Проблема с отчетом по справочнику | ☑ | ||
---|---|---|---|---|
0
9451523
20.06.14
✎
15:08
|
Уважаемые форумчане
недавно написал свой первый отчет по справочнику.сотрудники , таблица формируется как надо по отделам по дате прихода и тд. и тп. , но возникла необходимость что бы таблица сформировалась по одному конкретному сотруднику. например я добавлю в форму диалога реквизит диалога назовем его к примеру ТабелНом в который будет вбиваться табельный номер сотрудника и из ходя из этого формироваться отчет только конкретно по этому сотруднику? вот образец кода: Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Сотрудники = Справочник.Сотрудники.ТекущийЭлемент; |ТабНом = Справочник.Сотрудники.Код; |Подразд = Справочник.Сотрудники.Подразделение; |Цех = Справочник.Сотрудники.Цех; |Долж = Справочник.Сотрудники.Должность; |Серия = Справочник.Сотрудники.ДокументСерия; |Номер = Справочник.Сотрудники.ДокументНомер; |Наименование = Справочник.Сотрудники.Наименование; |ДатаПр = Справочник.Сотрудники.ДатаПриема; |Группировка Сотрудники упорядочить по Сотрудники.Код, Сотрудники.Наименование, Сотрудники.Подразделение, Сотрудники.Цех, Сотрудники.ДокументСерия, Сотрудники.ДокументНомер, Сотрудники.Должность, Сотрудники.ДатаПриема без групп; |Условие(ДатаПр в дп); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Сотрудники Фамилия = ""; Имя = ""; Отчество = ""; ФамилияИмяОтчество = СокрЛП(Запрос.Наименование); ПозицияПервогоПробела = Найти(ФамилияИмяОтчество," "); Фамилия = Лев(ФамилияИмяОтчество,ПозицияПервогоПробела-1); ИмяОтчетсво=Прав(ФамилияИмяОтчество,СтрДлина(ФамилияИмяОтчество)-ПозицияПервогоПробела); ПозицияВторогоПробела = Найти(ИмяОтчетсво," "); Имя = Лев(ИмяОтчетсво,ПозицияВторогоПробела-1); Отчество = Прав(ИмяОтчетсво,СтрДлина(ИмяОтчетсво)-ПозицияВторогоПробела); прошу сильно не пинать, я только учусь 1С версия для SQL 7.7 С уважением Дамир Таб.ВывестиСекцию("Сотрудники"); КонецЦикла; // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры |
|||
1
ТакВотЖе
20.06.14
✎
15:12
|
ну условие добавляй, в чём проблема?
|
|||
2
9451523
20.06.14
✎
15:14
|
ТакВотЖе я знаю что туплю . подскажи как?
|
|||
3
ТакВотЖе
20.06.14
✎
15:17
|
|Условие (ТабНом=СокрЛП(ТабельныйНомерРеквизитФормы));
|
|||
4
Ёпрст
20.06.14
✎
15:17
|
(2)
|ТабельныйНомер = Справочник.Сотрудники.ТвойРеквизитСТабельнымНумером; |Условие (ТабельныйНомер = ИдентификаторРеквизитаСТабельнымНумеромНаФормеОтчета); |
|||
5
ТакВотЖе
20.06.14
✎
15:19
|
если же нужно, чтобы запрос формировался и так и так (и по всем и по одному сотруднику), то условие нужно загонять в "Если... КонецЕсли"
|
|||
6
Chum
20.06.14
✎
15:27
|
Нафига танцы со вводом ТН?
Что мешает выбирать непосредственно элемент справочника Сотрудники? Кидай на форму поле ввода с типом Справочник.Сорудники, и пусть идентификатор будет ВыбранныйСотрудник. По кнопке с педалькой откроется форма списка справочника, там ищи нужного сотра и выбирай двойным кликом по нужной строке. В твоем запросе добавь условие: |Условие(Сотрудники = ВыбранныйСотрудник); вроде все |
|||
7
catena
20.06.14
✎
15:44
|
(5)На сколько я помню, в 77 было достаточно в условии поставить В.
|
|||
8
9451523
23.06.14
✎
08:45
|
Спасибо всем ,все заработало
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |