Формирование росписи

Все вопросы по АС Бюджет
Аватара пользователя
Val
зам. председателя совета директоров
зам. председателя совета директоров
Сообщения: 2029
Зарегистрирован: 09.06.2004 08:52
Откуда: Ейск
Контактная информация:

Формирование росписи

Сообщение Val » 21.05.2008 16:33

мысли вслух. если кто найдет ошибку - скажите плз.
касательно связки параметра ограничения "ГруппаПлановыхДокументов" и полей "СБРНаПервыйГод" и "РосписьКвартСуммаНаГод"


1. в отчете ставим РоспКвартСуммаНаГод, ограничение ГруппаПлановыхДокументов не используем
(f.HARACTERACCOUNT in (0, 2))
т.е. получаем только лс ПБС, а по ПБС только роспись.


2. ставим СБРНаПервыйГод, ограничение ГруппПлановыхДокументов не используем
(d.Progindex in (260, 264))
т.е. получаем только СБР (260)


3. ставим РоспКвартСуммаНаГод, ограничение ГруппаПлановыхДокументов=2
(d.Progindex in (260, 264))
т.е. получаем только СБР (260)

4. ставим РоспКвартСуммаНаГод, ограничение ГруппаПлановыхДокументов=3
(d.Progindex in (32, 215))
т.е. получаем только роспись по ПБС


5. ставим РоспКвартСуммаНаГод и СБРНаПервыйГод, ограничение ГруппаПлановыхДокументов не используем
первый (d.Progindex in (32, 215, 260, 264))
(f.HARACTERACCOUNT in (0, 2))
второй (d.Progindex in (260, 264))
(f.HARACTERACCOUNT in (0, 2))
т.е. получаем только роспись по ПБС т.к. лс только ПБСные (неверно)

6. ставим РоспКвартСуммаНаГод и СБРНаПервыйГод, ограничение ГруппаПлановыхДокументов=2
первый (d.Progindex in (260, 264))
второй (d.Progindex in (260, 264))
т.е. получем только СБР (это неверно)

7. ставим РоспКвартСуммаНаГод и СБРНаПервыйГод, ограничение ГруппаПлановыхДокументов=3
первый (d.Progindex in (32, 215))
второй (d.Progindex in (260, 264))
получем СБР и Роспись по ПБС


8. ставим РоспКвартСуммаНаГод и СБРНаПервыйГод, ограничение ГруппаПлановыхДокументов=2,3
первый (d.Progindex in (32, 215, 260, 264))
второй (d.Progindex in (260, 264))
получим СБР+Роспись, Роспись (это неверно)

Аватара пользователя
Val
зам. председателя совета директоров
зам. председателя совета директоров
Сообщения: 2029
Зарегистрирован: 09.06.2004 08:52
Откуда: Ейск
Контактная информация:

Re: Формирование росписи

Сообщение Val » 21.05.2008 17:40

Зависимость операции от вида санкционирования расходов
Для росписи
1-ассигнования, 2-Утвержденные ЛБО, 3-Переданные ЛБО, 4-Полученные ЛБО, 11-бюджетная роспись ГРБС, 12-бюджетная роспись РБС, 13-Полученные ПБСами ЛБО,14-Полученные РБСами ЛБО

Утвержденные по ГРБС ЛБО приравнены к ассигнованиям
1 - 3401 3504 4401 4403 4404
2 - 3401 3504 4401 4403 4404
Переданные ЛБО
3 - 3503 3504 3701 4404
Полученные ЛБО
4 - 3503 3504 3801 3803 4001 4003 4404
Распределение ЛБО с ГРБС на РБС и ПБС - бюджетная роспись ГРБС
11 - 3503 3504 3701 4404
Распределение ЛБО с РБС на ПБС - бюджетная роспись РБС
12 - пусто
Полученные ПБСами ЛБО - распределение по ПБС. Эти строки могут входить как в роспись ГРБС, так и в роспись РБС
13 - 3503 3504 3803 4003 4404
Полученные РБСами ЛБО ГРБС->РБС - распределеиние по РБС. Это та часть росписей ГРБС, которая передается на РБС или перекидывается между РБС
14 - 3801 4001

Код: Выделить всё

функция ПолучитьОгрПоБухДокументу(Значение : строка; Коллекция: IVariables) : строка;
переменные
  Операции : СтатическиеДанные;
  сч : целое;
  Огр : строка;
  Документы : текст;
начало
  //Выделение бухгалтерских документов:
  //1 - Ассигнования
  //2 - Утвержденные ЛБО (по ГРБС)
  //3 - Переданные ЛБО (на РБС и ПБС)
  //4 - Полученные ЛБО (РБСами и ПБСами)
  //коды 5-10 пропущены, так как используются в лимитах
  //11-бюджетная роспись ГРБС
  //12-бюджетная роспись РБС
  //13-аналог смет ПБС
  //14-часть росписей ГРБС, которая передается на РБС
  Результат := "";
  Операции := СоздатьСтатическиеДанные;
  Документы := СоздатьТекст;
  попытка
    Документы.РазделенноеЗначение := Значение;
    Огр := "";
    от сч := 0 до Документы.Количество - 1 делать
    начало
      выбрать СтрокаВЦелое(Документы.Стр(сч)) из
        1,2 :
          начало
            // Утвержденные по ГРБС ЛБО приравнены к ассигнованиям
            //берем проводку 503.01(Д) - 501.01(К)
            Огр := Огр + "or((bapd.buhacc>=5030100)and(bapd.buhacc<5030200)and(bapc.buhacc>=5010100)and(bapc.buhacc<5010200))";
          конец;           
        3 : //Переданные ЛБО
            //в 25Н для финорганов есть проводки распределения: ГРБС->РБС 501.01(Д)-501.02(К), ГРБС->ПБС 501.01(Д)-501.03(К),
            // РБС->ПБС 501.02(Д)-501.03(К), РБС->РБС 501.02(Д)-501.02(К). Определяем по ним передачу по дебетовым счетам
            Огр := Огр + "or((bapd.buhacc>=5010100)and(bapd.buhacc<5010300))";
        4 : // Полученные ЛБО
            //в 25Н для финорганов есть проводки распределения: ГРБС->РБС 501.01(Д)-501.02(К), ГРБС->ПБС 501.01(Д)-501.03(К),
            // РБС->ПБС 501.02(Д)-501.03(К), РБС->РБС 501.02(Д)-501.02(К). Определяем по ним получение по кредитовым счетам
            Огр := Огр + "or((bapc.buhacc>=5010200)and(bapc.buhacc<5010400))";
        // для подержки изменений в Бюджетном кодексе (3-х летнее планирование)
        // Можно выделять следующие операции:
        11: //Распределение ЛБО с ГРБС на РБС и ПБС 501.01(Д) - 501.02(К), 501.01(Д) - 501.03(К)  - бюджетная роспись ГРБС
            Огр := Огр + "or((bapd.buhacc>=5010100)and(bapd.buhacc<5010200))";
        12: // Распределение ЛБО с РБС на ПБС 501.02(Д) - 501.03(К) - бюджетная роспись РБС
            Огр := Огр + "or((bapd.buhacc>=5010200)and(bapd.buhacc<5010300)and(bapc.buhacc>=5010300)and(bapc.buhacc<5010400))";
        13: // Полученные ПБСами ЛБО  501.01(Д) - 501.03(К), 501.02(Д) - 501.3(К) - распределение по ПБС. Эти строки могут входить как в роспись ГРБС, так и в роспись РБС
            Огр := Огр + "or((bapc.buhacc>=5010300)and(bapc.buhacc<5010400))";
        14: // Полученные РБСами ЛБО 501.01(Д) - 501.02(К), 501.02(Д)-501.02(К) ГРБС->РБС - распределеиние по РБС. Это та часть росписей ГРБС, которая передается на РБС или перекидывается между РБС
            Огр := Огр + "or((bapc.buhacc>=5010200)and(bapc.buhacc<5010300))";
      конец;
    конец;
    Операции.Запрос := "[PumpData]{" + nl +
      "select distinct" + nl +
      "  bac.BuhOperationCLS" + nl +
      "from" + nl +
      "  buhacccorr bac" + nl +
      "  left join buhaccplan bapc on (bac.creditaccref = bapc.id)" + nl +
      "  left join buhaccplan bapd on (bac.debitaccref = bapd.id)" + nl +
      "where (1<>1)" + Огр + "}";
    ПолучитьДанные(Операции, nil);     
    Результат := GetLimitStr(Операции, "BuhOperationCLS");
    если Результат = "" тогда
      Результат := "-1";   
  обязательно
    УдалитьОбъект(Операции);
    УдалитьОбъект(Документы);
  конец;
конец;


Для лимитов
для блоков ОФ: 5-Утвержденные ОФ,6-Переданные ОФ,7-полученные ОФ
у меня этот блок не отрабатывает
Константы 32-16, 32-17, 32-18 должны браться из VarcharConst, но у меня там только пустая 32-17, остальных вообще нет.
На основании этих констант должно сформироваться ограничение по виду плана. Точнее наверно в этих константах и должен забит быть вид плана для ОФ.


Код: Выделить всё

функция ПолучитьОгрПоБухДокументу(Значение : строка) : строка;
переменные
  сч : целое;
  Документы : текст;
начало
  //Выделение бухгалтерских документов:
  //5 - Утвержденные объемы финансирования
  //6 - Переданные объемы финансирования
  //7 - Полученные объемы финансирования
  Результат := "";
  Документы := СоздатьТекст;
  попытка
    Документы.РазделенноеЗначение := Значение;
    от сч := 0 до Документы.Количество - 1 делать
    начало
      выбрать СтрокаВЦелое(Документы.Стр(сч)) из
        5 : Результат := Результат + "," + ПолучитьКонстантуКэш("", 32, 16, 2);
        6 : Результат := Результат + "," + ПолучитьКонстантуКэш("", 32, 17, 2);
        7 : Результат := Результат + "," + ПолучитьКонстантуКэш("", 32, 18, 2);
      конец;
    конец;
    Если Результат <> '' тогда
      Результат := Подстрока(Результат, 2, Длина(Результат) - 1); 
  обязательно
    УдалитьОбъект(Документы);
  конец;
конец;


Вернуться в «АС Бюджет»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей

cron