Имя: Пароль:
1C
1C 7.7
v7: Остаток по 2 субконто на счете
,
0 ssserg
 
02.05.18
14:55
Как в 7.7 получить плоскую таблицу значений остатка по двум субконто с определенного счета?
1 Сияющий Асинхраль
 
02.05.18
15:16
Загляни в любую типовую бухгалтерию - или просто поищи в конфигураторе СоздатьОбъект("БухгалтерскиеИтоги")
2 ugorchina
 
02.05.18
15:21
(0) что то типа такого

Остаток = 0;
    Партия = Неопределено;
    Склад  = Неопределено;
    ОстатокСкладПартия = Новый СписокЗначений;
    Субк1 = ОбъектV77.EvalExpr("ВидыСубконто.Номенклатура");
    Субк2 = ОбъектV77.EvalExpr("ВидыСубконто.МестаХранения");
    Субк3 = ОбъектV77.EvalExpr("ВидыСубконто.Партии");
    БИ = ОбъектV77.CreateObject("БухгалтерскиеИтоги");
    БИ.ИспользоватьСубконто(Субк1,НайденыйТоварВСтроку,1,0);
    БИ.ИспользоватьСубконто(Субк2,Неопределено,1,0);
    БИ.ИспользоватьСубконто(Субк3,Неопределено,1,0);
    БИ.ВыполнитьЗапрос(ТекущаяДата(),ТекущаяДата(),"41.1",Неопределено,Неопределено,1,Неопределено,Неопределено);                                         
    БИ.ВыбратьСубконто(1);
    Пока БИ.ПолучитьСубконто(1) = 1 Цикл
        Остаток = БИ.СКД("К");
        БИ.ВыбратьСубконто(2);
        Пока БИ.ПолучитьСубконто(2) = 1 Цикл
            Склад = БИ.Субконто(2).ТекущийЭлемент();
            БИ.ВыбратьСубконто(3);
            Пока БИ.ПолучитьСубконто(3) = 1 Цикл
                Партия = БИ.Субконто(3).ТекущийЭлемент();
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;    
    ОстатокСкладПартия.Вставить(0,Остаток);
    ОстатокСкладПартия.Вставить(1,Склад);
    ОстатокСкладПартия.Вставить(2,Партия);

только субконто объяви
3 Сияющий Асинхраль
 
02.05.18
15:40
(2) Судя по вопросу (0) он новичок, а ты ему скидываешь код:

Субк1 = ОбъектV77.EvalExpr("ВидыСубконто.Номенклатура");
Субк2 = ОбъектV77.EvalExpr("ВидыСубконто.МестаХранения");
Субк3 = ОбъектV77.EvalExpr("ВидыСубконто.Партии");

Бедолага потом будет долго пытаться определить, зачем же такое имеет место быть...
4 ugorchina
 
02.05.18
15:43
5 лет на форуме новичок?
5 ugorchina
 
02.05.18
15:47
(0) в 7-ке есть конструктор Бух итогов

В самом верху кнопка Конструкторы
6 ssserg
 
02.05.18
16:22
(2) я вот такую хрень накидал:

Ит = СоздатьОбъект("БухгалтерскиеИтоги");

    Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
    Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,, 1);
    
    Ит.ВыполнитьЗапрос(, ДатаКон, "1211,1212",,, 1,, "С");

    Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
    Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
        
        НоваяТз.НоваяСтрока();
        НоваяТз.Абонент     = Ит.Субконто();
        НоваяТз.АбонентКод     = Ит.Субконто().Код;
        
        Ит.ВыбратьСубконто(ВидыСубконто.Номенклатура);
        
        СколькоРаз = 1;
        
        Пока Ит.ПолучитьСубконто(ВидыСубконто.Номенклатура) = 1 Цикл
        
            Если СколькоРаз > 1 Тогда
                НоваяТз.НоваяСтрока();
                НоваяТз.Абонент     = Ит.Субконто(ВидыСубконто.Контрагенты);
                НоваяТз.АбонентКод     = Ит.Субконто(ВидыСубконто.Контрагенты).Код;
            КонецЕсли;
            
            НоваяТз.ВидУслуг     = Ит.Субконто(ВидыСубконто.Номенклатура);
            НоваяТз.ВидУслугКод = Ит.Субконто(ВидыСубконто.Номенклатура).Код;

            НоваяТз.Начисленно = Ит.СКД();
            СколькоРаз = СколькоРаз + 1;    
        КонецЦикла;
        
    КонецЦикла;
7 ssserg
 
02.05.18
16:23
только оно мне на втором вложенном цикле не то что надо делает, например остаток на трёх разных субконо, а оно мне 2 строки даёт в ТЗ
8 ugorchina
 
02.05.18
16:24
Ит.ВыполнитьЗапрос(, ДатаКон, "1211,1212",,, 1,, "С");

что это  за счет такой то? 1211,1212
9 ssserg
 
02.05.18
16:24
(3) все вопросы уже давно когда либо разобрали, зачем вообще форум? давай все закроем - чо париться.
10 ssserg
 
02.05.18
16:25
(8) со счетом всё окей) это местный план счетов
11 ugorchina
 
02.05.18
16:26
НоваяТз.НоваяСтрока();
        НоваяТз.Абонент     = Ит.Субконто();
        НоваяТз.АбонентКод     = Ит.Субконто().Код;

здесь не указано с какого субконто?
12 ugorchina
 
02.05.18
16:26
НоваяТз.НоваяСтрока();
        НоваяТз.Абонент     = Ит.Субконто(1);
        НоваяТз.АбонентКод     = Ит.Субконто(1).Код;
13 ugorchina
 
02.05.18
16:29
Ит = СоздатьОбъект("БухгалтерскиеИтоги");

Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,, 1);

Ит.ВыполнитьЗапрос(, ДатаКон, "1211,1212",,, 1,, "С");

Ит.ВыбратьСубконто(1);
Пока Ит.ПолучитьСубконто(1) = 1 Цикл
    
    НоваяТз.НоваяСтрока();
    НоваяТз.Абонент     = Ит.Субконто(1);
    НоваяТз.АбонентКод     = Ит.Субконто(1).Код;
    
    Ит.ВыбратьСубконто(2);
    
    СколькоРаз = 1;
    
    Пока Ит.ПолучитьСубконто(2) = 1 Цикл
        
        Если СколькоРаз > 1 Тогда
            НоваяТз.НоваяСтрока();
            НоваяТз.Абонент     = Ит.Субконто(1);
            НоваяТз.АбонентКод     = Ит.Субконто(1).Код;
        КонецЕсли;
        
        НоваяТз.ВидУслуг     = Ит.Субконто(2);
        НоваяТз.ВидУслугКод = Ит.Субконто(2).Код;
        
        НоваяТз.Начисленно = Ит.СКД();
        СколькоРаз = СколькоРаз + 1;    
    КонецЦикла;
    
КонецЦикла;
14 ugorchina
 
02.05.18
16:30
Сколько субконто у счета 1211 и что это за субконто?
15 ssserg
 
02.05.18
16:39
(14) 3 субконто: Контрагент,  Договор, Номенклатура
16 ugorchina
 
02.05.18
16:46
//Точно не помню как на 7-ке это делать но вот попробуйте вот так
        Ит = СоздатьОбъект("БухгалтерскиеИтоги");
        
        Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
        Ит.ИспользоватьСубконто(ВидыСубконто.Договора,, 1);//замените на свое
        Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,, 1);
        
        Ит.ВыполнитьЗапрос(, ДатаКон, "1211,1212",,, 1,, "С");
        
        Ит.ВыбратьСубконто(1);
        Пока Ит.ПолучитьСубконто(1) = 1 Цикл
            
            НоваяТз.НоваяСтрока();
            НоваяТз.Абонент     = Ит.Субконто(1);
            НоваяТз.АбонентКод     = Ит.Субконто(1).Код;
            
            Ит.ВыбратьСубконто(2);
            
            СколькоРаз = 1;
            
            Пока Ит.ПолучитьСубконто(2) = 1 Цикл
                
                Ит.ВыбратьСубконто(3);
                
                
                Пока Ит.ПолучитьСубконто(3) = 1 Цикл
                    
                    Если СколькоРаз > 1 Тогда
                        НоваяТз.НоваяСтрока();
                        НоваяТз.Абонент     = Ит.Субконто(1);
                        НоваяТз.АбонентКод     = Ит.Субконто(1).Код;
                    КонецЕсли;
                    
                    НоваяТз.ВидУслуг     = Ит.Субконто(3);
                    НоваяТз.ВидУслугКод = Ит.Субконто(3).Код;
                    
                    НоваяТз.Начисленно = Ит.СКД();
                    СколькоРаз = СколькоРаз + 1;    
                КонецЦикла;  
            КонецЦикла;
            
        КонецЦикла;
