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

внешний отчет

Автор Люсёк, 15 ноя 2010, 11:51

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

Люсёк

Есть форма отчета, на которой в поле выбора задается период, в виде Январь, Февраль,..... и т.д. Как этот период передать в запрос в виде НачалоПериода-01.01.2010 и КонецПериода-31.01.2010?

progmikon

А год какой? текущий?

Люсёк


progmikon

Ну первое, что приходит в голову, это через если...

Lexius

Скорее всего значение - это первое число выбранного месяца Допустим, переменная "ПериодЧтоТоТам".
Тогда:
Запрос.УстановитьПараметр("Началопериода", НачалоМесяца(ПериодЧтоТоТам));
Запрос.УстановитьПараметр("Началопериода", КонецМесяца(ПериодЧтоТоТам));

Люсёк

А если нужно, чтобы можно было выбирать не только месяца текущего года, а любого (предыдущего или последующего) тогда как сделать? Должны же быть какие-нибудь стандартные обработки? А где их можно найти?

Lexius

Наверняка есть какая то переменная, допустим, "ПериодЧтоТоТам" которая содержит в себе дату первого для месяца.
Например: 01.11.2009 (Видишь как "Ноябрь 2009")
Меняешь месяц и год, допустим, ставишь декабрь 2010, и переменная меняет своё значение на 01.12.2010.

А если надо сделать механизм изменения года в списке месяцов то погляди в одном из отчетов ЗиУП-а. Там есть такое дело.

Люсёк

Что значит это ошибка:

