vdv2008
Гость
|
|
« : 31-03-2010 13:23 » |
|
Посмотрите и подскажите,почему не выводит сумму и цену в табл часть,если мы перебираем 1 из складов? Что возможно сделать в этой ситуации?Заранее спасибо!
//******************************************* Процедура Сформировать()
Перем Заг, СписокСчетов, Ит; Перем НачДолг,КонДолг,СуммаНеликвидов; перем ЦенаНеликвида, СуммаНеликвида; //Создание объекта типа Запрос Заг="На дату: "+Строка(ДатаКонца)+". За "+Строка(КолДней)+" дней";// Заголовок дата на 270 дней
Таб = СоздатьОбъект("Таблица");//Создание объекта Таблица Таб.ИсходнаяТаблица("Неликвиды");//Исход Таб Неликвиды Ит = СоздатьОбъект("БухгалтерскиеИтоги");// Объект БИ СписокСчетов=СоздатьОбъект("СписокЗначений");// Объект СписокЗначений СуммаНеликвидов=0;
Если ВыбВидОтчета=1 Тогда //выбор вида отчета(список счетов)
Заг="По товарам. Счета:"; СписокСчетов.ДобавитьЗначение(СчетПоКоду("41.1")); // добавляем счет 41.1 СписокСчетов.ДобавитьЗначение(СчетПоКоду("41.7")); СписокСчетов.ДобавитьЗначение(СчетПоКоду("41.8")); Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура, ВыбТовар, 1); //выбираем товар из ВидСубконто Номенклатура
Если ПустоеЗначение(ВыбСклад)=0 Тогда /// если склад не выбран Заг=Заг+". По складу "+ВыбСклад.Наименование+"."; Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения , ВыбСклад, 2);// выбор склада КонецЕсли; /// ИначеЕсли ВыбВидОтчета=2 Тогда //выбор вида отчета(список счетов)
Если ВыбСч10_1=1 Тогда //выбран счет 10.1 СписокСчетов.ДобавитьЗначение(СчетПоКоду("10.1"));//добаляем знчение счета 10.1 КонецЕсли; Если ВыбСч10_5=1 Тогда //выбран счет 10.5 СписокСчетов.ДобавитьЗначение(СчетПоКоду("10.5")); //добаляем знчение счета 10.5 КонецЕсли;
Ит.ИспользоватьСубконто(ВидыСубконто.Материалы, ВыбТовар, 1); Если ПустоеЗначение(ВыбСклад)=0 Тогда // Заг=Заг+". По складу "+ВыбСклад.Наименование+".";// Ит.ИспользоватьСубконто(ВидыСубконто.МестаХранения , ВыбСклад, 2); // КонецЕсли; КонецЕсли; Ит.ВыполнитьЗапрос(ДатаКонца-КолДней, ДатаКонца, СписокСчетов,,, 3, 1, 5); Таб.ВывестиСекцию("Шапка"); Ит.ВыбратьСубконто(); Пока Ит.ПолучитьСубконто() = 1 Цикл Если ВыбВидОтчета=1 Тогда Товар=Ит.Субконто(ВидыСубконто.Номенклатура); ИначеЕсли ВыбВидОтчета=2 Тогда Товар=Ит.Субконто(ВидыСубконто.Материалы); КонецЕсли; Ит.ВыполнитьЗапрос();
Если (Ит.СНД("К")>0) И (Ит.СКД("К")>0) Тогда Ит.ВыбратьКорСчета(); Расход = 0; КолНеликвида = 0; ЦенаНеликвида = 0; СуммаНеликвида = 0; Пока Ит.ПолучитьКорСчет()=1 Цикл Если Ит.КорСчет=СчетПоКоду("10") Тогда Продолжить; КонецЕсли; Расход=Расход+Ит.КорКО("К"); КонецЦикла; Если Расход<Ит.СКД("К") Тогда КолНеликвида = Ит.СКД("К")-Расход; ЦенаНеликвида = Ит.СКД("K")/Ит.СКД("К"); СуммаНеликвида = ЦенаНеликвида*КолНеликвида; КонецЕсли; Если КолНеликвида<=0 Тогда Продолжить; КонецЕсли; СуммаНеликвидов=СуммаНеликвидов+СуммаНеликвида; Таб.ВывестиСекцию("Товар"); Если (ПоказатьСчет=1) И (ВыбВидОтчета=1) Тогда Док = СоздатьОбъект("Документ.Счет"); Док.ОбратныйПорядок(1); Док.ВыбратьДокументы(,ДатаКонца); ЕстьТовар = 0; Пока Док.ПолучитьДокумент()=1 Цикл Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку()=1 Цикл Если Док.Товар=Товар Тогда ЕстьТовар = 1; Прервать; КонецЕсли; КонецЦикла; Если ЕстьТовар=1 Тогда Прервать; КонецЕсли; КонецЦикла; Если ЕстьТовар=1 Тогда Таб.ВывестиСекцию("Счет"); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла;
Таб.ВывестиСекцию("Итоги"); Таб.Опции(0,0,4,,"Неликвиды","ОкноНеликвиды",0); Таб.ТолькоПросмотр(1); Таб.Показать("Анализ неликвидов товаров (материалов)",""); КонецПроцедуры //}}БУХГАЛТЕРСКИЙ ЗАПРОС
Процедура ПриОткрытии() ВыбСклад = глЗначениеПоУмолчанию("ОсновнойСклад"); ВыбСч10_1=1; ВыбСч10_5=1; ВыбВидОтчета=2; ДатаКонца = ТекущаяДата(); КолДней = 270; КонецПроцедуры
Процедура ОбработкаПодбора(ЗначПодбора) Если (ЗначПодбора.Вид()="Номенклатура") ИЛИ (ЗначПодбора.Вид()="Материалы") Тогда Если ВыбТовар.НайтиЗначение(ЗначПодбора)=0 Тогда ВыбТовар.ДобавитьЗначение(ЗначПодбора); ВыбТовар.ТекущаяСтрока(ВыбТовар.РазмерСписка()); КонецЕсли; КонецЕсли; КонецПроцедуры //************************************************** ****************************
Процедура ВыбратьТовар(Реж) Перем Фрм; Перем Тек;
Если ВыбТовар.РазмерСписка()>0 Тогда Тек=ВыбТовар.ПолучитьЗначение(ВыбТовар.ТекущаяСтро ка()); КонецЕсли; Если ВыбВидОтчета=1 Тогда ОткрытьПодбор("Справочник.Номенклатура",,Фрм,Реж,Т ек); Фрм.ВыборГруппы(1); ИначеЕсли ВыбВидОтчета=2 Тогда ОткрытьПодбор("Справочник.Материалы",,Фрм,Реж,Тек) ; Фрм.ВыборГруппы(1); КонецЕсли; КонецПроцедуры
|