Имя: Пароль:
1C
1C 7.7
v7: Вложенные бухгалтерские запросы
,
0 casufi
 
22.03.12
14:12
Есть задача, бухгалтерским запросом получить все операции по счету, при этом если у КорСчет есть субконто "Контрагенты", нужно отобразить контрагента.
Проблема в том, что если я добавляю строку ИспользоватьКорСубконто(ВидыСубконто.Контрагенты, ,1) то в выборку попадают только операции, в которых в кор. счете присутствует субконто "Контрагенты"
Можно ли внутри цикла ПолучитьОперацию создать еще один объект Бухгалтерские Итоги и в нем выполнить запрос с детализацией по Субконто Контрагенты, не слетит ли от этого выборка ?
Или может есть ругой способ для выбранной операции, для кор. счета получить значение определенного субконто?
1 Guk
 
22.03.12
14:14
(0) сделай ИспользоватьКорСубконто(, ,) и в цикле по корр. субконто получай контрагента. вложенный запрос не надо...
2 casufi
 
22.03.12
14:23
Я так понимаю , ИспользоватьКорСубконто(, ,) мне выберет все первые субконто любого типа, но я не знаю на каком месте идет субконто Контрагент.
Похоже мне нужно сделать ИспользоватьКорСубконто(, ,) три раза, тройным вложеным циклом выбрать любое субконто с типом контрагент так ?
3 Guk
 
22.03.12
14:25
(2) так...
4 casufi
 
22.03.12
14:31
Не работает, не заходит в цикл ПолучитьКорСубконто(1)
5 casufi
 
22.03.12
14:37
6 DeiMos
 
22.03.12
14:45
(2,3): Не так.
Следует явно указать вид субконто и всё.
ИспользоватьКорСубконто(<ВидСубконто>,
7 casufi
 
22.03.12
14:48
(6) Если указываю вид субконто явно, из выборки исключаются операции где у кор счета нет субконто "Контрагенты"
Почитай первый пост
8 chief accountant
 
22.03.12
15:08
(4)
       Ит.ИспользоватьСубконто(ВидыСубконто.ФКР);
       Ит.ИспользоватьСубконто(ВидыСубконто.ОГС);
       КолСубк=0;
       Для к=3 По ЗакрСчет.КоличествоСубконто() Цикл
           Ит.ИспользоватьСубконто(ЗакрСчет.ВидСубконто(к),,1,1);
           КолСубк=КолСубк+1;
           Если ВидСубконто3="" Тогда
               ВидСубконто3=ЗакрСчет.ВидСубконто(к);
           ИначеЕсли ВидСубконто4="" Тогда
               ВидСубконто4=ЗакрСчет.ВидСубконто(к);
           Иначе
               ВидСубконто5=ЗакрСчет.ВидСубконто(к);
           КонецЕсли;
       КонецЦикла;
       
       Ит.ИспользоватьКорСубконто(ВидыСубконто.ФКР);
       Ит.ИспользоватьКорСубконто(ВидыСубконто.ОГС);
       Ит.ИспользоватьКорСубконто();
       Ит.ИспользоватьКорСубконто();
       Ит.ИспользоватьКорСубконто();


все работает
9 casufi
 
22.03.12
15:13
(8)
Выборка ПолучитьКорСубконто(3) работает ?
10 casufi
 
22.03.12
15:16
(8) Я не знаю какой будет КорСчет у операции до выборки, поэтому не могу в цикле сделать ИспользоватьСубконто(ЗакрСчет.ВидСубконто(к)

Пока решил проблему вложенными запросами
11 chief accountant
 
22.03.12
15:28
(9) Ещё раз говорю: все работает
(10) И я не знаю. У меня перебирает все коррсчета:
                   Ит.ВыбратьСчета();
                   Пока Ит.ПолучитьСчет() = 1 Цикл
                       Ит.ВыбратьКорСчета();
                       Пока Ит.ПолучитьКорсчет()=1 Цикл
                           Ит.ВыбратьКорСубконто(ВидыСубконто.ФКР);              
                           Пока Ит.ПолучитьКорСубконто(ВидыСубконто.ФКР) = 1 Цикл
                               КорФКР=Ит.КорСубконто(ВидыСубконто.ФКР);
                               Ит.ВыбратьКорСубконто(ВидыСубконто.ОГС);              
                               Пока Ит.ПолучитьКорСубконто(ВидыСубконто.ОГС) = 1 Цикл
                                   КорОГС=Ит.КорСубконто(ВидыСубконто.ОГС);
                                   Если КолСубкКор=0 Тогда
                                                                       //
                                   Иначе    
                                       Ит.ВыбратьКорСубконто(3);              
                                       Пока Ит.ПолучитьКорСубконто(3) = 1 Цикл
12 viktor_vv
 
22.03.12
15:30
(10) Параметр ТипИтогов какой стоит в выполнить запрос? Поставь 3 .
13 casufi
 
22.03.12
19:06
Спасибо
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший