Имя: Пароль:
1C
1С v8
БП 3.0. Закрытие 44 "Издержки обращения" на 90.07 в разрезе Номенклатурных Групп
0 Бурбон
 
01.07.14
12:52
В отличие от БП 1.6 в БП 3.0 нет аналитики Номенклатурные группы на счете 90.07
Требуется дописать правила закрытия 44 счета с учетом распределения по НГ. Кто реализовывал, подскажите алгоритмику.
1 Бурбон
 
01.07.14
13:01
Пока сделал так.
Процедура ДобавитьПравилоРасходыНаПродажу(ПравилаРаспределения)
    
    // Списываем расходы на продажу (на финансовый результат)
    Правило = ПравилаРаспределения.Добавить();
    Правило.Имя                = "РасходыНаПродажу";
    Правило.Наименование       = НСтр("ru = 'Списать расходы на продажу на результат текущего периода'");
    Правило.СодержаниеПроводки = НСтр("ru = 'Закрытие счетов косвенных расходов'");
    
    // Отбор источника
    Правило.ОтборРасходов = Новый Структура;
    СчетаРасходовНаПродажу = УчетЗатрат.ПредопределенныеСчетаРасходовНаПродажу();
    Правило.ОтборРасходов.Вставить("Счет", БухгалтерскийУчет.ПолучитьМассивСчетовССубсчетами(СчетаРасходовНаПродажу));
    
    Правило.Действие = "РаспределитьНаРасходы";
    
    ПоляПриемника = Новый Структура;
    //ПоляПриемника.Вставить("Счет");
    ПоляПриемника.Вставить("НоменклатурнаяГруппа");
    Правило.ПоляПриемника=ПоляПриемника;
    
    Правило.ПоляИсточника.Вставить("ВидДеятельности", "ВидДеятельности");
    
    ТекстЗапроса =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    Хозрасчетный.Ссылка КАК Счет
    |ПОМЕСТИТЬ ВТ_СчетаВыручки
    |ИЗ
    |    ПланСчетов.Хозрасчетный КАК Хозрасчетный
    |ГДЕ
    |    (Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Выручка))
    |            ИЛИ Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС)))
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Счет
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ЗНАЧЕНИЕ(Перечисление.ВидыДеятельностиДляНалоговогоУчетаЗатрат.ОсновнаяСистемаНалогообложения) КАК ВидДеятельности,
    |    &ПустоеПодразделение КАК Подразделение,
    |    ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_РасходыНаПродажуНеЕНВД) КАК Счет,
    |    ХозрасчетныйОбороты.Субконто1 КАК НоменклатурнаяГруппа,
    |    ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотКт, 0) - ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотДт, 0) КАК База
    |ПОМЕСТИТЬ БазаРаспределения_СписатьРасходыНаПродажу
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(
    |            &НачалоПериода,
    |            &КонецПериода,
    |            ,
    |            Счет В
    |                (ВЫБРАТЬ
    |                    ВТ_СчетаВыручки.Счет
    |                ИЗ
    |                    ВТ_СчетаВыручки),
    |            ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы),
    |            Организация = &Организация,
    |            ,
    |            ) КАК ХозрасчетныйОбороты
    |";
    
    Правило.БазаРаспределения.Вставить("Имя",          "БазаРаспределения_СписатьРасходыНаПродажу");
    Правило.БазаРаспределения.Вставить("ТекстЗапроса", ТекстЗапроса);
    
КонецПроцедуры

Результат: "Расчет" формируется, проводок нет
2 Бурбон
 
01.07.14
14:23
?
3 Бурбон
 
01.07.14
16:41
Как всегда сам себе. Решение.

Процедура ДобавитьПравилоРасходыНаПродажу(ПравилаРаспределения)
    
    // Списываем расходы на продажу (на финансовый результат)
    Правило = ПравилаРаспределения.Добавить();
    Правило.Имя                = "РасходыНаПродажу";
    Правило.Наименование       = НСтр("ru = 'Списать расходы на продажу на результат текущего периода'");
    Правило.СодержаниеПроводки = НСтр("ru = 'Закрытие счетов косвенных расходов'");
    
    // Отбор источника
    Правило.ОтборРасходов = Новый Структура;
    СчетаРасходовНаПродажу = УчетЗатрат.ПредопределенныеСчетаРасходовНаПродажу();
    Правило.ОтборРасходов.Вставить("Счет", БухгалтерскийУчет.ПолучитьМассивСчетовССубсчетами(СчетаРасходовНаПродажу));
    
    Правило.Действие = "РаспределитьНаСубконто";
    
    ПоляПриемника = Новый Структура;
    //ПоляПриемника.Вставить("Счет");
    ПоляПриемника.Вставить("Субконто1");
    Правило.ПоляПриемника=ПоляПриемника;
    
    Правило.ПоляИсточника.Вставить("ВидДеятельности", "ВидДеятельности");
    
    ТекстЗапроса =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    Хозрасчетный.Ссылка КАК Счет
    |ПОМЕСТИТЬ ВТ_СчетаВыручки
    |ИЗ
    |    ПланСчетов.Хозрасчетный КАК Хозрасчетный
    |ГДЕ
    |    (Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Выручка))
    |            ИЛИ Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС)))
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Счет
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ЗНАЧЕНИЕ(Перечисление.ВидыДеятельностиДляНалоговогоУчетаЗатрат.ОсновнаяСистемаНалогообложения) КАК ВидДеятельности,
    |    &ПустоеПодразделение КАК Подразделение,
    |    ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_РасходыНаПродажуНеЕНВД) КАК Счет,
    |    ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
    |    НЕОПРЕДЕЛЕНО КАК Субконто2,
    |    НЕОПРЕДЕЛЕНО КАК Субконто3,
    |    ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
    |    ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотКт, 0) - ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотДт, 0) КАК База
    |ПОМЕСТИТЬ БазаРаспределения_СписатьРасходыНаПродажу
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(
    |            &НачалоПериода,
    |            &КонецПериода,
    |            ,
    |            Счет В
    |                (ВЫБРАТЬ
    |                    ВТ_СчетаВыручки.Счет
    |                ИЗ
    |                    ВТ_СчетаВыручки),
    |            ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы),
    |            Организация = &Организация,
    |            ,
    |            ) КАК ХозрасчетныйОбороты
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    ВидДеятельности
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |УНИЧТОЖИТЬ ВТ_СчетаВыручки";
    
    Правило.БазаРаспределения.Вставить("Имя",          "БазаРаспределения_СписатьРасходыНаПродажу");
    Правило.БазаРаспределения.Вставить("ТекстЗапроса", ТекстЗапроса);
    
КонецПроцедуры

Процедура ДобавитьПравилоРасходыНаПродажу(ПравилаРаспределения)
    
    // Списываем расходы на продажу (на финансовый результат)
    Правило = ПравилаРаспределения.Добавить();
    Правило.Имя                = "РасходыНаПродажу";
    Правило.Наименование       = НСтр("ru = 'Списать расходы на продажу на результат текущего периода'");
    Правило.СодержаниеПроводки = НСтр("ru = 'Закрытие счетов косвенных расходов'");
    
    // Отбор источника
    Правило.ОтборРасходов = Новый Структура;
    СчетаРасходовНаПродажу = УчетЗатрат.ПредопределенныеСчетаРасходовНаПродажу();
    Правило.ОтборРасходов.Вставить("Счет", БухгалтерскийУчет.ПолучитьМассивСчетовССубсчетами(СчетаРасходовНаПродажу));
    
    Правило.Действие = "РаспределитьНаСубконто";
    
    ПоляПриемника = Новый Структура;
    //ПоляПриемника.Вставить("Счет");
    ПоляПриемника.Вставить("Субконто1");
    Правило.ПоляПриемника=ПоляПриемника;
    
    Правило.ПоляИсточника.Вставить("ВидДеятельности", "ВидДеятельности");
    
    ТекстЗапроса =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    Хозрасчетный.Ссылка КАК Счет
    |ПОМЕСТИТЬ ВТ_СчетаВыручки
    |ИЗ
    |    ПланСчетов.Хозрасчетный КАК Хозрасчетный
    |ГДЕ
    |    (Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Выручка))
    |            ИЛИ Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС)))
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Счет
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ЗНАЧЕНИЕ(Перечисление.ВидыДеятельностиДляНалоговогоУчетаЗатрат.ОсновнаяСистемаНалогообложения) КАК ВидДеятельности,
    |    &ПустоеПодразделение КАК Подразделение,
    |    ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_РасходыНаПродажуНеЕНВД) КАК Счет,
    |    ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
    |    НЕОПРЕДЕЛЕНО КАК Субконто2,
    |    НЕОПРЕДЕЛЕНО КАК Субконто3,
    |    ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
    |    ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотКт, 0) - ЕСТЬNULL(ХозрасчетныйОбороты.СуммаОборотДт, 0) КАК База
    |ПОМЕСТИТЬ БазаРаспределения_СписатьРасходыНаПродажу
    |ИЗ
    |    РегистрБухгалтерии.Хозрасчетный.Обороты(
    |            &НачалоПериода,
    |            &КонецПериода,
    |            ,
    |            Счет В
    |                (ВЫБРАТЬ
    |                    ВТ_СчетаВыручки.Счет
    |                ИЗ
    |                    ВТ_СчетаВыручки),
    |            ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы),
    |            Организация = &Организация,
    |            ,
    |            ) КАК ХозрасчетныйОбороты
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    ВидДеятельности
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |УНИЧТОЖИТЬ ВТ_СчетаВыручки";
    
    Правило.БазаРаспределения.Вставить("Имя",          "БазаРаспределения_СписатьРасходыНаПродажу");
    Правило.БазаРаспределения.Вставить("ТекстЗапроса", ТекстЗапроса);
    
КонецПроцедуры
4 Бурбон
 
01.07.14
16:44
Два раза тест процедуры вставил в сообщение. Да простите меня.