Имя: Пароль:
1C
1С v8
Не работает запрос в источнике данных для расчетов бюджетирования
,
0 Volhvus
 
20.09.12
18:19
Добрый день! Есть такая проблема. Создал запрос в консоле запросов и он там выполняется так как задумывалось. Пытаюсь на базе данного запроса сделать источник данных для расчетов бюджетирования в УПП. Выводит ошибочные данные. Кто-нибудь сталкивался с такого рода проблемами при создании источников данных для расчета бюджетирования. Управление производственным предприятием, редакция 1.3 (1.3.29.1)
Код:
ВЫБРАТЬ
//Выводится остаток прибыли
   ОстатокНераспредПрибыль.Организация,
   ОстатокНераспредПрибыль.ЦФО,
   СУММА(ВЫБОР
           КОГДА ОстатокНераспредПрибыль.НераспредПрибыль + ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) <= 0
                   ИЛИ ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) >= НаправленияРасходывания.СуммаВложения
               ТОГДА 0
           КОГДА ОстатокНераспредПрибыль.НераспредПрибыль + ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) >= НаправленияРасходывания.СуммаВложения
                   И ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) <= 0
               ТОГДА НаправленияРасходывания.СуммаВложения
           КОГДА ОстатокНераспредПрибыль.НераспредПрибыль + ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) >= НаправленияРасходывания.СуммаВложения
                   И ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) > 0
               ТОГДА НаправленияРасходывания.СуммаВложения - ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0)
           КОГДА ОстатокНераспредПрибыль.НераспредПрибыль + ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) > 0
                   И ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) > 0
                   И ОстатокНераспредПрибыль.НераспредПрибыль + ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) < НаправленияРасходывания.СуммаВложения
               ТОГДА ОстатокНераспредПрибыль.НераспредПрибыль
           КОГДА ОстатокНераспредПрибыль.НераспредПрибыль + ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) > 0
                   И ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) <= 0
                   И ОстатокНераспредПрибыль.НераспредПрибыль + ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0) < НаправленияРасходывания.СуммаВложения
               ТОГДА ОстатокНераспредПрибыль.НераспредПрибыль + ЕСТЬNULL(ПоступленияМинусАмортизация.СуммаОстаткаАмортизации, 0)
       КОНЕЦ) КАК Прибыль,
   НаправленияРасходывания.Сценарий
ИЗ
//Считается доступная прибыль  для инвестирования
   (ВЫБРАТЬ
       НераспредПрибыль.Организация КАК Организация,
       НераспредПрибыль.ЦФО КАК ЦФО,
       ЕСТЬNULL(НераспредПрибыль.СуммаПрибыли, 0) * ЕСТЬNULL(КоэффициентИнвестированияПрибылиСрезПоследних.КоэффициентИнвестирования, 0) КАК НераспредПрибыль
   ИЗ
   //Считается общая прибыль
       (ВЫБРАТЬ
           БюджетированиеОстатки.СуммаУпрОстатокКт КАК СуммаПрибыли,
           ВЫБОР
               КОГДА БюджетированиеОстатки.Субконто1 ССЫЛКА Справочник.Организации
                   ТОГДА БюджетированиеОстатки.Субконто1
               КОГДА БюджетированиеОстатки.Субконто2 ССЫЛКА Справочник.Организации
                   ТОГДА БюджетированиеОстатки.Субконто2
               КОГДА БюджетированиеОстатки.Субконто3 ССЫЛКА Справочник.Организации
                   ТОГДА БюджетированиеОстатки.Субконто3
               ИНАЧЕ НЕОПРЕДЕЛЕНО
           КОНЕЦ КАК Организация,
           ВЫБОР
               КОГДА БюджетированиеОстатки.Субконто1 ССЫЛКА Справочник.Подразделения
                   ТОГДА БюджетированиеОстатки.Субконто1
               КОГДА БюджетированиеОстатки.Субконто2 ССЫЛКА Справочник.Подразделения
                   ТОГДА БюджетированиеОстатки.Субконто2
               КОГДА БюджетированиеОстатки.Субконто3 ССЫЛКА Справочник.Подразделения
                   ТОГДА БюджетированиеОстатки.Субконто3
               ИНАЧЕ НЕОПРЕДЕЛЕНО
           КОНЕЦ КАК ЦФО
       ИЗ
           РегистрБухгалтерии.Бюджетирование.Остатки(&НачалоПериода, Счет = &Счт, , Сценарий = ЗНАЧЕНИЕ(Справочник.СценарииПланирования.ПустаяСсылка)) КАК БюджетированиеОстатки) КАК НераспредПрибыль
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КоэффициентИнвестированияПрибыли.СрезПоследних(&НачалоПериода, ) КАК КоэффициентИнвестированияПрибылиСрезПоследних
           ПО НераспредПрибыль.Организация = КоэффициентИнвестированияПрибылиСрезПоследних.Организация
               И НераспредПрибыль.ЦФО = КоэффициентИнвестированияПрибылиСрезПоследних.ЦФО) КАК ОстатокНераспредПрибыль
       ЛЕВОЕ СОЕДИНЕНИЕ
       //Счиается сумма амортизации после инвестирования
        (ВЫБРАТЬ
           Амортизация.ЦФО КАК ЦФО,
           ЕСТЬNULL(Амортизация.СуммаДебета, 0) - ЕСТЬNULL(ПоступлениеВнеоборотАктивов.СуммаКредита, 0) КАК СуммаОстаткаАмортизации,
           Амортизация.Организация КАК Организация
       ИЗ
           (ВЫБРАТЬ
               СУММА(ВЫБОР
                       КОГДА ОборотыБюджетовОбороты.Период < &НачалоПериода
                           ТОГДА ОборотыБюджетовОбороты.ВалютнаяСуммаОборот
                       ИНАЧЕ 0
                   КОНЕЦ) КАК СуммаДебета,
               ОборотыБюджетовОбороты.ЦФО КАК ЦФО,
               ОборотыБюджетовОбороты.Организация КАК Организация
           ИЗ
               РегистрНакопления.ОборотыБюджетов.Обороты(, , Регистратор, Сценарий = ЗНАЧЕНИЕ(Справочник.СценарииПланирования.ПустаяСсылка)) КАК ОборотыБюджетовОбороты
                   ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СопоставлениеСчетовДляБюджета КАК СопоставлениеСчетовДляБюджета
                   ПО ОборотыБюджетовОбороты.СтатьяОборотов = СопоставлениеСчетовДляБюджета.СтатьиОборотов.Дебет
           ГДЕ
               СопоставлениеСчетовДляБюджета.СтатьяБюджета = &СтБюджета
           
           СГРУППИРОВАТЬ ПО
               ОборотыБюджетовОбороты.ЦФО,
               ОборотыБюджетовОбороты.Организация) КАК Амортизация
               ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   СУММА(ВЫБОР
                           КОГДА ОборотыБюджетовОбороты.Период < &НачалоПериода
                               ТОГДА ОборотыБюджетовОбороты.ВалютнаяСуммаОборот
                           ИНАЧЕ 0
                       КОНЕЦ) КАК СуммаКредита,
                   ОборотыБюджетовОбороты.ЦФО КАК ЦФО,
                   ОборотыБюджетовОбороты.Организация КАК Организация
               ИЗ
                   РегистрНакопления.ОборотыБюджетов.Обороты(, , Регистратор, Сценарий = ЗНАЧЕНИЕ(Справочник.СценарииПланирования.ПустаяСсылка)) КАК ОборотыБюджетовОбороты
                       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СопоставлениеСчетовДляБюджета КАК СопоставлениеСчетовДляБюджета
                       ПО ОборотыБюджетовОбороты.СтатьяОборотов = СопоставлениеСчетовДляБюджета.СтатьиОборотов.Кредит
               ГДЕ
                   СопоставлениеСчетовДляБюджета.СтатьяБюджета = &СтБюджета
               
               СГРУППИРОВАТЬ ПО
                   ОборотыБюджетовОбороты.ЦФО,
                   ОборотыБюджетовОбороты.Организация) КАК ПоступлениеВнеоборотАктивов
               ПО Амортизация.ЦФО = ПоступлениеВнеоборотАктивов.ЦФО
                   И Амортизация.Организация = ПоступлениеВнеоборотАктивов.Организация) КАК ПоступленияМинусАмортизация
       ПО ОстатокНераспредПрибыль.Организация = ПоступленияМинусАмортизация.Организация
           И ОстатокНераспредПрибыль.ЦФО = ПоступленияМинусАмортизация.ЦФО
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ОборотыБюджетовОбороты.Организация КАК Организация,
           ОборотыБюджетовОбороты.Сценарий КАК Сценарий,
           ОборотыБюджетовОбороты.ЦФО КАК ЦФО,
           СУММА(ОборотыБюджетовОбороты.ВалютнаяСуммаОборот) КАК СуммаВложения
       ИЗ
           РегистрНакопления.ОборотыБюджетов.Обороты(&НачалоПериода, &КонецПериода, , Сценарий <> ЗНАЧЕНИЕ(Справочник.СценарииПланирования.ПустаяСсылка)) КАК ОборотыБюджетовОбороты
       ГДЕ
           ОборотыБюджетовОбороты.СтатьяОборотов.Родитель = &Родитель
       
       СГРУППИРОВАТЬ ПО
           ОборотыБюджетовОбороты.Организация,
           ОборотыБюджетовОбороты.ЦФО,
           ОборотыБюджетовОбороты.Сценарий) КАК НаправленияРасходывания
       ПО ОстатокНераспредПрибыль.Организация = НаправленияРасходывания.Организация
           И ОстатокНераспредПрибыль.ЦФО = НаправленияРасходывания.ЦФО

СГРУППИРОВАТЬ ПО
   ОстатокНераспредПрибыль.Организация,
   ОстатокНераспредПрибыль.ЦФО,
   НаправленияРасходывания.Сценарий

Данный код работает в консоле запросов и не хочет работать в источниках данных.
1 ILM
 
гуру
20.09.12
18:34
Требование к источнику данных для бюджетирования читали? Там имена полей должны быть "Сумма", "Количество". Попробуйте исправить... Могу сказать точно, лень лезть удаленно...
2 shuhard
 
20.09.12
18:37
(0) кривой запрос:
первое - см. (1)
второе - в нем нет поля период, без него не взлетит
третие - Организация в бюджетировании выглядит как провокация, нет такого измерения
3 Volhvus
 
21.09.12
13:03
Иточник проблемы нашел.Был неверно задан параметр источника данных.
(1) имена полей особый роли не играют, так как при сопоставлении со статьями оборотов по бюджетам там все равно указывается сопоставление полей источника и статьи оборотов и указывается коэффициент для суммы и количества.
(2) поле период нужен если подтягивается факт документом учет фактических данных, я же использую источник данных в документе расчет по модели бюджетирования для обработки плановых данных и получения значений по ряду статей оборотов по бюджету и там период не играет роли, так как данные с документа передаются в параметры запроса и на выходе получаем результат за указанный в документе расчет по модели бюджетирования период и соответсвенно он делает движения в регистрах с указанием заданного периода.
Организация не провокация. Я ввел в бюджетирование еще одно измерение "Организация", не надо говорить как это плохо, знаю все плюсы и минусы. Все работает, ушло 5 рабочих дней.
Вообще подсистема бюджетирования достаточно кривая, и много чего полезного по задумке, по факту работает не так как нужно по логике, в частности финансовый расчет и выше упомянутый документ расчет по модели бюджетирования (в документе напрочь игнорируется сценарность источника данных), приходится доделывать.
Вообщем, не судите строго,работаю я руководителем финансовго отдела, а не 1с программистом,поэтому могу где-то ошибаться, но пока все что я сделал работает.
4 ILM
 
гуру
21.09.12
13:23
(3) Бюджетирование для УпрУчета сделано.
[я же использую источник данных в документе расчет по модели бюджетирования для обработки плановых данных и получения значений по ряду статей оборотов по бюджету] - зависимости статей затрат почему не используете.
[в документе напрочь игнорируется сценарность источника данных] - так и надо, это же факт.
[Вообщем, не судите строго,работаю я руководителем финансовго отдела, а не 1с программистом] Как говорится хозяин барин.
Может оффтоп, но спрошу с вашего разрешения:
1) Какие задачи пытаетесь решить с помощью бюджетирования?
2) Что уже удалось решить на базе бюджетов?
3) Сколько сценариев делаете?
4) Как консолидируете общий бюджет?
5) Лимиты используете по статьям затрат?
5 shuhard
 
21.09.12
13:30
(4)[Лимиты используете по статьям затрат]
по статьям ДДС - успешно внедрял,
по статьям затрат - прикольно, сняли сауну с блэк-джеком и шлюхами, а УПП не даёт ПТиУ провести и пишет лимит на год исчерпан ?
6 ILM
 
гуру
21.09.12
13:42
(5) Я не у вас спрашивал )))
[по статьям затрат] - меняете на материалы )))
7 shuhard
 
21.09.12
13:44
(6) аполитично рассуждаешь =)
8 ILM
 
гуру
21.09.12
13:46
(7) - Не, нормально, будет: пар, тепло, вода, мыло. Ну чуть дороже)))
9 Volhvus
 
21.09.12
15:15
(4) Документом установка зависимостей по статьям пользуюсь, но он не поддерживает использование вариантов расчета в зависимости от условия и не работает с фактическими данными, а мне они нужны, чтобы расчитать некоторые показатели на начало планового периода. По поводу источника данных и факта, данный справочник можно использовать не только для сбора факта, но сложных расчетов плановых данных, так как некоторые документы и в, частности, документ расчет по модели бюджетирования к ним может обращаться и использовать данные, а вот отсутствие в плановых данных сценария, это не хорошо. Смысл давать возможность обработки плановых данных через источники данных, но не давать возможность учитывать сценарии в расчете по модели бюджетирования.
Весть учет, не зависимо от того упр он или рег, представляет собой способы сбора, обработки и предоставления информации  о состоянии и динамике хозяйственных процессов в компании. Данная информация нужна для принятия управленческих решений. Поэтому бюджетирование нужно, на мой взгляд,  для того, чтобы смоделировать развитие компании на заданный период и выделить  тренд, отклонение от которого должно вести к некому набору управленческих решений в контрольных точках (итоги месяца, кварта, года).
Сценариев пока два (база находится на этапе тестирования, так как внедряется с нуля, нет регламентов по части бизнец-процессов).
10 ILM
 
гуру
21.09.12
15:21
(9) А поподробнее можно этот абзац раскрыть:
[Данная информация нужна для принятия управленческих решений. Поэтому бюджетирование нужно, на мой взгляд,  для того, чтобы смоделировать развитие компании на заданный период и выделить  тренд, отклонение от которого должно вести к некому набору управленческих решений в контрольных точках (итоги месяца, кварта, года).
Сценариев пока два (база находится на этапе тестирования, так как внедряется с нуля, нет регламентов по части бизнец-процессов).]
Что по факту есть и применяется на предприятии?
Чем довольны и чем нет?
11 ILM
 
гуру
21.09.12
15:22
+(10) Вы что делегируете в ЦФО - модель развития?
12 shuhard
 
21.09.12
15:30
(9)[а вот отсутствие в плановых данных сценария, это не хорошо]
тут что-то не так:
в планах сценарий обязательный разделитель учета,
его(сценария) нет только в факте
13 Volhvus
 
21.09.12
16:13
(9)Не так в механизме работы документа расчет по модели бюджетирования. Он, например, берет  некую выборку из плановых данных, получинную через источник данных для расчетов бюджетирования, в которой есть разные сценарии и необращая внимания на них группирует данные и при формировании движений по регистру ОборотыБюджетов ставит тот сценарий, который указан у него в шапке. Вообщем, пришлось вставить небольшой код, чтобы он прежде чем обрабатывать данные их отбирал по сценарию, указанному в шапке.
14 Volhvus
 
21.09.12
16:25
(10) Я думаю, методология и целевые установки при внедрении упр учета и бюджетирования в частности, это тема для новой ветки.