Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 18:12

Создание отчета из одного регистра

Автор СерьезныйЧеловек, 23 ноя 2010, 10:37

0 Пользователей и 1 гость просматривают эту тему.

СерьезныйЧеловек

Здравствуйте! Вообщем есть регистр сведений. В нем создают движения 2 документа. Один документ создает в регистре запись с плановой датой, второй документ создает документ с фактической датой. Т.е две строчки абсолютно одинаковые, только в одной строчке плановая дата, а в другой фактическая. Вопрос в том , чтобы сделать отчет, в котором две строчки из регистра объединялись бы в одну, чтобы и плановая дата и фактическая дата были в одной строчке? Если бы было 2 регистра, то проблем не было, а если из одного регистра, то чего-то не догоняю.

progmikon

Ну чисто теоретически можно в этом регистре сделать два реквизита даты. А при проведении проверять наличие записи в регистре по каким-то ключевым полям. Если строка есть, просто заполнить нужную дату, если нет, добавить запись.

Но это лирика. А в чем сложность получения дат в строку. Опять же по каким-то ключевым полям делаем соединение в запросе.

СерьезныйЧеловек

Вы наверное немного не поняли.
У меня только один регистр,  в нем создают движения два документа. Записи абсолютно одинаковые, только в одной плановая дата, а в другой фактическая. Суть в том , чтобы в запросе эти две строки были объеденены в одну.
Сейчас запрос покажу.

СерьезныйЧеловек

Вот:
ВЫБРАТЬ
   ПланированиеОбученияСотрудника.Сотрудник,
   ПланированиеОбученияСотрудника.КурсОбучения,
   ПланированиеОбученияСотрудника.НачалоОбученияПлан,
   ПланированиеОбученияСотрудника.КонецОбученияФакт
ИЗ
   РегистрСведений.ПланированиеОбученияСотрудника КАК ПланированиеОбученияСотрудника

он выводит две строки как они идут в регистре, а мне нужно , чтобы они были в одной строке

progmikon

Боюсь, что в данном случае только выборкой. То есть обходом результата.

СерьезныйЧеловек


СерьезныйЧеловек

Типо сравнивать в цикле ФИО и Курс сотрудников, у одного брать плановую дату, у другого фактическую, а потом все склеивать?

progmikon

Делаете итог по сотруднику и курсу обучения.

Далее

ВыборкаИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Сотрудник");
Пока ВыборкаИтог.Следующий() Цикл
ВыборкаКурса = ВыборкаИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Курс");
Пока ВыборкаКурса.Следующий() Цикл
СтрокаДат = "";
ВыборкаДат = ВыборкаКурса.Выбрать();
Пока ВыборкаДат.Следующий() Цикл
СтрокаДат = СтрокаДат + Выборка.Период;

СерьезныйЧеловек

А нельзя выбрать тот же самый регистр два раза и как нибудь там все соеденить?

progmikon

Если можно привязаться к типу документа регистратора, то можно, кстати поступить еще так:

Сделать такой же запрос с указанием одного типа документа...условно план и сделать второй запрос с другим типом документа....факт. Далее сделать соединение запросов по полям сотрудник и курс.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск