7.7 Виды субконто

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем andryscha92, 30 ноя 2013.

  1. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    Есть отчет.При выборе счета он добавляет остатки по счетам.В него я добавил забалансовые счета 010.01, 010.02, 010.03.И когда выбираешь выводить "по всем" на форме, то забалансовые счета которые я добавил не попадают.так как виды субконто разные, а максимум в плане счетов три!.А можно сделать так что бы в отчёт попадала информация по всем счетам а т.е.что то придумать с видами субконто, что бы ИначеЕсли Счета.ТекущаяСтрока() = 1 Тогда условие срабатывало и обрабатовала все виды субконто и добавляла в таблицу.

    Код:
     БИ = СоздатьОбъект("БухгалтерскиеИтоги"); [/font][/size][/color]
    [color=#293851][size=3][font="Verdana"]Если (Счета.ТекущаяСтрока() = 8) ИЛИ (Счета.ТекущаяСтрока() = 10) Тогда
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
    БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения);
    ИначеЕсли Счета.ТекущаяСтрока() = 9 Тогда
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
    БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
    ИначеЕсли Счета.ТекущаяСтрока() = 1 Тогда //в этом условие когда на форме выбирается "по всем" счетам, не все счета
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);//попадают в отчет.
    БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
    // БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения); //
    // БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты);   //
    Иначе
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
    БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
    КонецЕсли;




    а вот сам код, что нибудь можно сделать?


    Код:
    Процедура Сформировать()[/size][/font][/color]
    [color=#293851][font=Verdana][size=3]Номер=0;
    
    
    Таб = СоздатьОбъект("Таблица"); //основная
    
    Итог = СоздатьОбъект("ТаблицаЗначений");
    Итог.НоваяКолонка("Счет");
    Итог.НоваяКолонка("Склад");
    Итог.НоваяКолонка("Материал");
    Итог.НоваяКолонка("Количество");
    Итог.НоваяКолонка("Цена");
    Итог.НоваяКолонка("Сумма");
    
    
    БИ = СоздатьОбъект("БухгалтерскиеИтоги"); [/size][/font][/color]
    [color=#293851][font=Verdana][size=3]Если (Счета.ТекущаяСтрока() = 8) ИЛИ (Счета.ТекущаяСтрока() = 10) Тогда
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
    БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения);
    ИначеЕсли Счета.ТекущаяСтрока() = 9 Тогда
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
    БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
    ИначеЕсли Счета.ТекущаяСтрока() = 1 Тогда
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
    БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
    // БИ.ИспользоватьСубконто(ВидыСубконто.МестаХранения);
    // БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
    Иначе
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
    БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
    КонецЕсли;
    
    
    Если ПустоеЗначение(Исклад)=1 Тогда
    ПоСкладам=0;
    Иначе
    ПоСкладам=1;
    КонецЕсли;[/size][/font][/color]
    
    [color=#293851][font=Verdana][size=3]Если Счета.ТекущаяСтрока() = 1 Тогда
    
    БИ.ВключатьСубсчета(-1,-1);
    БИ.ВыполнитьЗапрос(Дата1,Дата2, "МЦ2.ЭК,МЦ2.БУ, МЦ.04,МЦ.02, МЦ.03,013.4, 010.01, 010.02, 010.03",,,,, 5);
    
    
    Иначе		
    
    БИ.ВключатьСубсчета(-1,-1);
    СЧ="";
    Счета.ПолучитьЗначение(Счета.ТекущаяСтрока(),СЧ);
    БИ.ВыполнитьЗапрос(Дата1,Дата2,СЧ,,,,,5);[/size][/font][/color]
    [color=#293851][font=Verdana][size=3]КонецЕсли;
    
    
    //Заг="На "+Дата1;
    Если Счета.ТекущаяСтрока() = 1 Тогда
    Заг=Заг+", по всем субсчетам, ";
    Иначе
    Заг=Заг+", по субсчету: "+СЧ+", ";
    КонецЕсли;
    
    Если ПоСкладам=0 Тогда
    Заг=Заг+"по всем складам(МОЛ).";
    Иначе
    Заг=Заг+ИСклад+".";  
    КонецЕсли;
    
    Таб.ВывестиСекцию("Шапка");  
    
    БИ.ВыбратьСчета();
    
    
    
    Пока БИ.ПолучитьСчет(0)=1 Цикл
    
    Счет=БИ.Счет;	[/size][/font][/color]
    [color=#293851][font=Verdana][size=3]// Сумма = БИ.СКД("С");
    
    
    БИ.ВыбратьСубконто(1);
    
    Пока БИ.ПолучитьСубконто(1)=1 Цикл
    
    
    ОбщСумма = БИ.СКД("С");
    ОбщКол=БИ.СКД("К");
    Цена = 0;
    Если ОбщКол<>0 Тогда Цена=Окр(ОбщСумма/ОбщКол,3,1); КонецЕсли;
    
    
    
    БИ.ВыбратьСубконто(2);
    Пока БИ.ПолучитьСубконто(2)=1 Цикл
    
    Склад=БИ.Субконто(2);
    
    Если ПоСкладам=1 Тогда
    Если Склад.Наименование<>ИСклад.Наименование Тогда
    Продолжить;
    КонецЕсли;	
    КонецЕсли;  
    [/size][/font][/color]
    [color=#293851][font=Verdana][size=3]   Количество=БИ.СКД("К");
    Сумма=Цена*Количество;
    Номер=Номер+1;
    
    Итог.НоваяСтрока(Номер);
    
    Итог.Счет=Строка(БИ.Счет);
    Итог.Склад=БИ.Субконто(2);
    Итог.Материал=БИ.Субконто(1);
    Итог.Количество=Количество;
    Итог.Цена=Цена;
    Итог.Сумма=Сумма;
    
    
    
    КонецЦикла; [/size][/font][/color]
    [color=#293851][font=Verdana][size=3]КонецЦикла;
    
    
    КонецЦикла;[/size][/font][/color]
    [color=#293851][font=Verdana][size=3]Итог.Сортировать("1+,2+,3+",); //Сортировка
    Итог.ВыбратьСтроки();
    
    Склад="";
    Счет="";
    
    СуммаПоВсемСчетам=0;
    СуммаПоСчету=0;
    
    КолПоВсемСчетам=0;
    КолПоСчету=0;
    
    Ном=0;
    
    Пока Итог.ПолучитьСтроку()=1 Цикл
    Если Счет<>Итог.Счет Тогда
    Если СуммаПоСчету<>0 тогда
    Таб.ВывестиСекцию("Итог");  
    СуммаПоВсемСчетам=СуммаПоВсемСчетам+СуммаПоСчету;
    КолПоВсемСчетам=КолПоВсемСчетам+КолПоСчету;
    СуммаПоСчету=0;
    КолПоСчету=0;
    КонецЕсли;
    Счет=Итог.Счет;
    Таб.ВывестиСекцию("Счет");
    Склад="";
    
    КонецЕсли;  
    
    Если Склад<>Итог.Склад Тогда
    Склад=Итог.Склад;
    Таб.ВывестиСекцию("Склад");
    КонецЕсли;
    Ном=Ном+1;
    
    Материал=Итог.Материал;
    Количество=Итог.Количество;
    Цена=Итог.Цена;
    Сумма=Итог.Сумма;
    Если Количество = 0 Тогда
    Продолжить;
    КонецЕсли;
    Таб.ВывестиСекцию("Материал");  
    СуммаПоСчету=СуммаПоСчету+Итог.Сумма;
    КолПоСчету=КолПоСчету+Итог.Количество;
    
    КонецЦикла;							 [/size][/font][/color]
    [color=#293851][font=Verdana][size=3]	СуммаПоВсемСчетам=СуммаПоВсемСчетам+СуммаПоСчету;
    КолПоВсемСчетам=КолПоВсемСчетам+КолПоСчету;
    
    Таб.ВывестиСекцию("Итог");  
    Таб.ВывестиСекцию("ИтогВсего");
    
    Таб.ВывестиСекцию("Подпись");
    
    
    
    Таб.ТолькоПросмотр(1);
    Таб.Опции(0,0,0,0);
    Таб.ПараметрыСтраницы(1,,,10,10,10,10,10,,,,);
    Таб.ПовторятьПриПечатиСтроки(3,4);
    Таб.Показать("Сформировать","");			
    [/size][/font][/color]
    
    [color=#293851][font=Verdana][size=3]КонецПроцедуры   [/size][/font][/color]
    [color=#293851][font=Verdana][size=3]//-----------------------------------------------
    Процедура ВводНового()
    //Дата1 = КонецПериодаБИ();  
    
    Счета.ДобавитьЗначение(1, "По всем");
    Счета.ДобавитьЗначение(2, "МЦ.02");
    Счета.ДобавитьЗначение(3, "МЦ.03");
    Счета.ДобавитьЗначение(4, "МЦ.04");
    Счета.ДобавитьЗначение(5, "МЦ2.БУ");
    Счета.ДобавитьЗначение(6, "МЦ2.ЭК");
    Счета.ДобавитьЗначение(7, "013.4");
    Счета.ДобавитьЗначение(8, "010.01");
    Счета.ДобавитьЗначение(9, "010.02");
    Счета.ДобавитьЗначение(10, "010.03");
    
    
    КонецПроцедуры
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    формировать отдельно, консолидировать в ТаблицуЗначений, выводить. Не получится в одном запросе установить фильтр по несуществующему субконто
  3. TopicStarter Overlay
    andryscha92
    Offline

    andryscha92 Опытный в 1С

    Регистрация:
    31 янв 2012
    Сообщения:
    389
    Симпатии:
    1
    Баллы:
    29
    можете показать на примере?буду очень благодарен вам и вашему сайту!!!
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Делайте выборку по БИ с заполнением таблицызначений (вместо вывода как сейчас). Потом сворачивайте ТЗ и выводите.

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