Вход | Регистрация

1С:Предприятие ::

Метки:

Как из результатов по бухгалтерским итогам выйти на операцию

Я
   Willhelm
 
02.02.04 - 18:43
Есть следующий код
*******************
Операция=СоздатьОбъект(\"Операция\");
Опер=СоздатьОбъект(\"Операция\");
Операция.Новая();
Операция.ДатаОперации=ДатаОбработки;     
Операция.Содержание=\"Перенос остатков\";
Итг=СоздатьОбъект(\"БухгалтерскиеИтоги\");
Итг.ИспользоватьСубконто(ВидыСубконто.Подразделения);
Итг.ИспользоватьСубконто(ВидыСубконто.МБП);
Итг.ВыполнитьЗапрос(ДатаНач,ДатаКон,Сч12);
СпМБП=СоздатьОбъект(\"Справочник.МБП\"); 
Итг.ВыбратьСубконто(1);
СуммаОперации=0;     
Пока Итг.ПолучитьСубконто(1)=1 Цикл
 Подразделение=Итг.Субконто(1);
 Итг.ВыбратьСубконто(2);
  Пока Итг.ПолучитьСубконто(2)=1 Цикл
   МБП=Итг.Субконто(2);     
   Если Итг.СКД(1)<>0 Тогда
     СуммаМБП=Итг.СКД(1);
   //А вот здесь я хочу узнать какой из субсчетов - 

   // 12.1 или 12.2 вызвал изменение СКД, но для 

   // этого надо знать операцию, внутри которой

   // содержится эта проводка. Вопрос: см. Сабж
 
  Рекламное место пустует
   Таня
 
1 - 02.02.04 - 20:27
Может я скажу глупость, но может использовать ВыбратьОперацииСПроводками, а потом проверять как-нибудь?
   GrayT
 
2 - 02.02.04 - 23:50
А выбратьКорСчет() не пробовал?
   345
3 - 03.02.04 - 06:06
А на хрена тебе в данном случае операция? К тому же операций по счету м.б. много .... Какую тебе надо?

Счет можно получить прямо из Итогов.... сделай цикл по счетам ....
Итг.выбратьсчета()
пока Итг.ПолучитьСчет() цикл

можно и без цикла - читай ЖКК

(2) корсчет в остатках .... хм.... это чтото новое
   GrayT
 
4 - 03.02.04 - 15:53
(3)Переклинил малость, думал его интересует кореспонденция.
Ну а ИспользоватьСубсчета(1) перед циклом поставитьнадо
   Willhelm
 
5 - 03.02.04 - 16:14
(Для 345) Картина следующая - ты прав, в процессе существования конкретного МБП (например чайник электрический, далее ЧЭ), он проходит несколько операций: поступление, ввод в эксплуатацию, перемещение, списание и т.д. Естествено, чтобы отследить всё движение ЧЭ, нужно перебрать все операции (внешний цикл), а потом конкретно для каждой опреации перебрать проводки (внутренний цикл). Зачем мне это нужно? А просто хочу корректно перенести 12 счет со своими субсчетами на 10. Можно было бы подбить остаток на конец года и бахнуть одной проводкой - но это не грамотно.
   GrayT
 
6 - 03.02.04 - 16:21
А как ты еще остатки хочешь перенести? Они и в африке остатки
   Дмитрий
7 - 03.02.04 - 16:44
Я так понял. Сч12=СчетПоКоду("12") И ты хочешь узнать
СКД("12.1") и СКД("12.2")

Тогда перед ВыполнитьЗапрос пишешь
Итг.ВключатьСубсчета(-1);
Вместо СуммаМБП=Итг.СКД() начинаешь цикл
Итг.ВыбратьСчета()
Пока Итг.ПолучитьСчет()
    СуммаМБП=0;
    Если Итг.Счет=СчетПоКоду("12.1") Тогда
       СуммаМБП=СуммаМБП+Итг.СКД();
      //....

    ИначеЕсли Итг.Счет=СчетПоКоду("12.2") Тогда
       СуммаМБП=СуммаМБП+Итг.СКД();
      //...

    КонецЕсли;
КонецЦикла

Естетсвенно, если у тебя один и тот же МБП не может
быть одновременно и в запасе и в эксплуатации, то лучше
сделать немножко по другому )
   Дмитрий
8 - 03.02.04 - 16:48
Ага картина прояснилась. Белорус ))
Переносил 12.1 на один субсчет 10, 12.2 на другой субсчет 10. 13 - в кредит того субсчета 10, где 12.2.

Что тут неграмотного?
   Willhelm
 
9 - 03.02.04 - 17:13
(8) Верно - Белорус. Вот только из всего выше сказанного и предложенного корректнее всего мне кажется вариант GrayT (4). То бишь организовать третий внутренний цикл по субсчетам, если только запись:
**************
Итг.ИспользоватьСубсчета(1)
...
Итг.ВыбратьСубсчета()
пока Итг.ПолучитьСубсчет()=1 цикл
...
**************
верна
   Дмитрий
10 - 03.02.04 - 17:45
(9) Я в принципе то же предлагал. Только если в общем по 12 остатки не нужны, то можно
ИспользоватьСубсчета(-1)
а цикл в любом случае:
Итг.ВыбратьСчета()
пока Итг.ПолучитьСчет()=1 цикл
 
  Рекламное место пустует


Список тем форума
Рекламное место пустует   Рекламное место пустует
Компьютер — устройство разработанное для ускорения и автоматизации человеческих ошибок.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует