V82.ОбщиеМодули.УправлениеЗапасамиРасширеннаяАналитика.РаспределитьТЗРСоСчета16 C# (CSharp) Method

РаспределитьТЗРСоСчета16() public method

public РаспределитьТЗРСоСчета16 ( ) : void
return void
        public void РаспределитьТЗРСоСчета16(/*СтруктураШапкиДокумента*/)
        {
            //СтруктураНаборыЗаписей = РасширеннаяАналитикаУчета.ПолучитьНаборыЗаписейРегистров(СтруктураШапкиДокумента);
            //НаборЗаписей = СтруктураНаборыЗаписей.УчетЗатрат;
            //СтруктураКлючиАналитики = Новый Структура();
            /*//Закрытие счета 15 на счет 16
            */
            /*Запрос = Новый Запрос(
            "ВЫБРАТЬ
            |	УчетЗатратРеглОстатки.АналитикаВидаУчета,
            |	УчетЗатратРеглОстатки.АналитикаУчетаЗатрат,
            |	УчетЗатратРеглОстатки.АналитикаУчетаПартий,
            |	УчетЗатратРеглОстатки.АналитикаРаспределенияЗатрат,
            |ВЫБОР КОГДА
            |		КлючАналитикаВидаУчета.СчетУчета = ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ЗаготовлениеИПриобретениеМатериалов) ТОГДА
            |		ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМатериалов)
            |ИНАЧЕ
            |		ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиТоваров)
            |КОНЕЦ КАК СчетУчетаОтклонений,
            |	УчетЗатратРеглОстатки.КоличествоОстаток,
            |	УчетЗатратРеглОстатки.СтоимостьОстаток
            |ИЗ
            |	РегистрНакопления.УчетЗатратРегл.Остатки(
            |			&ДатаДокумента,
            |			АналитикаВидаУчета В
            |				(ВЫБРАТЬ
            |					КлючАналитикаВидаУчета.Ссылка
            |				ИЗ
            |					РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
            |				ГДЕ
            |					КлючАналитикаВидаУчета.Организация = &Организация
            |					И КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ЗаготовлениеИПриобретениеМЦ)))) КАК УчетЗатратРеглОстатки
            |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
            |	РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
            |ПО УчетЗатратРеглОстатки.АналитикаВидаУчета = КлючАналитикаВидаУчета.Ссылка");*/
            //Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
            //Запрос.УстановитьПараметр("ДатаДокумента",СтруктураШапкиДокумента.мКонГраница);
            //Выборка = Запрос.Выполнить().Выбрать();
            //СоответствиеОстаткиНаСчете16 = Новый Соответствие();
            while(true/*Выборка.Следующий()*/)
            {
                /*КорАналитикаВидаУчета = РасширеннаяАналитикаУчета.ПолучитьЗначениеКлючаАналитики(
                            СтруктураШапкиДокумента,
                            Новый Структура("РазделУчета, СчетУчета, Организация",Перечисления.РазделыУчета.Затраты, Выборка.СчетУчетаОтклонений, СтруктураШапкиДокумента.Организация),
                            Перечисления.КлючиАналитики.АналитикаВидаУчета,
                            Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете,
                            СтруктураКлючиАналитики
                        );*/
                /*// АналитикаВидаУчета
            */
                /*// АналитикаУчетаЗатрат
            */
                /*// АналитикаУчетаПартий
            */
                /*// АналитикаУчетаВыпуска
            */
                /*// КорАналитикаВидаУчета
            */
                /*// КорАналитикаУчетаЗатрат
            */
                /*// КорАналитикаУчетаПартий
            */
                /*// КорАналитикаУчетаВыпуска
            */
                /*ВидДвиженияНакопления.Расход,
            Неопределено,
            Выборка.КоличествоОстаток,
            Выборка.СтоимостьОстаток,
            0,
            0,
            0,
            НаборЗаписей
            );*/
                /*// КорАналитикаВидаУчета
            */
                /*// КорАналитикаУчетаЗатрат
            */
                /*// КорАналитикаУчетаПартий
            */
                /*// КорАналитикаУчетаВыпуска
            */
                /*// АналитикаВидаУчета
            */
                /*// АналитикаУчетаЗатрат
            */
                /*// АналитикаУчетаПартий
            */
                /*// АналитикаУчетаВыпуска
            */
                /*ВидДвиженияНакопления.Приход,
            Неопределено,
            0,
            Выборка.СтоимостьОстаток,
            0,
            0,
            0,
            НаборЗаписей
            );*/
                //ОстатокНаСубсчете16 = СоответствиеОстаткиНаСчете16[Выборка.СчетУчетаОтклонений];
                //СоответствиеОстаткиНаСчете16.Вставить(Выборка.СчетУчетаОтклонений, ?(ОстатокНаСубсчете16 = Неопределено, 0, ОстатокНаСубсчете16) + Выборка.СтоимостьОстаток);
            }
            /*//Остатки по счету 16 с прошлого периода
            */
            /*Запрос = Новый Запрос(
            "ВЫБРАТЬ
            |	КлючАналитикаВидаУчета.СчетУчета КАК СчетУчетаОтклонений,
            |	СУММА(УчетЗатратРеглОстатки.СтоимостьОстаток) КАК СтоимостьОстаток
            |ИЗ
            |	РегистрНакопления.УчетЗатратРегл.Остатки(
            |			&ДатаДокумента,
            |			АналитикаВидаУчета В
            |				(ВЫБРАТЬ
            |					КлючАналитикаВидаУчета.Ссылка
            |				ИЗ
            |					РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
            |				ГДЕ
            |					КлючАналитикаВидаУчета.Организация = &Организация
            |					И КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМЦ)))) КАК УчетЗатратРеглОстатки
            |ВНУТРЕННЕЕ СОЕДИНЕНИЕ
            |	РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
            |ПО УчетЗатратРеглОстатки.АналитикаВидаУчета = КлючАналитикаВидаУчета.Ссылка
            |СГРУППИРОВАТЬ ПО
            |	КлючАналитикаВидаУчета.СчетУчета");*/
            //Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
            //Запрос.УстановитьПараметр("ДатаДокумента",СтруктураШапкиДокумента.мКонГраница);
            //Выборка = Запрос.Выполнить().Выбрать();
            while(true/*Выборка.Следующий()*/)
            {
                //ОстатокНаСубсчете16 = СоответствиеОстаткиНаСчете16[Выборка.СчетУчетаОтклонений];
                //СоответствиеОстаткиНаСчете16.Вставить(Выборка.СчетУчетаОтклонений, ?(ОстатокНаСубсчете16 = Неопределено, 0, ОстатокНаСубсчете16) + Выборка.СтоимостьОстаток);
            }
            /*//Распределение счета 16
            */
            /*//Определим остаток по разделу учета МПЗ на конец периода
            */
            /*Запрос = Новый Запрос(
            "ВЫБРАТЬ
            |	СУММА(ВложенныйЗапрос.СтоимостьОстаток) КАК СтоимостьОстаток,
            |	ВложенныйЗапрос.СчетУчетаОтклонений
            |ИЗ
            |	(ВЫБРАТЬ
            |		УчетЗатратРегл.СтоимостьОстаток КАК СтоимостьОстаток,
            |		КлючАналитикаВидаУчета.РазделУчета КАК РазделУчета,
            |		ВЫБОР
            |			КОГДА КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
            |				ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыОтгруженные))
            |				ТОГДА ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиТоваров)
            |			ИНАЧЕ ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМатериалов)
            |		КОНЕЦ КАК СчетУчетаОтклонений
            |	ИЗ
            |		РегистрНакопления.УчетЗатратРегл.Остатки(&ДатаДокумента, ) КАК УчетЗатратРегл
            |			ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
            |			ПО УчетЗатратРегл.АналитикаВидаУчета = КлючАналитикаВидаУчета.Ссылка
            |	ГДЕ
            |		КлючАналитикаВидаУчета.Организация = &Организация
            |		И (КлючАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ)
            |			ИЛИ КлючАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.ТоварыОтгруженные))
            |		И (КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
            |			ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы))
            |			ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыОтгруженные)))
            |		И (НЕ КлючАналитикаВидаУчета.СчетУчета.Забалансовый)) КАК ВложенныйЗапрос
            |
            |СГРУППИРОВАТЬ ПО
            |	ВложенныйЗапрос.СчетУчетаОтклонений");*/
            //Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
            //Запрос.УстановитьПараметр("ДатаДокумента",СтруктураШапкиДокумента.мКонГраница);
            //Выборка = Запрос.Выполнить().Выбрать();
            //СоответствиеОстаткиПоРазделуУчетаМПЗ 			= Новый Соответствие();
            while(true/*Выборка.Следующий()*/)
            {
                //СоответствиеОстаткиПоРазделуУчетаМПЗ.Вставить(Выборка.СчетУчетаОтклонений, Выборка.СтоимостьОстаток);
            }
            /*// Определим направления списания МПЗ
            */
            /*// Первый запрос пакета выбирает данные о списании МПЗ,
            */
            /*// второй - собирает итоги по счетам учета отклонений
            */
            /*Запрос = Новый Запрос(
            "ВЫБРАТЬ
            |	УчетЗатратРегл.КодОперации,
            |	УчетЗатратРегл.КорАналитикаВидаУчета,
            |	УчетЗатратРегл.КорАналитикаУчетаЗатрат,
            |	УчетЗатратРегл.КорАналитикаУчетаПартий,
            |	УчетЗатратРегл.КорАналитикаРаспределенияЗатрат,
            |	КлючАналитикаВидаУчета.СчетУчета,
            |	СУММА(УчетЗатратРегл.Стоимость) КАК Стоимость
            |ПОМЕСТИТЬ НаправленияСписания
            |ИЗ
            |	РегистрНакопления.УчетЗатратРегл КАК УчетЗатратРегл
            |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаВидаУчета КАК КлючАналитикаВидаУчета
            |		ПО УчетЗатратРегл.АналитикаВидаУчета = КлючАналитикаВидаУчета.Ссылка
            |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПартий КАК КлючАналитикаУчетаПартий
            |		ПО УчетЗатратРегл.АналитикаУчетаПартий = КлючАналитикаУчетаПартий.Ссылка
            |ГДЕ
            |	КлючАналитикаВидаУчета.Организация = &Организация
            |	И (КлючАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ)
            |			ИЛИ КлючАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.ТоварыОтгруженные))
            |	И (КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
            |			ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Материалы))
            |			ИЛИ КлючАналитикаВидаУчета.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыОтгруженные)))
            |	И УчетЗатратРегл.Период МЕЖДУ &НачалоМесяца И &КонецМесяца
            |	И УчетЗатратРегл.Активность
            |	И УчетЗатратРегл.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
            |	И (УчетЗатратРегл.КорАналитикаВидаУчета ССЫЛКА Справочник.КлючиАналитикиУчетаПрочихЗатрат
            |			ИЛИ УчетЗатратРегл.КорАналитикаВидаУчета В
            |				(ВЫБРАТЬ
            |					КлючКорАналитикаВидаУчета.Ссылка
            |				ИЗ
            |					РегистрСведений.АналитикаВидаУчета КАК КлючКорАналитикаВидаУчета
            |				ГДЕ
            |					(НЕ КлючКорАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.МПЗ))
            |					И (НЕ КлючКорАналитикаВидаУчета.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчета.ТоварыОтгруженные))))
            |	И (НЕ КлючАналитикаВидаУчета.СчетУчета.Забалансовый)
            |	И УчетЗатратРегл.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийПартииТоваров.ПередачаТарыКонтрагенту)
            |	И УчетЗатратРегл.КодОперации <> ЗНАЧЕНИЕ(Перечисление.КодыОперацийПартииТоваров.ВозвратПоставщику)
            |
            |СГРУППИРОВАТЬ ПО
            |	УчетЗатратРегл.КодОперации,
            |	УчетЗатратРегл.КорАналитикаВидаУчета,
            |	УчетЗатратРегл.КорАналитикаУчетаЗатрат,
            |	УчетЗатратРегл.КорАналитикаУчетаПартий,
            |	УчетЗатратРегл.КорАналитикаРаспределенияЗатрат,
            |	КлючАналитикаВидаУчета.СчетУчета;
            |////////////////////////////////////////////////////////////////////////////////////////
            |ВЫБРАТЬ
            |	НаправленияСписания.КодОперации,
            |	НаправленияСписания.КорАналитикаВидаУчета,
            |	НаправленияСписания.КорАналитикаУчетаЗатрат,
            |	НаправленияСписания.КорАналитикаУчетаПартий,
            |	НаправленияСписания.КорАналитикаРаспределенияЗатрат,
            |	ВЫБОР
            |		КОГДА НаправленияСписания.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары))
            |				ИЛИ НаправленияСписания.СчетУчета В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыОтгруженные))
            |			ТОГДА ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиТоваров)
            |		ИНАЧЕ ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ОтклонениеВСтоимостиМатериалов)
            |	КОНЕЦ КАК СчетУчетаОтклонений,
            |	НаправленияСписания.Стоимость
            |ИЗ
            |	НаправленияСписания КАК НаправленияСписания
            |ИТОГИ СУММА(НаправленияСписания.Стоимость)
            |	ПО СчетУчетаОтклонений;
            |//////////////////////////////////////////////////////////////////////////////////////////
            |УНИЧТОЖИТЬ НаправленияСписания");*/
            //Запрос.УстановитьПараметр("Организация",СтруктураШапкиДокумента.Организация);
            //Запрос.УстановитьПараметр("НачалоМесяца",СтруктураШапкиДокумента.мНачДата);
            //Запрос.УстановитьПараметр("КонецМесяца",СтруктураШапкиДокумента.мКонДата);
            //ОбщийИтог = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
            while(true/*ОбщийИтог.Следующий()*/)
            {
                //СчетУчетаОтклонений = ОбщийИтог.СчетУчетаОтклонений;
                //ОстатокПоРазделуУчетаМПЗ = СоответствиеОстаткиПоРазделуУчетаМПЗ[СчетУчетаОтклонений];
                //ОстатокНаСчете16 = СоответствиеОстаткиНаСчете16[СчетУчетаОтклонений];
                if(true/*ОстатокПоРазделуУчетаМПЗ = Неопределено*/)
                {
                    //ОстатокПоРазделуУчетаМПЗ = 0;
                }
                if(true/*ОстатокНаСчете16 = Неопределено*/)
                {
                    //ОстатокНаСчете16 = 0;
                }
                //СуммаСписанияМПЗ = ОбщийИтог.Стоимость;
                if(true/*ОстатокПоРазделуУчетаМПЗ = 0*/)
                {
                    if(true/*СуммаСписанияМПЗ = 0*/)
                    {
                        //СуммаСписанияТЗР = 0;
                    }
                }
                /*//Спишем оставшуюся на счете 16 сумму по направлениям
            */
                if(true/*СуммаСписанияМПЗ > 0 И СуммаСписанияТЗР <> 0*/)
                {
                    //Выборка = ОбщийИтог.Выбрать();
                    while(true/*Выборка.Следующий()*/)
                    {
                        if(true/*СуммаСписанияМПЗ = 0*/)
                        {
                            //ОбщегоНазначения.Сообщение("Распределение счета 16 выполнено не полностью. Проверьте базу распределения.",СтатусСообщения.Внимание);
                        }
                        //СуммаСписанияТЗРПоНаправлению = Окр(Выборка.Стоимость * СуммаСписанияТЗР/СуммаСписанияМПЗ,2);
                        /*АналитикаВидаУчета = РасширеннаяАналитикаУчета.ПолучитьЗначениеКлючаАналитики(
                                    СтруктураШапкиДокумента,
                                    Новый Структура("РазделУчета, СчетУчета, Организация",Перечисления.РазделыУчета.Затраты, СчетУчетаОтклонений, СтруктураШапкиДокумента.Организация),
                                    Перечисления.КлючиАналитики.АналитикаВидаУчета,
                                    Перечисления.ВидыОтраженияВУчете.ОтражатьВРегламентированномУчете,
                                    СтруктураКлючиАналитики
                                );*/
                        /*// КорАналитикаВидаУчета
            */
                        /*// КорАналитикаУчетаЗатрат
            */
                        /*// КорАналитикаУчетаПартий
            */
                        /*// КорАналитикаУчетаВыпуска
            */
                        /*// АналитикаВидаУчета
            */
                        /*// АналитикаУчетаЗатрат
            */
                        /*// АналитикаУчетаПартий
            */
                        /*// АналитикаУчетаВыпуска
            */
                        /*ВидДвиженияНакопления.Расход,
                    Выборка.КодОперации,
                    0,
                    СуммаСписанияТЗРПоНаправлению,
                    0,
                    0,
                    0,
                    НаборЗаписей
                );*/
                        /*// АналитикаВидаУчета
            */
                        /*// АналитикаУчетаЗатрат
            */
                        /*// АналитикаУчетаПартий
            */
                        /*// АналитикаУчетаВыпуска
            */
                        /*// КорАналитикаВидаУчета
            */
                        /*// КорАналитикаУчетаЗатрат
            */
                        /*// КорАналитикаУчетаПартий
            */
                        /*// КорАналитикаУчетаВыпуска
            */
                        /*ВидДвиженияНакопления.Приход,
                    Выборка.КодОперации,
                    0,
                    СуммаСписанияТЗРПоНаправлению,
                    0,
                    0,
                    0,
                    НаборЗаписей
                );*/
                        //СуммаСписанияМПЗ = СуммаСписанияМПЗ - Выборка.Стоимость;
                        //СуммаСписанияТЗР = СуммаСписанияТЗР - СуммаСписанияТЗРПоНаправлению;
                    }
                    //;;
                }
            }
            if(true/*СтруктураНаборыЗаписей.УчетЗатрат.Модифицированность()*/)
            {
                //СтруктураНаборыЗаписей.УчетЗатрат.Записать(Ложь);
            }
        }
УправлениеЗапасамиРасширеннаяАналитика