Имя: Пароль:
1C
1C 7.7
v7: Помогите с запросом
,
0 stas_t_88
 
30.09.12
13:24
Здравствуйте. Помогите сделать внешний отчёт с запросами на 1с 7.7
Вот тех задание: Создать внешний отчет «Отчет по сотрудникам»  с возможностью выбора подразделения и даты.  Стандартная конфигурация Зарплата и Кадры. Отчет должен формироваться с применением запроса.
Таблица  должна иметь следующее содержание:

№ ФИО Дата_рождения Подразделение Пол Должность Оклад
1 Wobland
 
30.09.12
14:01
так.. файл - новый - внешняя обработка..
2 Wobland
 
30.09.12
14:01
лучше скажи, что делал, почему решил так, и что не вышло
3 stas_t_88
 
30.09.12
14:29
Нужно именно так сделать по тех заданию!

Пытаюсь сделать запрос, но что-то никак..(((
И не знаю как добавить по мимо выбора подразделения, выбор даты (так понял - даты рождения???)
Вот что пока придумал, но не работает:


Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
Выбрать
   |Период с ВыбНачПериода по ВыбКонПериода;
   |Наименование = Справочник.Сотрудники.Наименование;
| Дом_адрес = Справочник.Сотрудники.Дом_адрес,;
| Паспортные_данные = Справочник.Сотрудники.Паспортные_данные;
| Подразделение = Справочник.Сотрудники.Подразделение;
   |ИЗ
|Справочник.Сотрудники
|ГДЕ
| Подразделение = реквизитзапроса";
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
4 МишКа
 
30.09.12
14:44
У семерки свой доморощенный язык запросов.
5 stas_t_88
 
30.09.12
15:31
Сделал по другому с выбором по подразделению - работает.! Как добавить выбор даты рождения из справочника Сотрудники (тип - дата)??? и при формировании таблицы выводит только Наименование, как сделать чтобы всё выводилось, что в запросе указано???!

// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
   Перем Запрос, ТекстЗапроса, Таб;
   //Создание объекта типа Запрос
   Запрос = СоздатьОбъект("Запрос");
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Наименование = Справочник.Сотрудники.Наименование;
   |Дата_рождения = Справочник.Сотрудники.Дата_рождения;
   |Оклад = Справочник.Сотрудники.Оклад;
   |Дата_рождения1 = Справочник.Сотрудники.Должность;
   |Пол = Справочник.Сотрудники.Пол;
   |Подразделение = Справочник.Сотрудники.Подразделение;
   |Группировка Наименование;
   |Условие(Подразделение в выбподраздел);
   |"//}}ЗАПРОС
   ;
   // Если ошибка в запросе, то выход из процедуры
   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Сформировать");
   // Заполнение полей "Заголовок"
   Таб.ВывестиСекцию("Заголовок");
   Состояние("Заполнение выходной таблицы...");
   Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
   Пока Запрос.Группировка(1) = 1 Цикл
       // Заполнение полей Наименование
       Таб.ВывестиСекцию("Наименование");
   КонецЦикла;
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
6 Wobland
 
30.09.12
15:47
(5) Дата_рождения1 = Справочник.Сотрудники.Должность
я был рождён под знаком  менеджера контрактных поставок..

где живёт твоя дата рождения? надо как-то забабашить её в запрос, прописать в макете нужную переменную
7 Wobland
 
30.09.12
15:51
признаться, от этих запросов у меня возникает кратковременная потеря ориентации в пространстве и необъяснимое чувство страха и тревогм
8 stas_t_88
 
30.09.12
15:56
Да, 5ю строчку забыл закомментить...)

Дата рождения живёт в качестве атрибута в Справочнике - Сотрудники (тип ёё - Дата).

Вот если с подбором подразделения легко - тупо кинул на форму элемент диалога - "Реквизит диалога" и выбрал в типе Справочник.Подразделения.

То вот с датами рождения проблема... как их выгрузить на форму чтобы можно было выбрать дату рождения, и вставить её в условие запроса.???
9 Wobland
 
30.09.12
15:57
(8) аналогично подразделению уже попробовал?
10 stas_t_88
 
30.09.12
15:58
Может как то использую элемент поля со списком??? написать какую-нить формулу в него, что б там был список с датами рождения сотрудников, выбрать одну дату и уже передать её в запрос условия???
11 Alexor
 
30.09.12
15:59
+9 Только тип не ДатаРождения, а просто Дата :)
12 stas_t_88
 
30.09.12
15:59
как с подрозделениями не получается... может есть какой секрет??
13 Wobland
 
30.09.12
15:59
а я б ещё заделал выбор периода (день и месяц), чтоб дни рождения в диапазон попадали
14 Wobland
 
30.09.12
15:59
(10) а ты хочешь подобрать из имеющихся? (0) и я против этого.
(12) нет секрета
15 stas_t_88
 
30.09.12
16:00
ну если просто поставить тип дата, то надо будет просто вводить дату от фонаря, а надо мне что б дату выбирать из дат рождения которые есть в справочнике!
16 Wobland
 
30.09.12
16:01
(15) ты сам-то как будешь смотреть на свой список выбора из 450 безликих дат?
17 Wobland
 
30.09.12
16:02
в общем, определяйся, что ты хочешь от даты и возвращайся. имхо (13) наиболее близко с практической точки зрения
18 МишКа
 
30.09.12
16:02
(15) Чудны дела твои...
19 stas_t_88
 
30.09.12
16:04
ну я согласен смотреть будет тяжко, но всё же как мне это сделать?!
20 Wobland
 
30.09.12
16:09
(19) позаниматься любовью с комбо-боксом. подозреваю, если его переменной подсунуть список значений, он его отобразит
21 stas_t_88
 
30.09.12
16:23
что такое "комбо-бокс" ?
22 Wobland
 
30.09.12
16:26
(21) 1с назвала его полем со списком
23 stas_t_88
 
30.09.12
17:17
Уточнил, необходимая дата - это: Дата - дата актуальности учета.
24 stas_t_88
 
30.09.12
17:19
Подскажите, что под этим понимается и как реализовать?!
25 Wobland
 
30.09.12
17:21
(24) плохо уточнял ;)
видимо, имеется в виду дата, на которую нужно выводить состав подразделений. реквизит периодический?
26 stas_t_88
 
30.09.12
17:26
Так. Для начала надо понять как её обозвать в справочнике-Сотрудники. и какой ей тип присвоить....
вот жешь головоломка...(
27 Wobland
 
30.09.12
17:27
(26) то есть, ты решил не пользоваться типовым решением?
//ЗиК не видел, но не поверю, чтоб там такого не было
28 stas_t_88
 
30.09.12
17:30
да, всё делаю вручную
29 Wobland
 
30.09.12
17:34
(28) свобода действий? обзови свою дату КрылатыйСлон и присвой ей тип строка
30 Wobland
 
30.09.12
17:34
(29) тфу, плин, долбаная семёрка. это ж периодический реквизит типа подразделение
31 stas_t_88
 
30.09.12
17:38
ну вот. Вы правильно сказали : видимо, имеется в виду дата, на которую нужно выводить состав подразделений.

как это сделать?)
32 Wobland
 
30.09.12
17:39
(31) ты конфигурацию сам проектируешь или таки типовую юзаешь?
33 stas_t_88
 
30.09.12
17:40
сам с нуля делаю.
34 stas_t_88
 
30.09.12
17:41
Из всего тех задания, остался только этот момент...(
35 Wobland
 
30.09.12
17:43
(33) как у тебя хранится эта дата? сделал периодический реквизит? теперь нужно как-то его актуальное значение на заданную дату получить в запросе?
36 stas_t_88
 
30.09.12
17:50
Ну делаю ещё один реквизит в Справочнике Сотрудники, назвал его Дата_акт_уч. Какой ему тип присвоить - Дата????
37 stas_t_88
 
30.09.12
17:52
В дополнит свойствах поставил Переодический! Рядом ставить галочки изменяется документами и вручную или не надо?!
38 Wobland
 
30.09.12
17:53
(36) я по этому поводу уже высказался
39 stas_t_88
 
30.09.12
17:55
это сделал. Как теперь в запросе вместе с выбором подразделения выбирать и дату?
40 Wobland
 
30.09.12
17:56
(39) вот теперь сдаюсь. см (7) ;)
41 ТакВотЖе
 
30.09.12
18:10
(39) |Период с ВыбНачПериода по ВыбКонПериода;
42 stas_t_88
 
30.09.12
18:11
ненене... сделал по другому, у каждого сотрудника задал свою дату актуальности, и в запросе написал следующее: |Условие  ((Подразделение в выбподраздел) и (Дата_акт_уч>=выбдата));

Выбдата - задаю сам.
43 ТакВотЖе
 
30.09.12
18:12
фигню сделал
44 Wobland
 
30.09.12
18:13
(42) у тебя нормально отразится ситуация смены подразделения? и, соответственно, отчёт на разные даты
45 stas_t_88
 
30.09.12
18:32
ну а как мне тогда сделать?!
46 Wobland
 
30.09.12
18:35
(45) читал (30)?
47 stas_t_88
 
30.09.12
19:01
читал. сделал подразделения - переодическим атрибутом.
Поставил в запрос
|Период с ВыбНачПериода по ВыбКонПериода;
вроде работает. спасибо)
48 Wobland
 
30.09.12
19:16
(47) правильно писать |Переод с ВыбНачПереода по ВыбКонПереода;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший