Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Помогите по запросу

177
читатель
офлайн
Дата регистрации: 07.05.2008
Сообщений: 470
Пост №1
 
17.06.2009 10:12

"Подскажите как сформировать дополнительный запрос в готовом запросе т.е. сформировали 1 запроспо данным за месяц и теперь надо к ним добавить данные среднее за три месяца, я что-то сделал но что-то не так , подскажите в чем мой косяк:<br>ТекстЗапроса = <br> "//{{ЗАПРОС(НачислениеОтпускных)<br> |Период с Мес3 по Мес1;<br> |Обрабатывать НеПомеченныеНаУдаление;<br> |Сумма = Документ.НачислениеОтпускных.Сумма;<br> |Функция СуммаСреднее = Среднее(Сумма);<br> |"//}}ЗАПРОС<br> ;<br>Получается он сортирует сотрудников у которых есть -их и выводит а остальных нет."

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №2
 
17.06.2009 13:14

"Вообще, обычно принято обрабатывать результат проведения документов, а не сами документы, то есть записи в журналах расчетов, движения регистров, проводки... ну да ладно, раз вас такое устраивает, пробуйте так:<br><br>//НачДата1 и КонДата1 описывают диапазон выборки сведений за месяцы, по которым вычисляется средний<br>НачДата1=Дата("01.01.2009");<br>КонДата1=Дата("31.03.2009");<br><br>//НачДата2 и КонДата2 описывают диапазон выборки сведений за месяц, по которому нужно получить отдельные данные<br>НачДата2=Дата("01.04.2009");<br>КонДата2=Дата("30.04.2009");<br><br>//НачДата и КонДата - вычисляем так, чтобы они полностью охватили весь нужный диапазон и у нас получилось бы получить нужные нам данные в одном запросе, а не в двух, хотя не факт, что это быстрее<br>НачДата=Мин(НачДата1,НачДата2);<br>КонДата=Макс(КонДата1,КонДата2);<br><br>ТекстЗапроса="Период с НачДата По КонДата;<br>|ОбрабатыватьДокументы Проведенные;<br>|НачислениеОтпускных=Документ.НачислениеОтпускных.ТекущийДокумент;<br>|Сотрудник=Документ.НачислениеОтпускных.Сотрудник;<br>|Сумма=Документ.НачислениеОтпускных.Сумма;<br>|Функция СуммаСреднее=Среднее(Сумма) когда ((НачислениеОтпускных.ДатаДок>=НачДата1) и (НачислениеОтпускных.ДатаДок<=КонДата1));<br>|Функция СуммаЗаОтдельныйМесяц=Сумма(Сумма) когда ((НачислениеОтпускных.ДатаДок>=НачДата2) и (НачислениеОтпускных.ДатаДок<=КонДата2));<br>|Группировка Сотрудник без групп упорядочить по Сотрудник.Наименование;";<br><br>P.S. Не тестирую, но, наверное, работать должно"

Klyacksa
читатель
офлайн
Дата регистрации: 04.05.2009
Сообщений: 20
Пост №3
 
17.06.2009 13:17

А расскажите, что это за запросы такие хитрые?.. Я с такими не сталкивалась

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №4
 
17.06.2009 13:20

это не ко мне, это к спрашивающему... я не знаю зачем ему это надо :)

177
читатель
офлайн
Дата регистрации: 07.05.2008
Сообщений: 470
Пост №5
 
17.06.2009 13:22

"Я пишу отдельную программку для хитрых расчетов, которые не поддерживает 1с.<br>написано очень хорошо но у меня загвоздка вот такая, мне надо взять среднее за 3 месяца:<br> ИначеЕсли ЗначениеМесяца = 6 Тогда<br> КЧ = "167 часов"; <br> Дни = "21 день"; <br> Мес1 =ЗначениеМесяца;<br> Мес2 =Мес1-1 ;//5<br> Мес3 =Мес2-1 ; //4 т.е. делаю проверку на месяц и нахожу период, т.е. если июнь тогда нам надо : июнь, май, апрель, получаем период с Мес3 по Мес1(с апреля по июнь), , находим нужные документы и получаем среднее, а сотрудник у нас идет из первого запроса, т.е. находим по готовому сотруднику его средний.<br>А если делать как вы написали, то плучается мне надо прописать сравнение сотрудника с сотрудником.Мне кажется я неправильно делаю выборку на месяц."

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №6
 
17.06.2009 13:28

Это 7-рошные :)

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №7
 
17.06.2009 13:45

""сотрудник у нас идет из первого запроса" + "находим по готовому сотруднику его средний", значит можно не мудрить(?):<br><br>ТекстЗапроса="Период с Мес3 По Мес1;<br>|ОбрабатыватьДокументы Проведенные;<br>|НачислениеОтпускных=Документ.НачислениеОтпускных.ТекущийДокумент;<br>|Сотрудник=Документ.НачислениеОтпускных.Сотрудник;<br>|Сумма=Документ.НачислениеОтпускных.Сумма;<br>|Функция СуммаСреднее=Среднее(Сумма);<br>|Условие(Сотрудник=НужныйСотрудник);<br>|Группировка Сотрудник без групп без упорядочивания;";<br><br>Запрос=СоздатьОбъект("Запрос");<br>Если Запрос.Выполнить(ТекстЗапроса)=1 Тогда<br> СуммаСреднее=Запрос.СуммаСреднее;<br>...<br>"

Klyacksa
читатель
офлайн
Дата регистрации: 04.05.2009
Сообщений: 20
Пост №8
 
17.06.2009 15:16

А, спасибо, теперь понятно))) <br>Я с 7-кой не работала. Надо же, насколько действительно сильно она отличается

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация