Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 21:05

Помогите разобраться!

Автор andryscha92, 28 ноя 2013, 12:17

0 Пользователей и 1 гость просматривают эту тему.

andryscha92


Всем здравствуйте!Подскажите почему обработка не работает с забалансовыми счетами которые создали вручную 010.01, 010.02, 010.03. С остальными счетами всё работает. Что нужно ещё добавить что бы заработало для этих счетов???



Процедура Сформировать()


Номер=0;


Таб = СоздатьОбъект("Таблица"); //основная

Итог = СоздатьОбъект("ТаблицаЗначений");
Итог.НоваяКолонка("Счет");
Итог.НоваяКолонка("Склад");
Итог.НоваяКолонка("Материал");
Итог.НоваяКолонка("Количество");
Итог.НоваяКолонка("Цена");
Итог.НоваяКолонка("Сумма");


БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);

Если ПустоеЗначение(Исклад)=1 Тогда
ПоСкладам=0;
Иначе
    ПоСкладам=1;
КонецЕсли;


   

Если Счета.ТекущаяСтрока() = 1 Тогда

БИ.ВключатьСубсчета(-1,-1);
БИ.ВыполнитьЗапрос(Дата1,Дата2, "МЦ2.ЭК,МЦ2.БУ, МЦ.04,МЦ.02, МЦ.03,013.4, 010.01, 010.02, 010.03",,,,, 5);


Иначе         

БИ.ВключатьСубсчета(-1,-1);
СЧ="";
Счета.ПолучитьЗначение(Счета.ТекущаяСтрока(),СЧ);
БИ.ВыполнитьЗапрос(Дата1,Дата2,СЧ,,,,,5);



КонецЕсли;


//Заг="На "+Дата1;
Если Счета.ТекущаяСтрока() = 1 Тогда
Заг=Заг+", по всем субсчетам, ";
Иначе
Заг=Заг+", по субсчету: "+СЧ+", ";
КонецЕсли;
           
Если ПоСкладам=0 Тогда
Заг=Заг+"по всем складам(МОЛ).";
Иначе
Заг=Заг+ИСклад+".";
КонецЕсли;

Таб.ВывестиСекцию("Шапка");

БИ.ВыбратьСчета();



Пока БИ.ПолучитьСчет(0)=1 Цикл

Счет=БИ.Счет;   




// Сумма = БИ.СКД("С");


БИ.ВыбратьСубконто(1);
 
Пока БИ.ПолучитьСубконто(1)=1 Цикл

   
ОбщСумма = БИ.СКД("С");
    ОбщКол=БИ.СКД("К");
    Цена = 0;
    Если ОбщКол<>0 Тогда Цена=Окр(ОбщСумма/ОбщКол,3,1); КонецЕсли;

     

БИ.ВыбратьСубконто(2);
Пока БИ.ПолучитьСубконто(2)=1 Цикл

Склад=БИ.Субконто(2);
   
Если ПоСкладам=1 Тогда
Если Склад<>ИСклад тогда
Продолжить;
КонецЕсли;     
КонецЕсли;


Количество=БИ.СКД("К");
Сумма=Цена*Количество;
Номер=Номер+1;

Итог.НоваяСтрока(Номер);

Итог.Счет=Строка(БИ.Счет);
Итог.Склад=БИ.Субконто(2);
Итог.Материал=БИ.Субконто(1);
Итог.Количество=Количество;
Итог.Цена=Цена;
Итог.Сумма=Сумма;


    КонецЦикла;


КонецЦикла;


КонецЦикла;






Итог.Сортировать("1+,2+,3+",); //Сортировка
Итог.ВыбратьСтроки();

Склад="";
Счет="";

СуммаПоВсемСчетам=0;
СуммаПоСчету=0;

КолПоВсемСчетам=0;
КолПоСчету=0;

Ном=0;

Пока Итог.ПолучитьСтроку()=1 Цикл
Если Счет<>Итог.Счет Тогда
Если СуммаПоСчету<>0 тогда
Таб.ВывестиСекцию("Итог");
СуммаПоВсемСчетам=СуммаПоВсемСчетам+СуммаПоСчету;
КолПоВсемСчетам=КолПоВсемСчетам+КолПоСчету;
    СуммаПоСчету=0;
КолПоСчету=0;
КонецЕсли;
Счет=Итог.Счет;
Таб.ВывестиСекцию("Счет");
Склад="";

КонецЕсли;

Если Склад<>Итог.Склад Тогда
    Склад=Итог.Склад;
Таб.ВывестиСекцию("Склад");
КонецЕсли;
    Ном=Ном+1;

Материал=Итог.Материал;
Количество=Итог.Количество;
Цена=Итог.Цена;
Сумма=Итог.Сумма;
Если Количество = 0 Тогда
    Продолжить;
КонецЕсли;
Таб.ВывестиСекцию("Материал");
СуммаПоСчету=СуммаПоСчету+Итог.Сумма;
КолПоСчету=КолПоСчету+Итог.Количество;

КонецЦикла;                             


    СуммаПоВсемСчетам=СуммаПоВсемСчетам+СуммаПоСчету;
КолПоВсемСчетам=КолПоВсемСчетам+КолПоСчету;

Таб.ВывестиСекцию("Итог");
Таб.ВывестиСекцию("ИтогВсего");

Таб.ВывестиСекцию("Подпись");



Таб.ТолькоПросмотр(1);
Таб.Опции(0,0,0,0);
Таб.ПараметрыСтраницы(1,,,10,10,10,10,10,,,,);
Таб.ПовторятьПриПечатиСтроки(3,4);
Таб.Показать("Сформировать","");             





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


//-----------------------------------------------
Процедура ВводНового()
//Дата1 = КонецПериодаБИ();   

Счета.ДобавитьЗначение(1, "По всем");
Счета.ДобавитьЗначение(2, "МЦ.02");
Счета.ДобавитьЗначение(3, "МЦ.03");
Счета.ДобавитьЗначение(4, "МЦ.04");
Счета.ДобавитьЗначение(5, "МЦ2.БУ");
Счета.ДобавитьЗначение(6, "МЦ2.ЭК");
Счета.ДобавитьЗначение(7, "013.4");
Счета.ДобавитьЗначение(8, "010.01");
Счета.ДобавитьЗначение(9, "010.02");
Счета.ДобавитьЗначение(10, "010.03");
     
      КонецПроцедуры

andryscha92

Цитата: andryscha92 от 28 ноя 2013, 12:17

Всем здравствуйте!Подскажите почему обработка не работает с забалансовыми счетами которые создали вручную 010.01, 010.02, 010.03. С остальными счетами всё работает. Что нужно ещё добавить что бы заработало для этих счетов???



Процедура Сформировать()


Номер=0;


Таб = СоздатьОбъект("Таблица"); //основная

Итог = СоздатьОбъект("ТаблицаЗначений");
Итог.НоваяКолонка("Счет");
Итог.НоваяКолонка("Склад");
Итог.НоваяКолонка("Материал");
Итог.НоваяКолонка("Количество");
Итог.НоваяКолонка("Цена");
Итог.НоваяКолонка("Сумма");


БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);

Если ПустоеЗначение(Исклад)=1 Тогда
ПоСкладам=0;
Иначе
    ПоСкладам=1;
КонецЕсли;


   

Если Счета.ТекущаяСтрока() = 1 Тогда

БИ.ВключатьСубсчета(-1,-1);
БИ.ВыполнитьЗапрос(Дата1,Дата2, "МЦ2.ЭК,МЦ2.БУ, МЦ.04,МЦ.02, МЦ.03,013.4, 010.01, 010.02, 010.03",,,,, 5);


Иначе         

БИ.ВключатьСубсчета(-1,-1);
СЧ="";
Счета.ПолучитьЗначение(Счета.ТекущаяСтрока(),СЧ);
БИ.ВыполнитьЗапрос(Дата1,Дата2,СЧ,,,,,5);



КонецЕсли;


//Заг="На "+Дата1;
Если Счета.ТекущаяСтрока() = 1 Тогда
Заг=Заг+", по всем субсчетам, ";
Иначе
Заг=Заг+", по субсчету: "+СЧ+", ";
КонецЕсли;
           
Если ПоСкладам=0 Тогда
Заг=Заг+"по всем складам(МОЛ).";
Иначе
Заг=Заг+ИСклад+".";
КонецЕсли;

Таб.ВывестиСекцию("Шапка");

БИ.ВыбратьСчета();



Пока БИ.ПолучитьСчет(0)=1 Цикл

Счет=БИ.Счет;   




// Сумма = БИ.СКД("С");


БИ.ВыбратьСубконто(1);
 
Пока БИ.ПолучитьСубконто(1)=1 Цикл

   
ОбщСумма = БИ.СКД("С");
    ОбщКол=БИ.СКД("К");
    Цена = 0;
    Если ОбщКол<>0 Тогда Цена=Окр(ОбщСумма/ОбщКол,3,1); КонецЕсли;

     

БИ.ВыбратьСубконто(2);
Пока БИ.ПолучитьСубконто(2)=1 Цикл

Склад=БИ.Субконто(2);
   
Если ПоСкладам=1 Тогда
Если Склад<>ИСклад тогда
Продолжить;
КонецЕсли;     
КонецЕсли;


Количество=БИ.СКД("К");
Сумма=Цена*Количество;
Номер=Номер+1;

Итог.НоваяСтрока(Номер);

Итог.Счет=Строка(БИ.Счет);
Итог.Склад=БИ.Субконто(2);
Итог.Материал=БИ.Субконто(1);
Итог.Количество=Количество;
Итог.Цена=Цена;
Итог.Сумма=Сумма;


    КонецЦикла;


КонецЦикла;


КонецЦикла;






Итог.Сортировать("1+,2+,3+",); //Сортировка
Итог.ВыбратьСтроки();

Склад="";
Счет="";

СуммаПоВсемСчетам=0;
СуммаПоСчету=0;

КолПоВсемСчетам=0;
КолПоСчету=0;

Ном=0;

Пока Итог.ПолучитьСтроку()=1 Цикл
Если Счет<>Итог.Счет Тогда
Если СуммаПоСчету<>0 тогда
Таб.ВывестиСекцию("Итог");
СуммаПоВсемСчетам=СуммаПоВсемСчетам+СуммаПоСчету;
КолПоВсемСчетам=КолПоВсемСчетам+КолПоСчету;
    СуммаПоСчету=0;
КолПоСчету=0;
КонецЕсли;
Счет=Итог.Счет;
Таб.ВывестиСекцию("Счет");
Склад="";

КонецЕсли;

Если Склад<>Итог.Склад Тогда
    Склад=Итог.Склад;
Таб.ВывестиСекцию("Склад");
КонецЕсли;
    Ном=Ном+1;

Материал=Итог.Материал;
Количество=Итог.Количество;
Цена=Итог.Цена;
Сумма=Итог.Сумма;
Если Количество = 0 Тогда
    Продолжить;
КонецЕсли;
Таб.ВывестиСекцию("Материал");
СуммаПоСчету=СуммаПоСчету+Итог.Сумма;
КолПоСчету=КолПоСчету+Итог.Количество;

КонецЦикла;                             


    СуммаПоВсемСчетам=СуммаПоВсемСчетам+СуммаПоСчету;
КолПоВсемСчетам=КолПоВсемСчетам+КолПоСчету;

Таб.ВывестиСекцию("Итог");
Таб.ВывестиСекцию("ИтогВсего");

Таб.ВывестиСекцию("Подпись");



Таб.ТолькоПросмотр(1);
Таб.Опции(0,0,0,0);
Таб.ПараметрыСтраницы(1,,,10,10,10,10,10,,,,);
Таб.ПовторятьПриПечатиСтроки(3,4);
Таб.Показать("Сформировать","");             





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


//-----------------------------------------------
Процедура ВводНового()
//Дата1 = КонецПериодаБИ();   

Счета.ДобавитьЗначение(1, "По всем");
Счета.ДобавитьЗначение(2, "МЦ.02");
Счета.ДобавитьЗначение(3, "МЦ.03");
Счета.ДобавитьЗначение(4, "МЦ.04");
Счета.ДобавитьЗначение(5, "МЦ2.БУ");
Счета.ДобавитьЗначение(6, "МЦ2.ЭК");
Счета.ДобавитьЗначение(7, "013.4");
Счета.ДобавитьЗначение(8, "010.01");
Счета.ДобавитьЗначение(9, "010.02");
Счета.ДобавитьЗначение(10, "010.03");
     
      КонецПроцедуры

похоже разобрался, проблема в видах субконто а именно БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения);
на счетах которые я хочу добавить в обработку они другие!
Добавлено: 28 ноя 2013, 12:59


тема закрыта!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск