Форум программистов «Весельчак У»
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
Начало
Наши сайты
Галерея
Весельчак У
Наша Вики
Хранилище
Проекты
Правила
Правила форума
Правила русского языка
Помощь
Поиск
Календарь
Почта
Войти
Регистрация
Форум программистов «Весельчак У»
>
Программирование
>
Программирование 1С
>
1С 7.x
(Модераторы:
Harry
,
Kivals
,
Naghual
) > Тема:
Запросы 7.7
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Запросы 7.7 (Прочитано 27876 раз)
0 Пользователей и 1 Гость смотрят эту тему.
undercover
Новенький
Offline
Запросы 7.7
«
:
12-04-2013 15:06 »
Есть следующий код:
Код: (1C v8)
Процедура
Сформировать
(
)
тз
=
создатьОбъект
(
"ТаблицаЗначений"
)
;
тз.НоваяКолонка
(
"НомерДок"
)
;
тз.НоваяКолонка
(
"ДатаДок"
)
;
тз.НоваяКолонка
(
"Контрагент"
)
;
тз.НоваяКолонка
(
"Сумма"
)
;
тз.НоваяКолонка
(
"Итог"
)
;
тз.НоваяКолонка
(
"НеОпл"
)
;
тз.НоваяКолонка
(
"Админ"
)
;
тз.НоваяКолонка
(
"Сотрудник"
)
;
тз.НоваяКолонка
(
"Цех"
)
;
тз.НоваяКолонка
(
"Услуга"
)
;
Если
Долги
=
1
Тогда
Запрос
=
создатьОбъект
(
"Запрос"
)
;
ТекстЗапроса
=
"
|Период С НачДата По КонДата;
|ОбрабатыватьДокументы Проведенные;
|Док = Документ.ЧекККМ.ТекущийДокумент;
|Контрагент = Документ.ЧекККМ.Контрагент;
|НомерДок = Документ.ЧекККМ.НомерДок;
|ДатаДок = Документ.ЧекККМ.ДатаДок;
|Сумма = Документ.ЧекККМ.Сумма;
|НеОпл = Документ.ЧекККМ.НеОплачен;
|Группировка НомерДок;
|Условие (Контрагент в ВыбКонтрагенты);
|"
;
Если
Запрос.
Выполнить
(
ТекстЗапроса
)
=
0
Тогда
Возврат
;
КонецЕсли
;
Пока
Запрос.Группировка
(
1
)
=
1
Цикл
Док
=
Запрос.Док;
тз.НоваяСтрока
(
)
;
тз.ДатаДок
=
Запрос.ДатаДок;
тз.НомерДок
=
Запрос.НомерДок;
тз.Контрагент
=
Запрос.Контрагент;
тз.
Не
Опл
=
Запрос.
Не
Опл;
тз.Сумма
=
Запрос.Док.
И
тог
(
"Сумма"
)
;
КонецЦикла
;
Таб
=
создатьОбъект
(
"Таблица"
)
;
Таб.
И
сходнаяТаблица
(
"Долги"
)
;
Таб.ВывестиСекцию
(
"Шапка"
)
;
тз.ВыбратьСтроки
(
)
;
НомПП
=
0
;
Пока
тз.
По
лучитьСтроку
(
)
=
1
Цикл
НомПП
=
НомПП
+
1
;
Если
ТЗ.
Не
Опл
=
1
Тогда
Таб.ВывестиСекцию
(
"Строка"
)
;
Иначе
Продолжить
;
КонецЕсли
КонецЦикла
;
Таб.Опции
(
0
)
;
Таб.
Пока
зать
(
)
;
Иначе
//Выводим отчет по доходам
ЗапросДоходы
=
создатьОбъект
(
"Запрос"
)
;
ТекстЗапроса
=
"
|Период С НачДата По КонДата;
|ОбрабатыватьДокументы Проведенные;
|Док = Документ.ЧекККМ.ТекущийДокумент;
|Контрагент = Документ.ЧекККМ.Контрагент;
|НомерДок = Документ.ЧекККМ.НомерДок;
|ДатаДок = Документ.ЧекККМ.ДатаДок;
|Сумма = Документ.ЧекККМ.Сумма;
|НеОпл = Документ.ЧекККМ.НеОплачен;
|Услуга = Документ.ЧекККМ.Номенклатура;
|Цех = Документ.ЧекККМ.Цех;
|Сотрудник = Документ.ЧекККМ.Исполнитель;
|Админ = Документ.ЧекККМ.Администратор;
|Группировка НомерДок;
//|Группировка Услуга;
//|Группировка Сумма;
//|Группировка Контрагент;
|Условие (Контрагент в ВыбКонтрагенты);
|Условие (Услуга в ВыбУслуга);
|Условие (Цех в ВыбЦех);
|Условие (Сотрудник в ВыбСотрудник);
|Условие (Админ в ВыбАдмин);
|"
;
Если
ЗапросДоходы.
Выполнить
(
ТекстЗапроса
)
=
0
Тогда
Возврат
;
КонецЕсли
;
Пока
ЗапросДоходы.Группировка
(
1
)
=
1
Цикл
Док
=
ЗапросДоходы.Док;
тз.НоваяСтрока
(
)
;
тз.ДатаДок
=
ЗапросДоходы.ДатаДок;
тз.НомерДок
=
ЗапросДоходы.НомерДок;
тз.Контрагент
=
ЗапросДоходы.Контрагент;
тз.
Не
Опл
=
ЗапросДоходы.
Не
Опл;
тз.Сумма
=
ЗапросДоходы.Сумма;
тз.Админ
=
ЗапросДоходы.Админ;
тз.Цех
=
ЗапросДоходы.Цех;
тз.Сотрудник
=
ЗапросДоходы.Сотрудник;
тз.Услуга
=
ЗапросДоходы.Услуга;
Если
тз.
Не
Опл
=
0
Тогда
И
тог
=
тз.
И
тог
(
"Сумма"
)
;
Иначе
Продолжить
;
КонецЕсли
;
КонецЦикла
;
Таб
1
=
СоздатьОбъект
(
"Таблица"
)
;
Таб
1
.
И
сходнаяТаблица
(
"Доходы"
)
;
Таб
1
.ВывестиСекцию
(
"Шапка"
)
;
тз.ВыбратьСтроки
(
)
;
НомПП
=
0
;
Пока
тз.
По
лучитьСтроку
(
)
=
1
Цикл
НомПП
=
НомПП
+
1
;
Если
тз.
Не
Опл
=
0
Тогда
Таб
1
.ВывестиСекцию
(
"Строка"
)
;
Иначе
Продолжить
;
КонецЕсли
КонецЦикла
;
Таб
1
.ВывестиСекцию
(
"Итог"
)
;
Таб
1
.Опции
(
0
)
;
Таб
1
.
Пока
зать
(
)
;
КонецЕсли
КонецПроцедуры
Процедура
ПриОткрытии
(
)
Долги
=
1
КонецПроцедуры
;
Задача - вывести в отчет все строки документа ЧекККМ
«
Последнее редактирование: 15-04-2013 07:06 от Kivals
»
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: Запросы 7.7
«
Ответ #1 :
12-04-2013 17:18 »
Задача кому?
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
undercover
Новенький
Offline
Re: Запросы 7.7
«
Ответ #2 :
12-04-2013 17:37 »
Цитата: RXL от 12-04-2013 17:18
Задача кому?
Мне, второй день голову ломаю....
Записан
RXL
Технический
Администратор
Offline
Пол:
Re: Запросы 7.7
«
Ответ #3 :
12-04-2013 17:51 »
undercover
, как новичку поясняю: повелительное наклонение при общении с незнакомыми людьми неприлично, особенно если тебе что-то он них нужно. Это на будущее.
Записан
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
undercover
Новенький
Offline
Re: Запросы 7.7
«
Ответ #4 :
12-04-2013 18:21 »
Цитата: RXL от 12-04-2013 17:51
undercover
, как новичку поясняю: повелительное наклонение при общении с незнакомыми людьми неприлично, особенно если тебе что-то он них нужно. Это на будущее.
Извиняюсь, просто не правильно сформулировал.
Записан
Sla
Команда клуба
Offline
Пол:
Re: Запросы 7.7
«
Ответ #5 :
12-04-2013 20:04 »
undercover
, так сформулируй понятней...
Поверь, здесь есть люди, которые могут и смогут подсказать, но включать свои экстрасенсорные способности включать не хотят.
Записан
Мы все учились понемногу... Чему-нибудь и как-нибудь.
undercover
Новенький
Offline
Re: Запросы 7.7
«
Ответ #6 :
12-04-2013 20:40 »
Цитата: Sla от 12-04-2013 20:04
undercover
, так сформулируй понятней...
Поверь, здесь есть люди, которые могут и смогут подсказать, но включать свои экстрасенсорные способности включать не хотят.
Запрос должен выбирать все строки из документов ЧекККМ за выбранный интервал времени. При выводе таблицы отображаются не все строки а только последняя строка из каждого документа.
Записан
Radistka
Помогающий
Offline
Пол:
Re: Запросы 7.7
«
Ответ #7 :
15-04-2013 04:31 »
очень неудобно читать код, оберни его в теги [ code=e1cv8 ] [ / code ] хотя бы..
а вообще я помню что было чтото вроде:
Код: (1C v8)
//Создание объекта типа Запрос
Запрос
=
СоздатьОбъект
(
"Запрос"
)
;
ТекстЗапроса
=
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы Проведенные;
|ПоступлениеМатериалов = Документ.ПоступлениеМатериалов.ТекущийДокумент;
|Группировка Документ;
|Группировка СтрокаДокумента;
|"
//}}ЗАПРОС
;
Записан
Kivals
Модератор
Offline
Пол:
Re: Запросы 7.7
«
Ответ #8 :
15-04-2013 07:12 »
Radistka
, +1
Только "Группировка НомерСтроки":
Код: (1C v8)
ТекстЗапроса
=
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы Проведенные;
|ТекущийДокумент = Документ.ПоступлениеМатериалов.ТекущийДокумент;
|НомерСтроки = Документ.ПоступлениеМатериалов.НомерСтроки;
...
|Группировка ТекущийДокумент;
|Группировка НомерСтроки;
|"
//}}ЗАПРОС
;
Записан
Radistka
Помогающий
Offline
Пол:
Re: Запросы 7.7
«
Ответ #9 :
16-04-2013 06:57 »
"Документ" и "СтрокаДокумента" - предопределённые группировки, так что тоже должны рабить.
Записан
Kivals
Модератор
Offline
Пол:
Re: Запросы 7.7
«
Ответ #10 :
16-04-2013 07:11 »
Radistka
, возможно. Никогда не пользовался такой возможностью, предпочитаю указывать явно...
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Форум программистов «Весельчак У»
>
Программирование
>
Программирование 1С
>
1С 7.x
(Модераторы:
Harry
,
Kivals
,
Naghual
) > Тема:
Запросы 7.7
Загружается...