Нестандартное закрытие месяца в Бухгалтерии 3.0

14.05.20

Задачи пользователя - Закрытие периода

Хотел бы рассказать вам об интересном опыте решения задачи по доработке штатного закрытия месяца (по 20,23,25,26 счету) в Бухгалтерии 3.0 и Корп.

Нестандартное закрытие месяца на Бухгалтерии 3.0.

 

Хотел бы рассказать вам об интересном опыте решения задачи по доработке штатного закрытия месяца (по 20,23,25,26 счету) в Бухгалтерии 3.0 и Корп.

Исторически сложилось, что у клиента 25 счет распределялся таким же образом, как 26 (т.е. не в пределах подразделения, а по всем подразделениям, где есть нужная база распределения, кроме того – на часть номенклатурных групп, по которым распределяются затраты на 20 счете, не должны распределяться затраты со счета 25. Все это было реализовано в 1С: Бухгалтерии 2.0 и потом этот код был без изменений перенесен в бухгалтерию 3.0.

Однако с течением времени меняется все, в том числе механизмы закрытия месяца в бухгалтерии 3 и учетная политика… И старые механизмы перестали заполнять необходимые дополнительные регистры, и потребовалось адаптировать штатные механизмы бухгалтерии 3.0 для подобного поведения регламентной операции «Закрытие 20,23,25,26 счета».

Итак, передо мной открылась замечательная перспектива дописывания графа затрат, ребер, вершин и прочей высшей математики в приложении 1с. Однако, с момента появления этого механизма, 1с внес множество усовершенствований, в частности, сделал программный интерфейс, с помощью которого можно дорабатывать поведение процедуры закрытия месяца для различных ситуаций, происходящих на клиентских базах. В результате изучения партнерского форума и кода конфигурации «Бухгалтерия 3.0», в частности, был обнаружен общий модуль «ПравилаРаспределенияРасходовМодификацияКонфигурации», содержащий процедуру:

Процедура ПриДобавленииПравилПоСчету(Процессор) Экспорт

В оригинале, она выглядит так:

Процедура ПриДобавленииПравилПоСчету(Процессор) Экспорт
    
    // Для поиска предопределенного правила, подлежащего модификации, можно использовать Имя предопределенных правил.
    // При этом анализировать следует части имени, предшествующую первому символу "."
    // Подробнее см. комментарий в ПравилаРаспределенияРасходов.НовыеПравилаРаспределения()
    
    // Пример модификации правила, позволяющей распределять расходы, учтенные на счете 25, аналогично общехозяйственным:
    // без ограничения направлений распределения подразделениями, в которых учтены расходы на счете 25.
    
    // <начало примера>
    //Если Процессор.КлассСчетов <> "КосвенныеРасходы" Тогда
    //    Возврат;
    //КонецЕсли;
    //
    //Если Процессор.Закрытие.Направление <> "КалькуляционныйСчет" Тогда
    //    Возврат;
    //КонецЕсли;
    //
    //ИмяМодифицируемогоПравила = "МетодОплатаТруда";
    //
    //Для Каждого Правило Из Процессор.Правила Цикл
    //    
    //    ЭлементыИмени = СтрРазделить(Правило.Имя, ".");
    //    Если Не ЗначениеЗаполнено(ЭлементыИмени) Или ЭлементыИмени[0] <> ИмяМодифицируемогоПравила Тогда
    //        Продолжить;
    //    КонецЕсли;
    //    
    //    Правило.ПоляИсточника.Удалить("Подразделение");
    //    
    //КонецЦикла;
    // <конец примера>

    
КонецПроцедуры

Как видим, там приведен хороший пример, как сделать распределение 25 счета по аналогии с 26-м (т.е. не учитывая подразделения!!!).

Я проверил, этот код действительно работает и делает то что надо – из 25 счета второй 26.

Однако перед нами стоит еще одна задача – сделать так, чтобы наши затраты 25 (и только 25) счета не распределялись на некоторые, отмеченные галками «не распр.25» номенклатурные группы. Изыскания в отладчике принесли информацию, что в процедуру «ПриДобавленииПравилПоСчету» передается структура «Процессор» с таблицей «Правила», в каждой из строк которой есть запрос, определяющий базу распределения по каждому из правил, он в виде текста хранится в реквизите «Правило.БазаРаспределения.ТекстЗапроса». Т.е. если мы хотим поменять базу распределения, то нужно поменять этот самый запрос. Например, так:

        НайденныйСчет = Неопределено;
        
        Если Правило.ОтборРасходов.Свойство("Счет",НайденныйСчет)Тогда
            Если
НайденныйСчет = Счет25 Тогда
               Если
Найти(Правило.БазаРаспределения.ТекстЗапроса,"ПрямыеРасходы.НоменклатурнаяГруппа.НеРаспр25 = ЛОЖЬ") = 0 Тогда
                  
Правило.БазаРаспределения.ТекстЗапроса = СтрЗаменить( Правило.БазаРаспределения.ТекстЗапроса,
                      "СГРУППИРОВАТЬ ПО","
                            |ГДЕ 
                            |  ПрямыеРасходы.НоменклатурнаяГруппа.НеРаспр25 = ЛОЖЬ
                            |
                            |СГРУППИРОВАТЬ ПО");
                КонецЕсли;
             КонецЕсли;
        КонецЕсли;

В разкомментированном примере из типовой конфигурации добавляем условие, что если счет – это счет 25 и в запросе еще нет условия по галке, то добавляем это условие. Проверка на наличие условия в запросе нужна, так как процедура может вызываться более одного раза, и, если это условие не вставить – запрос может быть испорчен. Такая настройка позволяет распределить 25 счет только на те номенклатурные группы, у которых не стоит галка «НеРаспр25».

Полная текстовка процедуры:

Процедура ПриДобавленииПравилПоСчету(Процессор) Экспорт
    
    Если
Процессор.КлассСчетов <> "КосвенныеРасходы" Тогда
        Возврат;
    КонецЕсли;
    
    Если
Процессор.Закрытие.Направление <> "КалькуляционныйСчет" Тогда
        Возврат;
    КонецЕсли;
    
    
ИмяМодифицируемогоПравила = "МетодОплатаТруда";
    
    
Счет25 = ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы;
    
    Для Каждого
Правило Из Процессор.Правила Цикл
        
        
ЭлементыИмени = СтрРазделить(Правило.Имя, ".");
        Если Не
ЗначениеЗаполнено(ЭлементыИмени) Или ЭлементыИмени[0] <> ИмяМодифицируемогоПравила Тогда
            Продолжить;
        КонецЕсли;
        
        
НайденныйСчет = Неопределено;
        
        Если
Правило.ОтборРасходов.Свойство("Счет",НайденныйСчет)Тогда
            Если
НайденныйСчет = Счет25 Тогда
                Если
Найти(Правило.БазаРаспределения.ТекстЗапроса,"ПрямыеРасходы.НоменклатурнаяГруппа.НеРаспр25 = ЛОЖЬ") = 0 Тогда
                  
Правило.БазаРаспределения.ТекстЗапроса = СтрЗаменить( Правило.БазаРаспределения.ТекстЗапроса,
                      
"СГРУППИРОВАТЬ ПО","
                            |ГДЕ 
                            |  ПрямыеРасходы.НоменклатурнаяГруппа.НеРаспр25 = ЛОЖЬ
                            |
                            |СГРУППИРОВАТЬ ПО");
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;


        Правило.ПоляИсточника.Удалить("Подразделение");
        
    КонецЦикла;
КонецПроцедуры

Однако вскрылась еще одна интересная особенность распределения затрат: оказывается, база распределения, расчет которой мы так замечательно поправили, рассчитывается не для счета затрат (как было бы логично исходя из отдельных правил для 25 и 26 счета в таблице правил), а для способа распределения (в нашем случае это «Оплата труда»). Т.е. при такой настройке у нас 26 счет тоже не распределится на номенклатурные группы с галкой «НеРаспр25», что нас, конечно же, не устраивает.  Решение этого вопроса мне подсказала коллега (Спасибо тебе, Мартьянова Екатерина!) – нужно сделать для 26 счета отдельный способ распределения в регистре сведений «Методы распределения общепроизводственных и общехозяйственных затрат»:

И назначить ему базу распределения – отдельные статьи прямых затрат, а в список статей прямых затрат набрать те же статьи, которые входят в предыдущую базу распределения (в данном случае все статьи с видом «Оплата труда». Вуаля – теперь 25 счет распределяется по базе распределения, описанной нашим доработанным запросом, а 26 по аналогичной, но другой базе распределения, где никаких условий по галке уже нет.

Таким вот нехитрым способом можно добиваться нестандартного закрытия месяца с помощью встроенных механизмов Бухгалтерии 3.0.

Закрытие месяца Бухгалтерия Нестандартное Доработка

См. также

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    35543    115    152    

79

Закрытие периода Оптовая торговля Розничная торговля Кассовые операции Учет доходов и расходов Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1C:Бухгалтерия 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:CRM ПРОФ, КОРП 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1С:ERP. Управление холдингом Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Гостиничный бизнес Пищевая промышленность Россия Бухгалтерский учет Бюджетный учет Налоговый учет ЕНВД ЕСХН ИП, ПБОЮЛ, КФХ Налог на прибыль НДС УСН ПСН (патентная система налогообложения) Платные (руб)

Внешняя обработка для ведения в электронной форме КУДиР в 1С - книги учёта доходов и расходов для предприятий на УСН, ПСН, ЕСХН. Заполнение раздела 1 - "доходы и расходы" из журнала документов вашей ИБ (любой конфигурации 1С:Предприятие 8). Формирование отчета Кассовая книга КО-4 по данным раздела 1.

6990 руб.

15.03.2016    118878    302    158    

285

Закрытие периода Бухгалтер Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

В современных конфигурациях УТ 11, КА 2, ERP 2 и их аналогах присутствует механизм закрытия периода. Но при ошибках учета закрыть период корректно становится практически невозможно! Давайте попробуем разобраться, как можно устранить ошибки и закрыть корректно месяц!

28000 руб.

20.03.2018    76875    280    76    

305

Закрытие периода Бухгалтер Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Обработка позволяет исправить развернутое сальдо по видам запасов, которое осталось после штатной обработки перепроведения документов. Подходит для конфигураций: УТ 11, КА 2, ERP

2400 руб.

15.07.2017    64454    157    49    

154

Закрытие периода Мастера заполнения Бухгалтер Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х Бухгалтерский учет Налоговый учет УСН Платные (руб)

При формировании КУДиР при УСН часто возникает множество вопросов и проблем, к.т.: 1. Как выполняется заполнение книги учета доходов и расходов 2. Неправильно формируется книга учета доходов и расходов в 1С а). Доходы / расходы не попадают в КУДиР; б). Доходы / расходы попадают, но не принимаются к учету и многие другие ошибки. При правильном учёте, книга формируется корректно, но идеальный учет это скорее фантастика, для реальных случаев можно использовать специальный инструмент. Обработка предназначена для заполнения КУДиР. Версия для актуальных конфигураций на управляемых формах поддерживает один механизм заполнения - от бухгалтерской проводки. Старый метод автоматизации штатного заполнения присутствует в отдельной версии для обычных форм.

5880 руб.

12.03.2014    134639    81    97    

108

Загрузка и выгрузка в Excel Закрытие периода Оптовая торговля Производство готовой продукции (работ, услуг) Регламентированный учет и отчетность Бухгалтер Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет НДС Платные (руб)

Обработка позволяет формировать средствами 1С Налоговую декларацию по НДС (Приложение № 4 к постановлению Правительства Российской Федерации от 26 декабря 2011 г. № 1137 (в ред. Постановления Правительства РФ от 19.08.2017 № 981)  и (в ред. 28.04.2018: ФНС приказом от 06.04.2018 № ММВ-7-6/196@) заполнив файл Excel книгой продаж, покупок по стандарту (Постановления Правительства РФ от 19.08.2017 № 981) (в ред. 28.04.2018: ФНС приказом от 06.04.2018 № ММВ-7-6/196@) или загрузив минимум информации из любой внешней базы. Итог - Декларация в электронном виде для сдачи в ФНС. Повышение с 01.01.2019 ставки НДС с 18 до 20% на основании Федерального закона от 3 августа 2018 года № 303-ФЗ потребовало внести коррективы и в постановление Правительства РФ от 26.12.2011 № 1137

4200 руб.

26.12.2017    47283    95    26    

96

Закрытие периода Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Менеджер забывает перемещать товар между складами, а в УТ отключен контроль остатков ? Бухгалтер готов застрелиться при закрытии месяца и выравнивании отрицательных остатков по складам и фирмам ? Используй автоматическое перемещение товаров между складами и организациями для 1С УТ 11.

5000 руб.

30.05.2019    29896    33    10    

37

Закрытие периода Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Закрытие месяца в конфигурации 1С:Управлении нашей фирмой — это очень важная задача, которую необходимо выполнять на постоянной основе. Однако, как зачастую бывает, важные и регулярные задачи могут быть упущены из виду. В связи с этим, нами было разработано решение для автоматического закрытия месяца в 1С:УНФ для оптимизации данного процесса.

4500 руб.

30.09.2022    8597    21    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dnikolaev 168 16.05.20 19:26 Сейчас в теме
да..! сталкивался год назад с подобной задачей.

решил так. добавил к 25 счету субсчет 25.02 (без аналитики подразделений).. просто статьи затрат
и где то в общем модуле прописал что 25.02 относится к общехозяйственным затратам..
и он стал размазываться на 20 при закрытии. по аналогии с 26.. пропорционально выпуску.
в регламентированной отчетности. прибыль - везде все подхватило тоже.
2. German_Tagil 43 18.05.20 10:51 Сейчас в теме
Добрый день! Пытаюсь распределить 25 счет без подразделений и ничего не изменяется
3. user1114962 89 18.05.20 12:53 Сейчас в теме
(2)
Добрый день! Пытаюсь распределить 25 счет без подразделений и ничего не изменяется
Добрый день! Расскажите подробнее, что именно меняли и что сделать именно сделать пытаетесь? если просто сделать распределение затрат 25 счета без учета подразделений, надо просто разкомментировать типовое наполнение процедуры Процедура ПриДобавленииПравилПоСчету(Процессор) Экспорт, и если у Вас база распределения не оплата труда - заменить в ней "Оплату труда" на соответствующую базу.
4. German_Tagil 43 18.05.20 14:34 Сейчас в теме
(3) Это я уже понял. Разкомментировал, прописал Базу "МетодОтдельныестатьипрямыхзатрат"

текст процедуры

&ВМЕСТО("ПриДобавленииПравилПоСчету")
Процедура СН_ПриДобавленииПравилПоСчету(Процессор)
    
        
        Если Процессор.КлассСчетов <> "КосвенныеРасходы" Тогда
            Возврат;
        КонецЕсли;
        
        Если Процессор.Закрытие.Направление <> "КалькуляционныйСчет" Тогда
            Возврат;
        КонецЕсли;
        
        ИмяМодифицируемогоПравила = "МетодОтдельныестатьипрямыхзатрат";
        
        Счет25 = ПланыСчетов.Хозрасчетный.ОбщепроизводственныеРасходы;
        
        Для Каждого Правило Из Процессор.Правила Цикл
            
            ЭлементыИмени = СтрРазделить(Правило.Имя, ".");
            Если Не ЗначениеЗаполнено(ЭлементыИмени) Или ЭлементыИмени[0] <> ИмяМодифицируемогоПравила Тогда
                Продолжить;
            КонецЕсли;
            
            НайденныйСчет = Неопределено;
            
            Если Правило.ОтборРасходов.Свойство("Счет",НайденныйСчет)Тогда
                Если НайденныйСчет = Счет25 Тогда
            
                      Правило.БазаРаспределения.ТекстЗапроса = СтрЗаменить( Правило.БазаРаспределения.ТекстЗапроса,
                          "СГРУППИРОВАТЬ ПО","
                                |ГДЕ 
                                |  ПрямыеРасходы.НоменклатурнаяГруппа
                                |
                                |СГРУППИРОВАТЬ ПО");

                КонецЕсли;
            КонецЕсли;


            Правило.ПоляИсточника.Удалить("Подразделение");
            
        КонецЦикла;
    КонецПроцедуры



Показать



Как то странно это все работает что не подставляй сумма не изменна
С закрытием месяца первый раз сталкиваюсь поэтому пока слабо понимаю куда грести ....
5. Lusha_28 51 13.07.20 17:29 Сейчас в теме
Спасибо огромное за статью, очень помогла. Мне надо было исключить добавленный субсчет 44.03 из закрытия. Без вашего описания застряла бы надолго.
6. gala2009 31 11.11.20 12:44 Сейчас в теме
Добрый день!

работает ли ваша доработка(относительно закрытия на отдельные НГ), если 25 счет закрывается по выручке?

достаточно ли в Процедура ПриДобавленииПравилПоСчету
изменить
ИмяМодифицируемогоПравила = "МетодОплатаТруда";

на

ИмяМодифицируемогоПравила = "МетодВыручка"; ?

если 25 закрывается на прямые затраты, то изменение на ИмяМодифицируемогоПравила = "МетодПрямыеЗатраты";
помогло
но с выручкой не получается, закрывается пропорционально ном.группам на 90.01, и в том числе на НГ с отметкой не распр
11. root_szr 89 07.03.25 06:49 Сейчас в теме
(6) Добрый день.
Вы решили в своё время данный вопрос?
Тоже стоит задача закрывать 25 счет пропорционально выручке, но выручку пары номенклатурных групп не брать в базу распределения.
12. slavik27 105 07.03.25 07:10 Сейчас в теме
нет не решили, так и живем с нестандартной доработкой закрытия месяца!
7. uvdfeo 1 30.06.21 14:47 Сейчас в теме
Добрый день! Из распределения 25 счета надо исключить Подразделение, в настройках учета указано Не распределять, но не работает. Помогите пожалуйста с запросом в ПриДобавленииПравилПоСчету. Спасибо.
Прикрепленные файлы:
8. slavik27 105 03.05.22 18:53 Сейчас в теме
Можете подсказать
Вы упомянули, что что-то по поводу алгоритма закрытия пишут в партнерском форуме - там как-то детально рассматривают этот механизм закрытия, чтобы было понятно как дорабатывать?
9. user1114962 89 04.05.22 19:53 Сейчас в теме
(8) Ну относительно детально. Главным образом приводили примеры, как решить конкретную задачу. Мне в свое время хватило, но и самому разбираться много пришлось.
10. slavik27 105 05.05.22 18:06 Сейчас в теме
Оставьте свое сообщение