Имя: Пароль:
1C
1C 7.7
v7: как сделать выборку с проводок и выгрузить в таблицу значений в 1с77
0 alpha78
 
24.05.19
15:04
Добрый день, в 1с программировании начинаю, так что строго не судите, коллеги. Задача заключается в следующем: создаю внешнюю обработку, реквизиты - счет дебета, счет кредита, дата начала, дата конца, таблица значений, куда выгрузятся данные. В ТЗ 4 колонки - основное средство (тип. спр. Необоротные активы), счет дебета, счет кредита, сумма.
Вопрос - как сделать выборку с проводок и выгрузить в таблицу значений в 1с77. заранее благодарен. Удачи в делах и хороших выходных
1 Mikeware
 
24.05.19
15:07
а что, документацию нынче читать не принято?
2 alpha78
 
24.05.19
15:10
такого не встретил
3 Йохохо
 
24.05.19
15:12
ТС не задал ни одного вопроса, опубликовал  анонс статьи, поблагодарил и попрощался. Цезарь^2
4 alpha78
 
24.05.19
15:13
и что это было?
5 Mikeware
 
24.05.19
15:15
(4) "Море!"©
6 alpha78
 
24.05.19
15:16
никто не сказал по существу , не хотите не отвечайте, зачем ерунду говорить
7 Mikeware
 
24.05.19
15:17
(6) что в п.1. не по существу?
что _ты_ сделал, чтоб  решить задачу?
8 alpha78
 
24.05.19
15:17
я же говорю новичок в 1с77
9 Mikeware
 
24.05.19
15:18
(8) это понятно.
а сделал-то - что?
10 Кодер
 
24.05.19
15:19
firststeps.ru
11 alpha78
 
24.05.19
15:19
сделал форму обработки
12 Mikeware
 
24.05.19
15:20
(11) замечательно. теперь получай данные
13 alpha78
 
24.05.19
15:39
а как получить данные
14 trooba
 
