7.7 Выбор Субконто в БИ

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Cooper-Mixal, 13 авг 2008.

  1. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Добрый день!!!

    Вывести в отчет все остатки по бух.итогам с определенного склада (место хранения)

    Как мне вывести остатки по всем материалам на этом складе, а не по одному материалу?
    Я понимаю что в цикле надо организовать смену материала. Что-то не получается

    Код:
    ОстатокБухНач = 0;
    ОстатокБухКон = 0;
    ПриходБух     = 0;
    РасходБух     = 0;
    
    БИ10 = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ10.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,);
    БИ10.ИспользоватьСубконто(ВидыСубконто.Материалы,Материал,); // Здесь надо менять материал
    БИ10.ВыполнитьЗапрос(ВыбНачПериода,ВыбКонПериода,"10",,,,,"К");
    БИ10.ВыбратьСчета();
    Пока БИ10.ПолучитьСчет()=1 Цикл
    БИ10.ВыбратьСубконто(1);
    Пока БИ10.ПолучитьСубконто(1)=1 Цикл
    БИ10.ВыбратьСубконто(2);
    Пока БИ10.ПолучитьСубконто(2)=1 Цикл 
    ОстатокБухНач = БИ10.СНД("К");
    ОстатокБухКон = БИ10.СКД("К");
    ПриходБух     = БИ10.ДО("К");
    РасходБух     = БИ10.КО("К");  
    Таб.ВывестиСекцию("Строка7");	
    КонецЦикла;
    КонецЦикла;	
    КонецЦикла;
    
    
    
    Спасибо!
  2. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    вместо
    Код:
    БИ10.ИспользоватьСубконто(ВидыСубконто.Материалы,Материал,); 
    
    надо
    Код:
    БИ10.ИспользоватьСубконто(ВидыСубконто.Материалы); 
    
  3. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Нет, так не катит. А как я буду этот материал дальше использовать?
    Материал.Номенклатура и т.д.

    Материал должен указываться!
  4. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    А вообще-то ты прав!!!!

    Обращаться к объекту можно в цикле: БИ10.Субконто(2);


    Спасибо!
  5. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Добрый день!!!

    Вопрос по этой же теме!!!

    Не работает вот этот кусок кода:

    Не выводит по указанному "материалу" БИ.
    Немогу понять в чем дело!
    Если убираю цикл и условие, то выводит все материалы!!!

    Код:
    Для i = 1 По ТЗ1.КоличествоСтрок()  Цикл    
    Если ТЗ1.ПолучитьЗначение(i,"номенк") <> 0 тогда
    Материал = СокрЛП(ТЗ1.ПолучитьЗначение(i,"мат"));
    
    БИ10 = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ10.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,);
    БИ10.ИспользоватьСубконто(ВидыСубконто.Материалы,Материал,);
    БИ10.ВыполнитьЗапрос(ВыбНачПериода,ВыбКонПериода,"10",,,,,"К");
    БИ10.ВыбратьСчета();
    Пока БИ10.ПолучитьСчет()=1 Цикл
    БИ10.ВыбратьСубконто(1);
    Пока БИ10.ПолучитьСубконто(1)=1 Цикл
    БИ10.ВыбратьСубконто(2);
    Пока БИ10.ПолучитьСубконто(2)=1 Цикл  
    ОстатокБухНач = БИ10.СНД("К");
    ОстатокБухКон = БИ10.СКД("К");
    ПриходБух     = БИ10.ДО("К");
    РасходБух     = БИ10.КО("К"); 
    Таб.ВывестиСекцию("Строка9"); //Не выводит строку
    КонецЦикла;    
    КонецЦикла;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;    
    
    
  6. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    Код:
    СЗ = СоздатьОбъект("СписокЗначений");
    ТЗ1.ВыбратьСтроки();
    Пока ТЗ1.ПолучитьСтроку = 1 Цикл
    СЗ.ДобавитьЗначение(ТЗ1.номенк);
    КонецЦикла;
    
    БИ10 = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ10.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,);
    БИ10.ИспользоватьСубконто(ВидыСубконто.Материалы, СЗ);
    БИ10.ВыполнитьЗапрос(ВыбНачПериода,ВыбКонПериода,"10",,,,,"К");
    БИ10.ВыбратьСчета();
    Пока БИ10.ПолучитьСчет()=1 Цикл
    БИ10.ВыбратьСубконто(1);
    Пока БИ10.ПолучитьСубконто(1)=1 Цикл
    БИ10.ВыбратьСубконто(2);
    Пока БИ10.ПолучитьСубконто(2)=1 Цикл  
    ОстатокБухНач = БИ10.СНД("К");
    ОстатокБухКон = БИ10.СКД("К");
    ПриходБух     = БИ10.ДО("К");
    РасходБух     = БИ10.КО("К"); 
    Таб.ВывестиСекцию("Строка9"); //Не выводит строку
    КонецЦикла;    
    КонецЦикла;
    КонецЦикла;    
    
    
  7. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Всё классно, но она выводит все значения, хотя я делаю условие!


    Код:
    СЗ = СоздатьОбъект("СписокЗначений");
    ТЗ1.ВыбратьСтроки();
    Пока ТЗ1.ПолучитьСтроку() = 1 Цикл  
    Если ТЗ1.номенк <> 0 тогда        
    СЗ.ДобавитьЗначение(ТЗ1.Номенк);  
    КонецЕсли;
    КонецЦикла;
    
    
  8. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    а че это у тебя за условие? херня это какая-то... в ТЗ1.Номенк как я понял у тебя хранится номенклатура... и она разумеется не = 0... поэтому в список все и попадает... а если ты хочешь проверить на пустое значение, то используй оператор ПустоеЗначение()...
  9. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Не-не, я просто часть кода написал, вообщем у меня считывается номенклатура из файла. Её заносим в ТЗ, в другую ТЗ1 мы заносим всю номенклатуру по складу 1. Далее мы выбираем все номенклатуры, которые есть в ТЗ и обнуляем их в ТЗ1, потому что в отчет выводится по две одинаковых номенклатуры. Поэтому у меня условие и стоит!

    Код:
    	  
    ТЗ1.ВыбратьСтроки();
    ТЗ.ВыбратьСтроки(); 
    
    Для i = 1 По ТЗ1.КоличествоСтрок()  Цикл   
    номенк1 = ТЗ1.ПолучитьЗначение(i,"номенк");
    Для j = 1 По ТЗ.КоличествоСтрок()  Цикл   
    номенк2 = ТЗ.ПолучитьЗначение(j,"номенк");
    Если номенк1 = номенк2 тогда 
    ТЗ1.УстановитьЗначение(i,"номенк",0); 
    КонецЕсли;
    КонецЦикла; 
    КонецЦикла;
    
    
  10. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    ниче не понял... давай так... кусок кода который я тебе дал работает? только надо сформировать СЗ с твоими условиями? если да - тогда давай рассказывай подробно чего там у тебя за чудеса происходят и че надо...
  11. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Отчет сравнение остатков по БухИтогам.
    Мне присылают файл.xls со склада. Из него читаем номенклатуру, наименование материала, остатки. Соответственно выбираем у себя из базы по этому складу этот же материал и сравниваем остатки.

    Теперь суть вот в чем, помимо материала из файла, нужно показать остатки по всем остальным материалам в базе по этому складу! Но надо исключить повторные строки. Я думал что это часик поразбираться, оказалось дольше! :)
  12. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Единственное что не получается, появляются дублирующие строки!!!
  13. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    Всё получилось!!!
    Единственное что не получается это единицу измерения получить.
    Как к ней можно обратится?
    Код:
    БИ10 = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ10.ИспользоватьСубконто(ВидыСубконто.МестаХранения,МестоХранения,);
    БИ10.ИспользоватьСубконто(ВидыСубконто.Материалы,,);
    БИ10.ВыполнитьЗапрос(ВыбНачПериода,ВыбКонПериода,"10",,,,,"К");
    БИ10.ВыбратьСчета();
    Пока БИ10.ПолучитьСчет()=1 Цикл
    БИ10.ВыбратьСубконто(1);
    Пока БИ10.ПолучитьСубконто(1)=1 Цикл
    БИ10.ВыбратьСубконто(2);
    Пока БИ10.ПолучитьСубконто(2)=1 Цикл  
    ОстатокБухНач = БИ10.СНД("К");
    ОстатокБухКон = БИ10.СКД("К");
    ПриходБух     = БИ10.ДО("К");
    РасходБух     = БИ10.КО("К"); 
    ТЗ1.Новаястрока();
    ТЗ1.номенк = БИ10.Субконто(2).НоваяНоменклатура;
    ТЗ1.Матер = БИ10.Субконто(2).Наименование;  
    ТЗ1.ОстатокБН =  ОстатокБухНач;
    ТЗ1.ОстатокБК = ОстатокБухКон;
    ТЗ1.ПриходБ = ПриходБух;
    ТЗ1.РасходБ = РасходБух; 
    ТЗ1.едизмер = ???????; 
    КонецЦикла;
    КонецЦикла;	
    КонецЦикла;    
    
    
    
  14. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    БИ10.Субконто(2).ЕдиницаИзмерения
  15. TopicStarter Overlay
    Cooper-Mixal
    Offline

    Cooper-Mixal Опытный в 1С

    Регистрация:
    29 июн 2008
    Сообщения:
    193
    Симпатии:
    0
    Баллы:
    26
    БИ10.Субконто(2).ЕдиницаИзмерения - если так указывал, то выводился код ед.измерения.

    БИ10.Субконто(2).ЕдиницаИзмерения.Наименование - а вот так всё ок!!!

    Спасибо за внимание!
  16. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    видимо у тебя в справочнике стоит основной вид представления в виде кода, а не в виде наименования

Поделиться этой страницей