{Форма.Форма(369)}: Ошибка при вызове метода контекста (Выполнить): {(1, 1)}: Ожидается выражение "ВЫБРАТЬ"
    ТЗ=Запрос.Выполнить().Выгрузить();


   Запрос=Новый Запрос;
   ЗапросТекст=
               "ВЫБРАТЬ
                      |     ЗарплатаЗаМесяцОрганизаций.Физлицо,
               |   ЗарплатаЗаМесяцОрганизаций.Регистратор КАК ПодготовленныеВедомостиКВыплате,
               |   ЗарплатаЗаМесяцОрганизаций.ВидДвижения,
               |   СУММА(ЗарплатаЗаМесяцОрганизаций.СуммаВзаиморасчетов КАК ПодготовленнаяСуммаВыплат,
               |   ЗарплатаЗаМесяцОрганизаций.ХарактерВыплаты КАК ХарактерПодготовленныхВыплат,
               |   Взаиморасчеты.СуммаВзаиморасчетов КАК ВыплаченнаяСумма,
               |   Взаиморасчеты.ХарактерВыплаты КАК ХарактерВыплаченныхСумм,
               |   Взаиморасчеты.СпособВыплаты,
               |   Взаиморасчеты.Ведомость КАК ВыплаченныеВедомости,
               |   Взаиморасчеты.Регистратор КАК ДокументРегистрирующийВыплату,
               |   ЗарплатаЗаМесяцОрганизаций.ВидДвижения КАК ВидДвижения1
               |ПОМЕСТИТЬ ВТ
               |ИЗ
               |   РегистрНакопления.ЗарплатаЗаМесяцОрганизаций КАК ЗарплатаЗаМесяцОрганизаций
               |      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
               |         ВзаиморасчетыСРаботникамиОрганизаций.Период КАК Период,
               |         ВзаиморасчетыСРаботникамиОрганизаций.Регистратор КАК Регистратор,
               |         ВзаиморасчетыСРаботникамиОрганизаций.НомерСтроки КАК НомерСтроки,
               |         ВзаиморасчетыСРаботникамиОрганизаций.Активность КАК Активность,
               |         ВзаиморасчетыСРаботникамиОрганизаций.ВидДвижения КАК ВидДвижения,
               |         ВзаиморасчетыСРаботникамиОрганизаций.Физлицо КАК Физлицо,
               |         ВзаиморасчетыСРаботникамиОрганизаций.Организация КАК Организация,
               |         ВзаиморасчетыСРаботникамиОрганизаций.ПериодВзаиморасчетов КАК ПериодВзаиморасчетов,
               |         ВзаиморасчетыСРаботникамиОрганизаций.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов,
               |         ВзаиморасчетыСРаботникамиОрганизаций.ХарактерВыплаты КАК ХарактерВыплаты,
               |         ВзаиморасчетыСРаботникамиОрганизаций.СпособВыплаты КАК СпособВыплаты,
               |         ВзаиморасчетыСРаботникамиОрганизаций.Ведомость КАК Ведомость
               |      ИЗ
               |         РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК ВзаиморасчетыСРаботникамиОрганизаций
               |      ГДЕ
               |         ВзаиморасчетыСРаботникамиОрганизаций.Организация = &Организация) КАК Взаиморасчеты
               |      ПО ЗарплатаЗаМесяцОрганизаций.Физлицо = Взаиморасчеты.Физлицо
               |         И ЗарплатаЗаМесяцОрганизаций.Регистратор = Взаиморасчеты.Ведомость
               |ГДЕ
               |   ЗарплатаЗаМесяцОрганизаций.Организация = &Организация
               |   И ЗарплатаЗаМесяцОрганизаций.ПериодВзаиморасчетов МЕЖДУ &НачалоПериода И &КонецПериода
               |
               |СГРУППИРОВАТЬ ПО
               |   ЗарплатаЗаМесяцОрганизаций.Физлицо,
               |   ЗарплатаЗаМесяцОрганизаций.Регистратор,
               |   ЗарплатаЗаМесяцОрганизаций.ВидДвижения,
               |   ЗарплатаЗаМесяцОрганизаций.ХарактерВыплаты,
               |   Взаиморасчеты.СуммаВзаиморасчетов,
               |   Взаиморасчеты.ХарактерВыплаты,
               |   Взаиморасчеты.СпособВыплаты,
               |   Взаиморасчеты.Ведомость,
               |   Взаиморасчеты.Регистратор,
               |   ЗарплатаЗаМесяцОрганизаций.ВидДвижения
               |;
               |
               |////////////////////////////////////////////////////////////////////////////////
               |ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
               |   НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ДатаКалендаря, МЕСЯЦ) КАК ПериодРегистрации
               |ПОМЕСТИТЬ Периоды
               |ИЗ
               |   РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
               |ГДЕ
               |   РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
               |;
               |
               |////////////////////////////////////////////////////////////////////////////////
               |ВЫБРАТЬ
               |   Работники.СотрудникФизлицо КАК ФИО,
               |   Работники.ПодразделениеОрганизации КАК Подразделение,
               |   Работники.Должность,
               |   НачисленоУдержано.Результат КАК ВсегоНачислено,
               |   СУММА(НачисленоУдержано.Налог) + СУММА(НачисленоУдержано.Удержания) КАК ВсегоУдержано,
               |   СальдоПоПериодам.ДолгНаНачало,
               |   ВТ.ПодготовленныеВедомостиКВыплате,
               |   ВТ.ПодготовленнаяСуммаВыплат,
               |   ВТ.ХарактерПодготовленныхВыплат,
               |   ВТ.ВидДвижения1 КАК ВидДвижения,
               |   ВТ.ВыплаченныеВедомости,
               |   ВТ.ВыплаченнаяСумма,
               |   ВТ.ХарактерВыплаченныхСумм,
               |   ВТ.СпособВыплаты,
               |   ВТ.ДокументРегистрирующийВыплату
               |ИЗ
               |   (ВЫБРАТЬ
               |      Периоды.ПериодРегистрации КАК ПериодРегистрации,
               |      МАКСИМУМ(РаботникиОрганизаций.Период) КАК Период,
               |      РаботникиОрганизаций.Сотрудник.Физлицо КАК СотрудникФизлицо,
               |      РаботникиОрганизаций.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
               |      РаботникиОрганизаций.Должность КАК Должность
               |   ИЗ
               |      Периоды КАК Периоды
               |         ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
               |         ПО (РаботникиОрганизаций.Период <= КОНЕЦПЕРИОДА(Периоды.ПериодРегистрации, МЕСЯЦ))
               |   ГДЕ
               |      РаботникиОрганизаций.Организация = &Организация
               |      И РаботникиОрганизаций.Сотрудник.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство)
               |   {ГДЕ
               |      РаботникиОрганизаций.Сотрудник.Физлицо.*}
               |   
               |   СГРУППИРОВАТЬ ПО
               |      Периоды.ПериодРегистрации,
               |      РаботникиОрганизаций.Сотрудник.Физлицо,
               |      РаботникиОрганизаций.ПодразделениеОрганизации,
               |      РаботникиОрганизаций.Должность) КАК Работники
               |      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
               |         ОснДопНач.ФизЛицо КАК ФизЛицо,
               |         СУММА(ОснДопНач.Результат) КАК Результат,
               |         НДФЛ.Налог КАК Налог,
               |         НДФЛ.Удержания КАК Удержания
               |      ИЗ
               |         (ВЫБРАТЬ
               |            ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо КАК ФизЛицо,
               |            СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
               |            ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации КАК ПериодРегистрации
               |         ИЗ
               |            РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
               |         ГДЕ
               |            ОсновныеНачисленияРаботниковОрганизаций.Организация = &Организация
               |            И ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
               |         
               |         СГРУППИРОВАТЬ ПО
               |            ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации,
               |            ОсновныеНачисленияРаботниковОрганизаций.ФизЛицо
               |         
               |         ОБЪЕДИНИТЬ ВСЕ
               |         
               |         ВЫБРАТЬ
               |            ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо,
               |            СУММА(ДополнительныеНачисленияРаботниковОрганизаций.Результат),
               |            ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации
               |         ИЗ
               |            РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
               |         ГДЕ
               |            ДополнительныеНачисленияРаботниковОрганизаций.Организация = &Организация
               |            И ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
               |         
               |         СГРУППИРОВАТЬ ПО
               |            ДополнительныеНачисленияРаботниковОрганизаций.ФизЛицо,
               |            ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации) КАК ОснДопНач
               |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
               |               НДФЛРасчетыСБюджетом.Период КАК Период,
               |               НДФЛРасчетыСБюджетом.ФизЛицо КАК ФизЛицо,
               |               НДФЛРасчетыСБюджетом.Налог КАК Налог,
               |               0 КАК Удержания
               |            ИЗ
               |               РегистрНакопления.НДФЛРасчетыСБюджетом КАК НДФЛРасчетыСБюджетом
               |            ГДЕ
               |               НДФЛРасчетыСБюджетом.Организация = &Организация
               |            
               |            СГРУППИРОВАТЬ ПО
               |               НДФЛРасчетыСБюджетом.ФизЛицо,
               |               НДФЛРасчетыСБюджетом.Период,
               |               НДФЛРасчетыСБюджетом.Налог
               |            
               |            ОБЪЕДИНИТЬ ВСЕ
               |            
               |            ВЫБРАТЬ
               |               УдержанияРаботниковОрганизаций.ПериодРегистрации,
               |               УдержанияРаботниковОрганизаций.ФизЛицо,
               |               0,
               |               УдержанияРаботниковОрганизаций.Результат
               |            ИЗ
               |               РегистрРасчета.УдержанияРаботниковОрганизаций КАК УдержанияРаботниковОрганизаций
               |            ГДЕ
               |               УдержанияРаботниковОрганизаций.Организация = &Организация
               |            
               |            СГРУППИРОВАТЬ ПО
               |               УдержанияРаботниковОрганизаций.ФизЛицо,
               |               УдержанияРаботниковОрганизаций.ПериодРегистрации,
               |               УдержанияРаботниковОрганизаций.Результат) КАК НДФЛ
               |            ПО ОснДопНач.ФизЛицо = НДФЛ.ФизЛицо
               |               И (НАЧАЛОПЕРИОДА(ОснДопНач.ПериодРегистрации, МЕСЯЦ) = НАЧАЛОПЕРИОДА(НДФЛ.Период, МЕСЯЦ))
               |      
               |      СГРУППИРОВАТЬ ПО
               |         ОснДопНач.ФизЛицо,
               |         НДФЛ.Налог,
               |         НДФЛ.Удержания) КАК НачисленоУдержано
               |      ПО Работники.СотрудникФизлицо = НачисленоУдержано.ФизЛицо
               |      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
               |         Сальдо.Физлицо КАК Физлицо,
               |         Сальдо.ДолгНаНачало КАК ДолгНаНачало,
               |         Периоды.Период КАК Период
               |      ИЗ
               |         (ВЫБРАТЬ РАЗЛИЧНЫЕ
               |            МИНИМУМ(НАЧАЛОПЕРИОДА(РегламентированныйпроизводственныйКалендарь.ПериодРегистрации, МЕСЯЦ)) КАК Период
               |         ИЗ
               |            Периоды КАК РегламентированныйпроизводственныйКалендарь
               |         ГДЕ
               |            РегламентированныйпроизводственныйКалендарь.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
               |         {ГДЕ
               |            (НАЧАЛОПЕРИОДА(РегламентированныйпроизводственныйКалендарь.ПериодРегистрации, МЕСЯЦ)) КАК ПериодРегистрации}
               |         
               |         ИМЕЮЩИЕ
               |            МИНИМУМ(НАЧАЛОПЕРИОДА(РегламентированныйпроизводственныйКалендарь.ПериодРегистрации, МЕСЯЦ)) ЕСТЬ НЕ NULL
               |         
               |         ОБЪЕДИНИТЬ ВСЕ
               |         
               |         ВЫБРАТЬ РАЗЛИЧНЫЕ
               |            НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ПериодРегистрации, МЕСЯЦ)
               |         ИЗ
               |            Периоды КАК РегламентированныйПроизводственныйКалендарь
               |         ГДЕ
               |            РегламентированныйПроизводственныйКалендарь.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
               |         {ГДЕ
               |            (НАЧАЛОПЕРИОДА(РегламентированныйПроизводственныйКалендарь.ПериодРегистрации, МЕСЯЦ)) КАК ПериодРегистрации}) КАК Периоды
               |            ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
               |               ВзаиморасчетыСРаботникамиОрганизацийОстатки.Физлицо КАК Физлицо,
               |               &НачалоПериода КАК Период,
               |               ВзаиморасчетыСРаботникамиОрганизацийОстатки.СуммаВзаиморасчетовОстаток КАК ДолгНаНачало
               |            ИЗ
               |               РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&НачалоПериода {(&НачалоПериода)}, {(Физлицо)}) КАК ВзаиморасчетыСРаботникамиОрганизацийОстатки
               |            ГДЕ
               |               ВзаиморасчетыСРаботникамиОрганизацийОстатки.Организация = &Организация
               |            
               |            ОБЪЕДИНИТЬ ВСЕ
               |            
               |            ВЫБРАТЬ
               |               ВзаиморасчетыСРаботникамиОрганизацийОбороты.Физлицо,
               |               ДОБАВИТЬКДАТЕ(ВзаиморасчетыСРаботникамиОрганизацийОбороты.Период, МЕСЯЦ, 1),
               |               ВзаиморасчетыСРаботникамиОрганизацийОбороты.СуммаВзаиморасчетовОборот
               |            ИЗ
               |               РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Обороты(&НачалоПериода {(&НачалоПериода)}, &КонецПериода {(&КонецПериода)}, Месяц, {(Физлицо)}) КАК ВзаиморасчетыСРаботникамиОрганизацийОбороты
               |            ГДЕ
               |               ВзаиморасчетыСРаботникамиОрганизацийОбороты.Организация = &Организация) КАК Сальдо
               |            ПО (Сальдо.Период <= Периоды.Период)
               |      
               |      СГРУППИРОВАТЬ ПО
               |         Сальдо.Физлицо,
               |         Сальдо.ДолгНаНачало,
               |         Периоды.Период) КАК СальдоПоПериодам
               |      ПО Работники.СотрудникФизлицо = СальдоПоПериодам.Физлицо
               |      ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК ВТ
               |      ПО Работники.СотрудникФизлицо = ВТ.Физлицо
               |
               |СГРУППИРОВАТЬ ПО
               |   Работники.СотрудникФизлицо,
               |   Работники.ПодразделениеОрганизации,
               |   Работники.Должность,
               |   СальдоПоПериодам.ДолгНаНачало,
               |   НачисленоУдержано.Результат,
               |   ВТ.ПодготовленныеВедомостиКВыплате,
               |   ВТ.ПодготовленнаяСуммаВыплат,
               |   ВТ.ХарактерПодготовленныхВыплат,
               |   ВТ.ВыплаченнаяСумма,
               |   ВТ.ХарактерВыплаченныхСумм,
               |   ВТ.СпособВыплаты,
               |   ВТ.ВыплаченныеВедомости,
               |   ВТ.ДокументРегистрирующийВыплату,
               |   ВТ.ВидДвижения1";
            
   Запрос.УстановитьПараметр("Организация", ЭлементыФормы.Организация.Значение);
   Запрос.УстановитьПараметр("НачалоПериода",ЭлементыФормы.ПериодНачисленияДатаНачала.Значение);
   Запрос.УстановитьПараметр("КонецПериода" ,ЭлементыФормы.ПериодНачисленияДатаОкончания.Значение);   
    ТЗ=Запрос.Выполнить().Выгрузить();
   

Люсёк

Уже разобралась)

Люсёк

Подскажите, пожалуйста, есть табличный документ(он выводится из ТЗ). Как вывести строки так, чтобы ФИО, подразделение, должность, Долгна начало, всего начислено и всего удержано для одного человека выводилось один раз, а остальные колонки остались бы так как есть?

Теги:

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

Рейтинг@Mail.ru

Поиск