Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 09:24
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите разобраться!  (Прочитано 1295 раз)

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

Оффлайн andryscha92

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С

Всем здравствуйте!Подскажите почему обработка не работает с забалансовыми счетами которые создали вручную 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

  • ****
  • Сообщений: 267
  • РЕПУТАЦИЯ: 4
  • КПД: 1%
  • Регистрация: 2012-01-31
  • Сайт: 
  • Профессия: Программист 1С

Всем здравствуйте!Подскажите почему обработка не работает с забалансовыми счетами которые создали вручную 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

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


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
AIFrame
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 169
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal