Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Расчет БИ по каждому контрагенту в разрезе 36 и 63 счетов          
TNR Подменю пользователя
сообщение 12.02.13, 13:46
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 1 раз
Рейтинг: 0

Друзья, срочно нужна ваша помощь! Нужно рассчитать дебет/кредит на начало и конец периода для каждого контрагента с справочника контрагентов в разрезе 361, 362, 631 и 632 счетов. Я написал отчет со следующим алгоритмом:
1. Перебираю циклом справочник контрагентов.
2. Для каждого контрагента в цикле перебираю нужные 4 счета
3. Для каждого счета делаю запрос к БИ.

//....
Для прклСчет=1 По 4 Цикл
        
Если прклСчет=1 Тогда Счет="361";
        
    би1 = СоздатьОбъект("БухгалтерскиеИтоги");
    би1.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ТекКонтрагент,,1);
    би1.использоватьсубконто(видысубконто.заказы,,,1);
    би1.ВыполнитьЗапрос(Дата1,Дата2,Счет,,,,,);
        би1.ВыбратьСубконто();
    
    Пока би1.ПолучитьСубконто()=1 Цикл  
        ЗадолженностьН = Строка(би1.Субконто(2));
        ДебитовоеСальдо=би1.СНД(Счет);
        КредитовоеСальдо=би1.СНК(Счет);
        ДебитовоеСальдоКонец=би1.СКД(Счет);
        КредитовоеСальдоКонец=би1.СКК(Счет);
    КонецЦикла;
        
ИначеЕсли прклСчет=2 Тогда Счет="362";
    би2 = СоздатьОбъект("БухгалтерскиеИтоги");
//....
//и т.д.


Оно работает и все правильно считает, но работает МЕДЛЕННО А учитывая, что в справочнике 15000 контрагентов и расчет нужен поквартально за несколько лет, то результаты ждать по сутках... (( Подскажите, пожалуйста, можно ли как-то упростить код и ускорить расчет????? Спасибо!

Спасибо сказали: awp,

alex040269 Подменю пользователя
сообщение 12.02.13, 14:57
Сообщение #2

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

би1 = СоздатьОбъект("БухгалтерскиеИтоги");
    би1.ИспользоватьСубконто(ВидыСубконто.Контрагенты,ТекКонтрагент,,1);
    би1.использоватьсубконто(видысубконто.заказы,,,1);
    би1.ВыполнитьЗапрос(Дата1,Дата2,"361, 362, 631, 632 ",,,,,);
        би1.ВыбратьСубконто();
       Пока би1.ПолучитьСубконто()=1 Цикл  
            би1.ВыбратьСчета();
  
            Пока би1.ПолучитьСчет() = 1 Цикл
                   //что-то сделать....


        ЗадолженностьН = Строка(би1.Субконто(2));
        ДебитовоеСальдо=би1.СНД(Счет);
        КредитовоеСальдо=би1.СНК(Счет);
        ДебитовоеСальдоКонец=би1.СКД(Счет);
        КредитовоеСальдоКонец=би1.СКК(Счет);
    КонецЦикла;


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Спасибо сказали: Домовик,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 02.05.24, 1:07
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!