8.х Процедура обработки проведения

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем nickvv, 24 сен 2014.

  1. TopicStarter Overlay
    nickvv
    Offline

    nickvv Опытный в 1С

    Регистрация:
    10 май 2011
    Сообщения:
    280
    Симпатии:
    0
    Баллы:
    26
    Уважаемые эксперты, помогите, пожалуйста, разобраться!
    1С:Предприятие 8.3 (8.3.5.1119),
    Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.35.28)
    Стоит задача подготовить Счет 20.01 к закрытию, для чего надо собрать все дебетовые остатки в разрезе номенклатурных групп и статей затрат и перенести их на ту номенклатурную группу, которую главбух выбирает на форме написанного документа "Подготовка Сч20 к закрытию", статья затрат при этом должна выбираться в зависимости от подразделения исходных проводок по счету.
    Вот скриншот исходной ОСВ по счету:
    2014-09-24-before.png
    Вот код, который у меня сейчас в Обработке проведения:
    Код:
    Процедура ОбработкаПроведения(Отказ, Режим)
       
        ПроведениеСервер.ПодготовитьНаборыЗаписейКОтменеПроведения(ЭтотОбъект);
        Движения.Записать();
       
        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    ХозрасчетныйОстатки.Счет,
            |    ХозрасчетныйОстатки.Субконто1,
            |    ХозрасчетныйОстатки.Субконто2 КАК СтатьяЗатрат,
            |    ХозрасчетныйОстатки.Подразделение,
            |    ХозрасчетныйОстатки.СуммаОстаток
            |ИЗ
            |    РегистрБухгалтерии.Хозрасчетный.Остатки КАК ХозрасчетныйОстатки
            |ГДЕ
            |    ХозрасчетныйОстатки.Счет = &Счет2001
            |    И ХозрасчетныйОстатки.СуммаОстаток > 0
            |    И ХозрасчетныйОстатки.Субконто1 В (&Экспедиция, &ОснНГ, &РБП)";
       
        Запрос.УстановитьПараметр("Счет2001", ПланыСчетов.Хозрасчетный.ОсновноеПроизводство);
        Запрос.УстановитьПараметр("Экспедиция", Экспедиция);
        Запрос.УстановитьПараметр("ОснНГ", Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"));
        Запрос.УстановитьПараметр("РБП", Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000003"));
    
        РезультатЗапроса = Запрос.Выполнить();
    
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
       
        Движения.Хозрасчетный.Записывать = Истина;
       
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
           
            Проводка = Движения.Хозрасчетный.Добавить();
            Проводка.СчетДт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство;
            Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ОсновноеПроизводство;
            Проводка.Период = Дата;
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "НоменклатурныеГруппы", Экспедиция);
            БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "НоменклатурныеГруппы", ВыборкаДетальныеЗаписи.Субконто1);
            Проводка.ПодразделениеДт = Справочники.ПодразделенияОрганизаций.НайтиПоКоду("АнМ000001");
            Проводка.ПодразделениеКт = ВыборкаДетальныеЗаписи.Подразделение;
            Если Прав(ВыборкаДетальныеЗаписи.Подразделение, 7) = "Наварин" Тогда
                БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "СтатьиЗатрат", Справочники.СтатьиЗатрат.НайтиПоКоду("00-000005"));
                БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "СтатьиЗатрат", ВыборкаДетальныеЗаписи.СтатьяЗатрат);
            ИначеЕсли Прав(ВыборкаДетальныеЗаписи.Подразделение, 5) = "Лонга" Тогда
                БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, "СтатьиЗатрат", Справочники.СтатьиЗатрат.НайтиПоКоду("00-000006"));
                БухгалтерскийУчет.УстановитьСубконто(Проводка.СчетКт, Проводка.СубконтоКт, "СтатьиЗатрат", ВыборкаДетальныеЗаписи.СтатьяЗатрат);
            КонецЕсли;
            Проводка.Сумма = ВыборкаДетальныеЗаписи.СуммаОстаток;
               
        КонецЦикла;
       
    КонецПроцедуры
    
    В результате проведения всё получается так, как и надо, за исключением того, что в сформированных проводках не подхватывается Статья затрат по кредиту.
    Вот скриншот ОСВ по счету после проведения документа:
    2014-09-24_after.png

    Где я ошибся?
    Спасибо!
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    Статьи затрат в выборке из результата запроса присутствуют?
    nickvv нравится это.
  3. TopicStarter Overlay
    nickvv
    Offline

    nickvv Опытный в 1С

    Регистрация:
    10 май 2011
    Сообщения:
    280
    Симпатии:
    0
    Баллы:
    26
    Субконто2 на счете 20 и есть СтатьиЗатрат.

    Проверил отладчиком - почему-то выдает Null.
    Почему же?
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    потому что, что по данному субконто ведется учет оборотов. остатки в разрезе статей затрат необходимо формировать самостоятельно, либо выключить учет оборотов по субконто "стати затрат" в настройках счета.

    Выключение учета только оборотов ВОЗМОЖНО регулируюется настройками учета - это нужно проверить, либо может кто подскажет из более осведомленных в этом вопросе.
    nickvv нравится это.
  5. TopicStarter Overlay
    nickvv
    Offline

    nickvv Опытный в 1С

    Регистрация:
    10 май 2011
    Сообщения:
    280
    Симпатии:
    0
    Баллы:
    26
    А как лучше мне поступить в моей ситуации? Посоветуете?
    Спасибо
  6. TopicStarter Overlay
    nickvv
    Offline

    nickvv Опытный в 1С

    Регистрация:
    10 май 2011
    Сообщения:
    280
    Симпатии:
    0
    Баллы:
    26
    По согласованию с главбухом снял признак "Только обороты" - всё получилось.
    Спасибо. Вопрос решён
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    o_O
    Эм. Не слишком ли радикальное решение?

    Ребят я с регистрами бухгалтерии конечно не очень, но почему было из оборотов не взять?
    Что-то вроде:
    Код:
    "ВЫБРАТЬ
    	ХозрасчетныйОбороты.Счет,
    	ХозрасчетныйОбороты.Субконто1,
    	ХозрасчетныйОбороты.Субконто2 КАК СтатьяЗатрат,
    	ХозрасчетныйОбороты.СуммаОборотДт - ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаОстаток
    ИЗ
    	РегистрБухгалтерии.Хозрасчетный.Обороты(, , , Счет = &Счет2001, &Субконто, , , ) КАК ХозрасчетныйОбороты
    ГДЕ
    	ХозрасчетныйОбороты.СуммаОборотДт > 0"
    
    Где &субконто соотвественно список значений, насколько я я вижу из двух элементов: ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеГруппы и ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.СтатьиЗатрат.


    ?
    nickvv нравится это.
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    А, и да. Там точно статья затрат по кредиту нужна то?
    Типовые документы ведь точно также не закрывают 20й счет в разрезе статей затрат.
    nickvv нравится это.
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    я так понимаю, что нужна, они типа собирают все затраты с разных СЗ и валят на какую-то одну.

    пока писал ответ, возник вопрос: а собственно нах....для чего все эти действия?
    разве нельзя сразу указывать нужную статью затрат в первичке?
    nickvv нравится это.
  10. TopicStarter Overlay
    nickvv
    Offline

    nickvv Опытный в 1С

    Регистрация:
    10 май 2011
    Сообщения:
    280
    Симпатии:
    0
    Баллы:
    26
    А главбух очень даже обрадовалась, когда увидела остатки по каждой статье затрат в ОСВ по счету :)
    А такую "хитрую" схему, когда в первичке СЗ указываются одни, а перед закрытием перекидываются на другую, она сама же и придумала.
    Пытаться переубедить - себе дороже (сразу вспоминается Винни-Пух: "Разве знаешь, что придет в голову этим пчелам!")
  11. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    ну за то время, что я общался с бухгалтерами, для себя понял одно: у каждого бухгалтера свое представление о ведении бухгалтерского учета, которое очень часто не совпадает с принятыми стандартами и нормами :)
    nickvv нравится это.

Поделиться этой страницей