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


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Остаток по 2 субконто на счете

v7: Остаток по 2 субконто на счете
Я
   ssserg
 
02.05.18 - 14:55
Как в 7.7 получить плоскую таблицу значений остатка по двум субконто с определенного счета?
 
 
   Сияющий Асинхраль
 
1 - 02.05.18 - 15:16
Загляни в любую типовую бухгалтерию - или просто поищи в конфигураторе СоздатьОбъект("БухгалтерскиеИтоги")
   ugorchina
 
2 - 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("ВидыСубконто.Партии");

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

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

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

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

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

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

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

здесь не указано с какого субконто?
   ugorchina
 
12 - 02.05.18 - 16:26
НоваяТз.НоваяСтрока();
        НоваяТз.Абонент     = Ит.Субконто(1);
        НоваяТз.АбонентКод     = Ит.Субконто(1).Код;
   ugorchina
 
13 - 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;    
    КонецЦикла;
    
КонецЦикла;
   ugorchina
 
14 - 02.05.18 - 16:30
Сколько субконто у счета 1211 и что это за субконто?
   ssserg
 
15 - 02.05.18 - 16:39
(14) 3 субконто: Контрагент,  Договор, Номенклатура
   ugorchina
 
16 - 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;    
                КонецЦикла;   
            КонецЦикла;
            
        КонецЦикла;
   ugorchina
 
17 - 02.05.18 - 16:51
+(16) усли счет + количественный тогда

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

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

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

почитайте СП по СКД(
   ugorchina
 
18 - 02.05.18 - 17:03
стучитесь на мыло если что постараюсь Вам помочь
   Сияющий Асинхраль
 
19 - 02.05.18 - 17:26
(9) Я к тому, что, если уж приводите код, то приводите код такой, что не надо потом долго в выкорчевывать из него ненужные операторы. Сам помню, когда году в 2003-ем впервые столкнулся с 1С как и начал разбирать чужой код как меня доставали десятки строчек ненужных операторов, это я потом уже додумался, что человек писавший код просто тупо копипастил его из других частей оставляя кучу ненужного кода, но я это понял, когда уже сам стал разбираться в 1С-е, а поначалу тратил на разбор этих ненужных строчек кучу времени пытаясь понять нахрен они в коде взялись. Именно с тех пор стараюсь полностью выкорчевывать ненужный код из своих поделок...
   ssserg
 
20 - 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
Хотя нет, снимаю все замечания, это я на праздниках туплю. Пить меньше надо :-)
   ssserg
 
24 - 02.05.18 - 17:44
(22) Иисус, отстань :-)
   ugorchina
 
25 - 02.05.18 - 19:44
Ржачно


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