Опер.ВыбратьОперацииСПроводками(...) в виде запроса

Новая тема
Показывать по 10 20 40 сообщений
"могу дать посоветовать:
Во-первых, зачем городить огороды с ВыбратьСубконто(1), ВыбратьСубконто(2);
на мой взгляд это здесь не надо. просто БИ.ВыбратьПериоды() и вперёд перебор всех...

Во-вторых, следующие строки кода
БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
БИ.ИспользоватьСубконто(ВидыСубконто.НазначенияИспользования);
Ничего не датут - можно их не писать."
Возможно ты и прав, я еще только начинаю варится в этой каше, вот и нагородил, опытному человеку на этот код смотреть наверное смешно, но вот я пока так))) я вообще не понял смысла этого перебора БИ.ВыбратьПериоды(), поэтому и замешкался. если есть время и возможность напиши поподробнее как написать.
Если надо выбрать по определённым субконто данные, то
ИспользоватьСубконто(...)
ИспользоватьСубконто(...)

а потом:
выбратьСубконто(1)
пока получитьСубконто() = 1 цикл
   выбратьСубконто(2)
   пока получитьСубконто() = 1 цикл

заметь, что циклы вложены...
а если надо выбрать все записи за период, тогда просто:
   ВыбратьПериоды()
и всё - так легче будет запомнить.

"Не могу понять как правельно сделать?
если я этот цикл:

БИ.ВыбратьПериоды(, 1);
Пока БИ.ПолучитьПериод() = 1 Цикл
Док = БИ.операция.Документ;  // доступ к документу, который ввел данную операцию
Ном=Док.НомерДок;
Дат=Док.ДатаДок;
КонецЦикла;

вставляю в первый цикл то у меня менятеся перебор по субконто, правельно выводятся номера документов, но не правельно считается итого по Сальдл конечное дебетовое.

а если втавляю во второй цикл то итого считается правельно, но номера докуметов присваюваются через одного.
подскажите что сделать, сроки жмут(


Сейчас код выглядит так:

Процедура Сформировать()
БИ= СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Сотрудники);
БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
БИ.ВыполнитьЗапрос("01.01.09","30.06.09","10.11.1",,,,"Операция", "СК");
 
   Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("""");
Таб.ВывестиСекцию("Шапка");    

БИ.ВыбратьСубконто(1);                    //первое субконто
Пока БИ.ПолучитьСубконто(1)=1 Цикл
Сотр= Строка(БИ.Субконто(1));             //ноименование субконто(сотрудник)
Код2= Строка(БИ.Субконто(1).Код);         //код субконто
СотрСКД = (БИ.СКД("С"));
  БИ.ВыбратьПериоды(, 1);
  Пока БИ.ПолучитьПериод() = 1 Цикл  
  Док = БИ.операция.Документ;  // доступ к документу, который ввел данную операцию
  Ном=Док.НомерДок;             //номер документа
  Дат=Док.ДатаДок;       //дата документа
   
БИ.ВыбратьСубконто(2);                          //второе субконто
Пока БИ.ПолучитьСубконто(2)=1 Цикл
ОСТАТКИк = (БИ.СКД("К"));                    
ОСТАТКИс = (БИ.СКД("С"));                     //сальдо конечное дебетовое
Если (ОСТАТКИк>0) И(ОСТАТКИс>0) Тогда
   Мат= Строка(БИ.Субконто(2));                //ноименование субконто(спецодежда)
Код1= Строка(БИ.Субконто(2).Код);           //код субконто

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

КонецЕсли;
КонецЦикла;
КонецЦикла;
   КонецЦикла;
   Таб.ВывестиСекцию("Подвал");
Таб.ТолькоПросмотр(1);
Таб.Опции(0,0,0,0);
Таб.Показать("""");
КонецПроцедуры


но он не правельно считает СКД("С")"
> Уточняю:  Как в мне в этом модуле обратиться к номеру и дате документа, по которому были
> переданы материалы сотруднику. Не могу понять как правельно сделать?

Если нужны переданные сотруднику материалы по документам, то почему СКД(), а не ДО()?
А если нужны остатки, то при чем здесь документы?
мне нужны остатки со счета 10.11.1 на 30.06.09 это получается, и еще нужны номера и даты документов(проводок) по которым по которым были операции.
"БИ.ВыбратьСубконто(1);                    //первое субконто
Пока БИ.ПолучитьСубконто(1)=1 Цикл
  Сотр= Строка(БИ.Субконто(1));             //ноименование субконто(сотрудник)
  Код2= Строка(БИ.Субконто(1).Код);         //код субконто
  СотрСКД = (БИ.СКД("С"));
  БИ.ВыбратьСубконто(2);                          //второе субконто
  Пока БИ.ПолучитьСубконто(2)=1 Цикл
     ОСТАТКИк = (БИ.СКД("К"));                    
     ОСТАТКИс = (БИ.СКД("С"));                     //сальдо конечное дебетовое
     Если (ОСТАТКИк>0) И(ОСТАТКИс>0) Тогда
        Мат= Строка(БИ.Субконто(2));                //ноименование субконто(спецодежда)
        Код1= Строка(БИ.Субконто(2).Код);           //код субконто
        Таб.ВывестиСекцию("Строка1");       //* здесь выводятся остатки по материалу
        БИ.ВыбратьПериоды(, 1);
        Пока БИ.ПолучитьПериод() = 1 Цикл  
           Док = БИ.операция.Документ;  // доступ к документу, который ввел данную операцию
           Ном=Док.НомерДок;             //номер документа
           Дат=Док.ДатаДок;       //дата документа
           СуммаДок = БИ.ДО("С");           //* если нужны суммы по документу
           Таб.ВывестиСекцию("СтрокаДок");  //* здесь выводится инфо о документе
        КонецЦикла;
     КонецЕсли;
  КонецЦикла;
КонецЦикла;
"
Мне нужно, что бы вот такая таблица была

|Код|Субконто1|Код2|Субконто2|НомерДок|ДатаДок|СКД("С")|

то есть конкретно номер документа по которому данный материал передан в эксплуатацию данному сотруднику и еще скд.
> Мне нужно, что бы вот такая таблица была
>
> |Код|Субконто1|Код2|Субконто2|НомерДок|ДатаДок|СКД("С")|
>
> то есть конкретно номер документа по которому данный материал передан в эксплуатацию данному сотруднику и еще скд.

тогда выводи только последную секцию!
если только последнюю секцию выводить то как тогда  вывести? |Код|Субконто1|Код2|Субконто2|
Читают тему
(гостей: 1)

Быстрый переход