[РЕШЕНО] Обработка по заполнению Док. "Корректировка записей регистра"

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

  1. TopicStarter Overlay
    fenlork
    Offline

    fenlork Опытный в 1С

    Регистрация:
    5 сен 2013
    Сообщения:
    71
    Симпатии:
    0
    Баллы:
    26
    Смысл-подчистить количественные остатки(минусовые) на определенную дату по регистру Учет затрат. Что делаю я-создаю документ корректировки-заполняю запросом строки, Записываю движения в регистре и сам документ. Что происходит я делаю отбор по аналитике вида учета-в нем массив значений, а из него выбирается всегда только одно значение в документ, хотя -по др. значениям есть тоже остатки, при использование консоли запросов-выгружает результат по всем значениям. а в документ попадает лишь одно значение. Вот мой код, что в нем не так, подскажите пожалуйста.
    Код:
    ДокКорректировка = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
        ДокКорректировка.Дата = ДАТА(2014,12,31);
        Движения = ДокКорректировка.Движения;
        НовСтрРег=ДокКорректировка.ТаблицаРегистровНакопления.Добавить();
        НовСтрРег.Имя="учетЗатрат";
        НовСтрРег.Представление="УчетЗатрат";
        УчетЗатратДв=Движения.УчетЗатрат;
       ДокКорректировка.Записать();  
         
     
        АналитикаВидаУчета=новый массив;
        АналитикаВидаУчета.Добавить(справочники.КлючиАналитикиВидаУчета.НайтиПоНаименованию("МПЗ; Ко_Глобус"));
        АналитикаВидаУчета.Добавить(справочники.КлючиАналитикиВидаУчета.НайтиПоНаименованию("МПЗ; Москва"));
        АналитикаВидаУчета.Добавить(справочники.КлючиАналитикиВидаУчета.НайтиПоНаименованию("МПЗ; Круп"));
        АналитикаВидаУчета.Добавить(справочники.КлючиАналитикиВидаУчета.НайтиПоНаименованию("МПЗ; Вяз_ТЦ"));
    
            запрос=новый запрос;
        запрос.Текст= "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                     |    РегистрАналитикаВидаУчета.Ссылка
                     |ПОМЕСТИТЬ АналитикаПоРазделамУчета
                     |ИЗ
                     |    РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
                     |ГДЕ
                     |    РегистрАналитикаВидаУчета.РазделУчета В(&РазделыУчета)
                     |;
                     |
                     |////////////////////////////////////////////////////////////////////////////////
                     |ВЫБРАТЬ РАЗРЕШЕННЫЕ
                     |    УчетЗатрат.АналитикаВидаУчета КАК АналитикаВидаУчета,
                     |    УчетЗатрат.АналитикаУчетаЗатрат КАК АналитикаУчетаЗатрат,
                     |    РегистрАналитикаВидаУчета.РазделУчета КАК РазделУчета,
                     |    РегистрАналитикаВидаУчета.Склад КАК Склад,
                     |    РегистрАналитикаУчетаЗатрат.Затрата КАК Номенклатура,
                     |    УчетЗатрат.СтоимостьКонечныйОстаток КАК Стоимость,
                     |    УчетЗатрат.КоличествоКонечныйОстаток КАК количество
                     |ИЗ
                     |    РегистрНакопления.УчетЗатрат.ОстаткиИОбороты(
                     |            ,
                     |            &кон,
                     |            ,
                     |            ,
                     |            &ВидУчета = 0
                    |И АналитикаВидаУчета В
                     |                (ВЫБРАТЬ РАЗЛИЧНЫЕ
                     |                    РегистрАналитикаВидаУчета.Ссылка
                     |                ИЗ
                     |                    АналитикаПоРазделамУчета КАК РегистрАналитикаВидаУчета)) КАК УчетЗатрат
                     |        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК РегистрАналитикаВидаУчета
                     |        ПО УчетЗатрат.АналитикаВидаУчета = РегистрАналитикаВидаУчета.Ссылка}
                     |        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаЗатрат КАК РегистрАналитикаУчетаЗатрат
                     |        ПО УчетЗатрат.АналитикаУчетаЗатрат = РегистрАналитикаУчетаЗатрат.Ссылка}
                     |        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаРаспределенияЗатрат КАК РегистрАналитикаРаспределенияЗатрат
                     |        ПО УчетЗатрат.АналитикаРаспределенияЗатрат = РегистрАналитикаРаспределенияЗатрат.Ссылка}
                     |        {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПартий КАК РегистрАналитикаУчетаПартий
                     |        ПО УчетЗатрат.АналитикаУчетаПартий = РегистрАналитикаУчетаПартий.Ссылка}
                     |ГДЕ
                     |    УчетЗатрат.АналитикаВидаУчета В(&АналитикаВидаУчета)";
                   
        Запрос.УстановитьПараметр("АналитикаВидаУчета",АналитикаВидаУчета);
        Запрос.УстановитьПараметр("Кон", ДАТА(2014,12,31));
        Запрос.УстановитьПараметр("РазделыУчета",Перечисления.РазделыУчета.МПЗ);
        Запрос.УстановитьПараметр("ВидУчета",0);
        Выборка=Запрос.Выполнить().Выбрать();
     
            Пока Выборка.Следующий() Цикл
            НоваяЗапись = УчетЗатратДв.Добавить();
            НоваяЗапись.Период= ДАТА(2014,12,31);
            НоваяЗапись.Регистратор=ДокКорректировка.Ссылка;
            НоваяЗапись.ВидДвижения=ВидДвиженияНакопления.Расход;
            НоваяЗапись.Активность=Истина;
            НоваяЗапись.АналитикаВидаУчета             = Выборка.АналитикаВидаУчета ;
            НоваяЗапись.АналитикаУчетаЗатрат       = Выборка.АналитикаУчетаЗатрат;
           НоваяЗапись.количество               = Выборка.количество;
            НоваяЗапись.Стоимость              = Выборка.Стоимость;
        КонецЦикла;
     
        УчетЗатратДв.Записать();
        ДокКорректировка.Записать();
    
        Формачка=ДокКорректировка.ПолучитьФорму("ФормаДокумента");
        Формачка.Открыть();
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    1. Запрос выдает точно больше одной записи?
    2. я не совсем понимаю вот это

    Код:
    ДокКорректировка = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
        ДокКорректировка.Дата = ДАТА(2014,12,31);
        Движения = ДокКорректировка.Движения;
        НовСтрРег=ДокКорректировка.ТаблицаРегистровНакопления.Добавить();
        НовСтрРег.Имя="учетЗатрат";
        НовСтрРег.Представление="УчетЗатрат";
        УчетЗатратДв=Движения.УчетЗатрат;
       ДокКорректировка.Записать();  
    Достаточно
    Код:
    ДокКорректировка = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент();
    ДокКорректировка.Дата = ДАТА(2014,12,31);
    ДокКорректировка.Записать();
    Затем берете получаете набор записей с отбором по данному регистратору,
    читаете их
    Добавляете
    записываете
    Смотрите что получилось
  3. TopicStarter Overlay
    fenlork
    Offline

    fenlork Опытный в 1С

    Регистрация:
    5 сен 2013
    Сообщения:
    71
    Симпатии:
    0
    Баллы:
    26
    Больше одной. Назначение "имя" и "представления"-это так я создаю табличную часть с регистром учет затрат
  4. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Можно по большому счету и не создавать.
    Работайте через НаборЗаписей.
    Получили, Прочитали, добавилв набор и его записали
  5. TopicStarter Overlay
    fenlork
    Offline

    fenlork Опытный в 1С

    Регистрация:
    5 сен 2013
    Сообщения:
    71
    Симпатии:
    0
    Баллы:
    26
    попробую..

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