24.05.19
15:48
Таб.УдалитьСтроки();
    
    Опер = СоздатьОбъект("Операция");
    Опер.ВыбратьОперации(НачДата, КонДата); //заданный период
    
    Пока Опер.ПолучитьОперацию()=1 Цикл
        
        Опер.ВыбратьПроводки();
        
        Пока Опер.ПолучитьПроводку()=1 Цикл
            
            Состояние("Формируется дата: "+Опер.ДатаОперации);
            
            Таб.НоваяСтрока();
            
            Таб.BUCode=BUCode;
            Таб.EntryType="Оборот за период";
            Таб.OrganizationName=OrganizationName;
            Таб.OrganizationCode=OrganizationCode;
            //Таб.DocType="";
            //Таб.DocNumber="";
            
            DocDate=?(СтрДлина(Опер.ДатаОперации)=8,Лев(Опер.ДатаОперации,6)+"20"+Сред(Опер.ДатаОперации,7,2),Опер.ДатаОперации);
            
            
            
            Если Опер.Дебет.Счет.КоличествоСубконто()>0 Тогда
                
                Если ТипЗначенияСтр(Опер.Дебет.Субконто(1))="Справочник" Тогда
                    
                    Таб.Subcount1Dt=Опер.Дебет.Субконто(1).Наименование;
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Дебет.Субконто(1))="Документ" Тогда
                    
                    Таб.Subcount1Dt=СокрЛП(Опер.Дебет.Субконто(1).ТекущийДокумент());
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Дебет.Субконто(1))="Перечисление" Тогда
                    
                    Таб.Subcount1Dt=Опер.Дебет.Субконто(1);    
                    
                КонецЕсли;
                
            КонецЕсли;
            
            Если Опер.Дебет.Счет.КоличествоСубконто()>1 Тогда
                
                Если ТипЗначенияСтр(Опер.Дебет.Субконто(2))="Справочник" Тогда
                    
                    Таб.Subcount2Dt=Опер.Дебет.Субконто(2).Наименование;
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Дебет.Субконто(2))="Документ" Тогда
                    
                    Таб.Subcount2Dt=СокрЛП(Опер.Дебет.Субконто(2).ТекущийДокумент());
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Дебет.Субконто(2))="Перечисление" Тогда
                    
                    Таб.Subcount2Dt=Опер.Дебет.Субконто(2);    
                    
                КонецЕсли;
                
            КонецЕсли;
            
            Если Опер.Дебет.Счет.КоличествоСубконто()>2 Тогда
                
                Если ТипЗначенияСтр(Опер.Дебет.Субконто(3))="Справочник" Тогда
                    
                    Таб.Subcount3Dt=Опер.Дебет.Субконто(3).Наименование;
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Дебет.Субконто(3))="Документ" Тогда
                    
                    Таб.Subcount3Dt=СокрЛП(Опер.Дебет.Субконто(3).ТекущийДокумент());
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Дебет.Субконто(3))="Перечисление" Тогда
                    
                    Таб.Subcount3Dt=Опер.Дебет.Субконто(3);    
                    
                КонецЕсли;
                
            КонецЕсли;
            
            Таб.AccountDt=Опер.Дебет.Счет.Код;
            
            Таб.AccountNameDt=Опер.Дебет.Счет.Наименование;
            
            Если Опер.Кредит.Счет.КоличествоСубконто()>0 Тогда
                
                Если ТипЗначенияСтр(Опер.Кредит.Субконто(1))="Справочник" Тогда
                    
                    Таб.Subcount1Ct=Опер.Кредит.Субконто(1).Наименование;
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Кредит.Субконто(1))="Документ" Тогда
                    
                    Таб.Subcount1Ct=СокрЛП(Опер.Кредит.Субконто(1).ТекущийДокумент());
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Кредит.Субконто(1))="Перечисление" Тогда
                    
                    Таб.Subcount1Ct=Опер.Кредит.Субконто(1);    
                    
                КонецЕсли;
                
            КонецЕсли;
            
            Если Опер.Кредит.Счет.КоличествоСубконто()>1 Тогда
                
                Если ТипЗначенияСтр(Опер.Кредит.Субконто(2))="Справочник" Тогда
                    
                    Таб.Subcount2Ct=Опер.Кредит.Субконто(2).Наименование;
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Кредит.Субконто(2))="Документ" Тогда
                    
                    Таб.Subcount2Ct=СокрЛП(Опер.Кредит.Субконто(2).ТекущийДокумент());
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Кредит.Субконто(2))="Перечисление" Тогда
                    
                    Таб.Subcount2Ct=Опер.Кредит.Субконто(2);    
                    
                КонецЕсли;
                
            КонецЕсли;
            
            Если Опер.Кредит.Счет.КоличествоСубконто()>2 Тогда
                
                Если ТипЗначенияСтр(Опер.Кредит.Субконто(3))="Справочник" Тогда
                    
                    Таб.Subcount3Ct=Опер.Кредит.Субконто(3).Наименование;
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Кредит.Субконто(3))="Документ" Тогда
                    
                    Таб.Subcount3Ct=СокрЛП(Опер.Кредит.Субконто(3).ТекущийДокумент());
                    
                ИначеЕсли ТипЗначенияСтр(Опер.Кредит.Субконто(3))="Перечисление" Тогда
                    
                    Таб.Subcount3Ct=Опер.Кредит.Субконто(3);    
                    
                КонецЕсли;
                
            КонецЕсли;
            
            Таб.DocNumber=Опер.Документ.НомерДок;
            Таб.DocDate=DocDate;
            Таб.DocType=Опер.Документ.Вид();
            //    Таб.DocNumber=Опер.Документ.НомерДок;
            
            Таб.AccountCt=Опер.Кредит.Счет.Код;
            Таб.AccountDt=Опер.Дебет.Счет.Код;
            
            Таб.AccountNameCt=Опер.Кредит.Счет.Наименование;
            Таб.AccountNameDt=Опер.Дебет.Счет.Наименование;
            
            Таб.SumInCurrency="";
            Таб.VATSumInCurrency="";
            Таб.SumRUB=Опер.Сумма;
            Таб.VATSumRUB=0;
            Таб.VATRate="";
            Таб.Scenario="Факт";
            
        КонецЦикла;
        
    КонецЦикла;
15 alpha78
 
24.05.19
15:53
trooba спасибо большое ты человечище!!! удачи
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший