Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 15:05

Выберите остатки по счёту в разрезе 3-х справочников

Автор d325, 10 дек 2010, 17:47

0 Пользователей и 1 гость просматривают эту тему.

d325

Дали мне такое задание на проверку:

А. Выберите остатки по счёту 1211 в разрезе Контрагентов, Оснований и Видов доходов с учётом иерархии.  В "Контрагентах" выгрузить Код, наименование, Полное наименование (которое является периодическим) и список оснований, по которым имеются остатки. Формат файла может быть любым...

Насколько я понял все надо в одну таблицу уместить. Но я не понял как связать сразу три справочника, причем Виды доходов не имеет с 2мя другими ничего общего. Может надо между строк читать. Помогите, товарищи программисты.

progmikon

Расшифруйте, что это у вас за счет такой? Его аналитика в плане счетов.

d325

Наверно опечатка у афтара, вероятно счет 1210 - Краткосрочная дебиторская задолженность покупателей и заказчиков (субконто 1 - Контрагенты, 2 - Основания, 3го нет).  В конфигурации Бухгалтерский учет для Казахстана (7.70.254). Из-за стран, по логике, должны различаться только счета и константы.

DenPlus

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

БИ.ВыполнитьЗапрос(началопериода, конецПериода, "1211");

Пока БИ ПолучитьСубконто(1) Цикл
//Здесь контрагенты
Пока БИ ПолучитьСубконто(2) Цикл
//инфа по второму субконто
Пока БИ ПолучитьСубконто(3) Цикл
//инфа по третьему субконто
КонецЦикла;
КонецЦикла;
КонецЦикла;


d325

Спасибо DenPlus за помощь

Оказалось, что у автора есть счет 1211, а у меня нет.

А если выполнить то же самое, только в разрезе материалов и складов (счет 1310) и записать в dbf с именем "ИмяФайлаБазы"  то получится:

Файл = создатьОбъект("XBASE");

Файл.ДобавитьПоле("Kod","N",8,0);
Файл.ДобавитьПоле("Name","S",100,0);
Файл.ДобавитьПоле("Sklad","S",100,0);
Файл.ДобавитьПоле("Cena","N",19,2);
Файл.ДобавитьПоле("Kolvo","N",10,0);


Если ИмяФайлаБазы <>"" Тогда
   
Файл.СоздатьФайл(ИмяФайлаБазы);   
     
БухИтоги = СоздатьОбъект( "БухгалтерскиеИтоги");        
   
Счет = СчетПоКоду("131");
       
                       
Спр = СоздатьОбъект("Справочник.Материалы");   
Спр.ВыбратьЭлементы(1);

   
   БухИтоги.ИспользоватьСубконто(ВидыСубконто.Материалы,,1);
   БухИтоги.ИспользоватьСубконто(ВидыСубконто.МестаХранения,,1);
   БухИтоги.ВыполнитьЗапрос(ДатаДок,ДатаДок,Счет , , , 1,,"СК" );
   БухИтоги.ВыбратьСубконто(1); 
                                         
      
Пока БухИтоги.ПолучитьСубконто(1)=1 Цикл 
   
   БухИтоги.ВыбратьСубконто(2);
   
    Пока БухИтоги.ПолучитьСубконто(2)=1 Цикл
      
        Спр.ПолучитьЭлемент();      
   
 
  Файл.Добавить();
   Файл.Kod = Спр.Код;
   Файл.Name = БухИтоги.ПредставлениеСубконто(ВидыСубконто.Материалы);
   Файл.Sklad = БухИтоги.ПредставлениеСубконто(ВидыСубконто.МестаХранения);
   
      Если БухИтоги.СКД("К")>0 Тогда
         Файл.Cena = Окр(БухИтоги.СКД("С")/БухИтоги.СКД("К"),2);
      КонецЕсли ;
   
   Файл.Kolvo = БухИтоги.СКД("К");
  Файл.Записать();
  КонецЦикла;
КонецЦикла;

Файл.ЗакрытьФайл();


 

DenPlus

Спр = СоздатьОбъект("Справочник.Материалы");   
Спр.ВыбратьЭлементы(1);

Это вроде лишнее. Дело в том, что третий параметр в "использоватьСубконто()" равный единичке, уже разворачивает итоги в разрезе материалов.

Полученный в спр элемент в общем случае будет не соответствовать "бухитогу" полученного для конктетного материала.

Когда мы хотим получить бухитог по конкретному спр, необходимо данный спр передавать во второй параметр запроса, а в третьем указывать двоечку т.е отбирать по данному субконто:

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Материалы,спр.текущийЭлемент(),2);

Кстати посмотрите, возможно переменная БухИтоги уже объявлена в глобальном модуле как экспортная.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск