Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Можно сделать выборку по нескольким видам субконто?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Vofka
Привет!

Есть отчет:

Процедура Сформировать()

    Если Проверки() = 0 Тогда
        Возврат;
    КонецЕсли;
    
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
    
    Ит.ИспользоватьСубконто(ВидСубконто, , 1, 0);
    
    Ит.ИспользоватьПланСчетов(ПланыСчетов.Основной);
    Ит.ВключатьСубсчета(-1, 0);
    Ит.Опции(0, 0);
    Ит.ВыполнитьЗапрос(НачДата, КонДата, СпСчетов, "", , 3, 1);
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Шапка");
    
    Ит.ВыбратьСубконто(1,,,,,,);
    Пока Ит.ПолучитьСубконто(1,,) = 1 Цикл
        Таб.ВывестиСекцию("Контрагент");
        Ит.ВыбратьСчета(,,,);
        Пока Ит.ПолучитьСчет(,) = 1 Цикл
            Таб.ВывестиСекцию("Счет");
        КонецЦикла;
    КонецЦикла;
    
    Таб.ВывестиСекцию("Итоги");
    
    Таб.Опции(0, 0, 5);
    Таб.ТолькоПросмотр(1);
    Таб.Показать();
КонецПроцедуры


В рексизите ВидСубконто - указан вид субконто, например, контрагенты.
Мне надо, чтобы с контрагентами происходила выборка по сотрудникам. Я сделал реквизит ВидСубконто2, в котором указал Сотрудники и после строчки
Ит.ИспользоватьСубконто(ВидСубконто, , 1, 0);
добавил
Ит.ИспользоватьСубконто(ВидСубконто2, , 1, 0);
, но в результате получил пустой отчет
1Cv77
Если ты добавил выборку еще по одному субконто, тогда нужно еще и:
Ит.ВыбратьСубконто(2,,,,,,);
И все остальное, т.е. цикл
Vofka
1Cv77, так это не 2-е субконто этих счетов. Это так же 1-е субконто. Просто у счетов по которым выбираются итоги 1-е субконто может быть нескольких видов
1Cv77
Цитата(Vofka @ 23.07.10, 11:38) необходимо зарегистрироваться для просмотра ссылки
1Cv77, так это не 2-е субконто этих счетов. Это так же 1-е субконто. Просто у счетов по которым выбираются итоги 1-е субконто может быть нескольких видов


Конфа какая???
и по какому счету отчет?
Vofka
Та конфа любая, та и счета (их несколько) любые.
Ну например конфа бухия, счета "361, 631, 372".
1Cv77
Что-то я не видел, что-бы субконто было из разных справочников?????? 09000000.gif
Vofka
Есть 2 вида субконто: Контрагенты и Сотрудники. Есть счета 361, 631 у которых 1-е субконто Контрагенты. Есть счет 372, у которого 1-е субконто Сотрудники. И вот мне надо итоги по всем этим счетам с разверткой по субконто и счетам, например:

ЧП "Контора"...100..100 - это контрагент
361.................50....50
631.................50....50

Васильев. В. В. ..250..250 - это сотрудник
372...................250..250
1Cv77
Ну тогда самый простой выход....
прокручивать цикл два раза
только сначала переназначить субконто
1Cv77
Ну где то так:
    Если Проверки() = 0 Тогда
        Возврат;
    КонецЕсли;
    
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
    
    Ит.ИспользоватьСубконто(ВидСубконто, , 1, 0);
    
    Ит.ИспользоватьПланСчетов(ПланыСчетов.Основной);
    Ит.ВключатьСубсчета(-1, 0);
    Ит.Опции(0, 0);
    Ит.ВыполнитьЗапрос(НачДата, КонДата, СпСчетов, "", , 3, 1);
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Шапка");
    
    Ит.ВыбратьСубконто(1,,,,,,);
    Пока Ит.ПолучитьСубконто(1,,) = 1 Цикл
        Таб.ВывестиСекцию("Контрагент");
        Ит.ВыбратьСчета(,,,);
        Пока Ит.ПолучитьСчет(,) = 1 Цикл
            Таб.ВывестиСекцию("Счет");
        КонецЦикла;
    КонецЦикла;
  
    Таб.ВывестиСекцию("Итоги");

    Ит.ИспользоватьСубконто(ВидСубконто2, , 1, 0);
    
    Ит.ИспользоватьПланСчетов(ПланыСчетов.Основной);
    Ит.ВключатьСубсчета(-1, 0);
    Ит.Опции(0, 0);
    Ит.ВыполнитьЗапрос(НачДата, КонДата, СпСчетов, "", , 3, 1);

    Ит.ВыбратьСубконто(1,,,,,,);
    Пока Ит.ПолучитьСубконто(1,,) = 1 Цикл
        Таб.ВывестиСекцию("Контрагент");
        Ит.ВыбратьСчета(,,,);
        Пока Ит.ПолучитьСчет(,) = 1 Цикл
            Таб.ВывестиСекцию("Счет");
        КонецЦикла;
    КонецЦикла;

    
    Таб.Опции(0, 0, 5);
    Таб.ТолькоПросмотр(1);
    Таб.Показать();
Vofka
Про этот вариант я думал. Но это ж не совсем то wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.