17 ugorchina
 
02.05.18
16:51
+(16) усли счет + количественный тогда

Ит.СКД("К") если сальдо по количеству или Ит.СКД("С") если сальдо по сумме

или вот так (извините не помню точно как там все

Ит.СКД(К) если сальдо по количеству или Ит.СКД(С) если сальдо по сумме

почитайте СП по СКД(
18 ugorchina
 
02.05.18
17:03
стучитесь на мыло если что постараюсь Вам помочь
19 Сияющий Асинхраль
 
02.05.18
17:26
(9) Я к тому, что, если уж приводите код, то приводите код такой, что не надо потом долго в выкорчевывать из него ненужные операторы. Сам помню, когда году в 2003-ем впервые столкнулся с 1С как и начал разбирать чужой код как меня доставали десятки строчек ненужных операторов, это я потом уже додумался, что человек писавший код просто тупо копипастил его из других частей оставляя кучу ненужного кода, но я это понял, когда уже сам стал разбираться в 1С-е, а поначалу тратил на разбор этих ненужных строчек кучу времени пытаясь понять нахрен они в коде взялись. Именно с тех пор стараюсь полностью выкорчевывать ненужный код из своих поделок...
20 ssserg
 
02.05.18
17:32
(18) спасибо за помощь, следующий код, работает так, как надо:

    Ит = СоздатьОбъект("БухгалтерскиеИтоги");

    Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
    Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура,, 1);
    
    Ит.ВыполнитьЗапрос(, ДатаКон, "1211,1212",,, 1,, "С");      //,1212

    ВремТЗ = СоздатьОбъект("ТаблицаЗначений");    
    ВремТЗ.НоваяКолонка("СтрокаТЗ");
    
    
    Ит.ВыбратьСубконто(1);
    Пока Ит.ПолучитьСубконто(1) = 1 Цикл
        
        //СформироватьБух_Колонки(Ит, Таб, "Субконто1");
        Сообщить( Ит.Субконто(1));
        
        ВремТЗ.НоваяСтрока();
        ВремТЗ.СтрокаТЗ = Ит.Субконто(1);
        
        
        
        Ит.ВыбратьСубконто(2);
        //Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура);
        
        СколькоРаз = 1;
        
        Пока Ит.ПолучитьСубконто(2) = 1 Цикл
        //    СформироватьБух_Колонки(Ит, Таб, "Субконто2");
            Сообщить(Ит.Субконто(2));
            
            ВремТЗ.НоваяСтрока();
            ВремТЗ.СтрокаТЗ = Ит.Субконто(2);

НоваяТз.НоваяСтрока();
        НоваяТз.Абонент = Ит.Субконто(1);
        НоваяТз.АбонентКод = Ит.Субконто(1).Код;            
            
            НоваяТз.ВидУслуг = Ит.Субконто(2);
            НоваяТз.ВидУслугКод = Ит.Субконто(2).Код;
            Если Ит.СКД() > 0 Тогда
                НоваяТз.Начисленно = Ит.СКД();    
            Иначе    
                НоваяТз.Начисленно = -Ит.СКК();        
            КонецЕсли;                

            
            
        КонецЦикла;
    КонецЦикла;
21 Сияющий Асинхраль
 
02.05.18
17:40
Вот это условие какое-то кривое:

Если Ит.СКД() > 0 Тогда
    НоваяТз.Начисленно = Ит.СКД();    
Иначе
    НоваяТз.Начисленно = -Ит.СКК();        
КонецЕсли;

Подозреваю, что здесь надо что-то поменять....
22 Сияющий Асинхраль
 
02.05.18
17:42
+(21) Если исходить из того, что ты написал в (21) то тебе без разницы ты кому-то должен или кто-то должен тебе... Не думаю, что незаплаченную ТЕБЕ зарплату ты воспринимаешь также как не выплаченный ТОБОЙ долг другу...
23 Сияющий Асинхраль
 
02.05.18
17:44
Хотя нет, снимаю все замечания, это я на праздниках туплю. Пить меньше надо :-)
24 ssserg
 
02.05.18
17:44
(22) Иисус, отстань :-)
25 ugorchina
 
02.05.18
19:44
Ржачно
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс