Вход | Регистрация


1С:Предприятие ::

Метки: 

Помогите с алгоритмом кода!!! Плиз!!!

Я
   Favorit
 
12.04.04 - 08:19
Народ... помогите кто может! Хотя бы структурой а то я со своими программерами запарился!!!
Короче речь об учете материалов! Поступление происходит стандартно, а вот при списании добавлено еще одно субконто! (на основании чего происходит списание), так вот! Нужно сделать отчет в котором были бы начальные и конечные остатки по материалам, а так жеразвернутая часть списания как раз по этому введенному субконто!
Тока вот БИ ограничить нужным мне субконто то получается что прога не видит нормальных остатков и наоборот! Как быть? никто не знает?
 
  Рекламное место пустует
   gr13
 
1 - 12.04.04 - 08:34
Читай правила:
http://www.forum.mista.ru/rules.htm

Тема должна отражать суть сообщения. (с) Волшебник
   Favorit
 
2 - 12.04.04 - 08:38
Спасибо а напоминание! :)) не остри пожалуйсто!!!!!
Я же прошу про алгоритм посоветовать а не про голых женщин...
Лучьше бы чего дельного сказал!
   SiMazx
 
3 - 12.04.04 - 09:26
Тэээкс... Давай по порядку... Субконто - это реквизит счета, соответственно фраза - "поступление происходит стандартно, а вот при списании добавлено еще одно субконто"... ммм... не очень понятно...
Ты говоришь про остатки(!) в разрезе этого субконто? Как могут быть остатки(!) в разрезе основания списания(!)?
   SiMazx
 
4 - 12.04.04 - 09:29
Подробнее давай... Субконто вида списания подключено к счету учета материалов или счету списания затрат? Первое нелогично, при втором варианте  - ОСТАТКОВ в разрезе этого субконто ты не получишь.
Так что, давай расписывай, какие счета, какие субконто, какие проводки делаются...
   Favorit
 
5 - 12.04.04 - 09:34
Ага!!! Именно!!! Ты правильно понял!!!
Короче, в отчет нужно сделать выборку по этому левому субконто! Для этого он и планировался!
Ограничение БИ сделано... и вот тут то и нету остатков так как они в разрезе этого субконто!
А их нужно как-то отображать!
Я уже вторые БИ в коде залепил... которые используют для выпорки "нормалтные" аналитические субконто! тогда возникает проблема с формированием таблицы! Вот...
   Favorit
 
6 - 12.04.04 - 09:41
Ага!!! Именно!!! Ты правильно понял!!!
Короче, в отчет нужно сделать выборку по этому левому субконто! Для этого он и планировался!
Ограничение БИ сделано... и вот тут то и нету остатков так как они в разрезе этого субконто!
А их нужно как-то отображать!
Я уже вторые БИ в коде залепил... которые используют для выпорки "нормалтные" аналитические субконто! тогда возникает проблема с формированием таблицы! Вот...
   SiMazx
 
7 - 12.04.04 - 09:51
Ээээй!! Есть кто дома? Из того, что я попросил, ты мне какую-то информацию предоставил?
   Favorit
 
8 - 12.04.04 - 10:20
Ох... сейчас...
Субконто4 автоматически включается при выборе в документе Перемещение ТМЦ
При этом проводки: Д 20 Субконто: Вид номенклатуры, Затраты на производство, Подразделения, и Договора(новое субконто), и кредит 10-х счетов Субконто номенклатура и склад!
Так вот... после этой операции, остатки в отчете надо показать в полном объеме номенклатуры, а расходование в разрезе этого нового субконто договора!
   SiMazx
 
9 - 12.04.04 - 10:31
Таааак... Что мы имеем...
Приход: Д - 10.субсчет,Субконто: Номенклатура, Склад      
        К - не важно.. 
Расход: Д - 20, Субконто - Вид ном, Затраты,Подр,Договора;   
        К - 10, Субконто: Номенклатура, Склад;

Остатки, судя по логике, ты хочешь получать по 10 счету...
Но по 10 счету аналитика у тебя ведется только по номенклатуре и складу, соответственно ОСТАТКИ товаров ты можешь получить только в этих двух разрезах, и ВСЕ!!!
Какие тебе еще остатки нужны?
Чот я подозреваю, что все-таки то, что ты называешь остатками есть САЛЬДО по счету, и тебе нужно детализированное САЛЬДО по 20 счету...
Развей мои сомнения, а то спать спокойно не буду...
   Favorit
 
10 - 12.04.04 - 10:40
Мне нужно в !!!ОДНОМ ОТЧЕТЕ!!! получить общий остаток по 10 счету и кредитовый оборот по этому счету с использованием 4 субконто!!!
Запутались в непосредственно алгоритме реализации подобной выборки!
Потому что приходиться использовать 2 разных объекта бухгалтерские итоги!
Один в разрезе 4субконто(детализированный кредитовый оборот по 10 счету), а второй без ограничения для вывода реальных остатков!
 
  Рекламное место пустует
   Favorit
 
11 - 12.04.04 - 10:53
В трех словах,... дебетовый оборот по 10 счету должен быть без ограничения, а кредитовый должен отображаться в разрезе субконто4
   GrayT
 
12 - 12.04.04 - 11:11
Четвертое субконто? А оно тебе надо? Заметь стандартное закрытие месяца по 20 накроеться. Особенно если ты 4 субконто на 20 не оборотным сделаешь. А нельзя твои договора в спр. Затрат затащить?
   SiMazx
 
13 - 12.04.04 - 11:18
Нууу... Тогда должно быть что-то вроде....

БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
БИ.ИспользоватьКорСубконто(ВидыСубконто.ВидНоменклатуры);
БИ.ИспользоватьКорСубконто(ВидыСубконто.ЗатратыНаПроизводство);
БИ.ИспользоватьКорСубконто(ВидыСубконто.Подразделения);
БИ.ИспользоватьКорСубконто(ВидыСубконто.Договора);
БИ.ВыполнитьЗапрос(ДатаНач, ДатаКон,"10");
БИ.ВыбратьКорСчета();
БИ.ПолучитьКорСчет(СчетПоКоду("20"));
БИ.ВыбратьСубконто();
Пока БИ.ПолучитьСубконто()=1 Цикл
    НачОстаток = БИ.СНД();
    БИ.ВыбратьКорСчета();
    БИ.ПолучитьКорСчет(СчетПоКоду("20"));
    БИ.ВыбратьКорСубконто(1);
    Пока БИ.ПолучитьКорСубконто(1) = 1 Цикл
        Пока БИ.ПолучитьКорСубконто(2) = 1 Цикл
             .... Трям трям трям еще два цикла

             Оборот_20_10_По_Субконто = БИ.КО(); 

        КонецЦикла;
    КонецЦикла;
КонецЦикла;
   SiMazx
 
14 - 12.04.04 - 11:20
Пардон муа, лишние строки не удалил, вот итоговая рыба...


БИ.ИспользоватьСубконто(ВидыСубконто.Материалы);
БИ.ИспользоватьКорСубконто(ВидыСубконто.ВидНоменклатуры); 
БИ.ИспользоватьКорСубконто(ВидыСубконто.ЗатратыНаПроизводство); 
БИ.ИспользоватьКорСубконто(ВидыСубконто.Подразделения); 
БИ.ИспользоватьКорСубконто(ВидыСубконто.Договора); 
БИ.ВыполнитьЗапрос(ДатаНач, ДатаКон,"10"); 

Пока БИ.ПолучитьСубконто()=1 Цикл 
   НачОстаток = БИ.СНД(); 
   БИ.ВыбратьКорСчета(); 
   БИ.ПолучитьКорСчет(СчетПоКоду("20")); 
   БИ.ВыбратьКорСубконто(1); 
   Пока БИ.ПолучитьКорСубконто(1) = 1 Цикл 
       Пока БИ.ПолучитьКорСубконто(2) = 1 Цикл 
            .... Трям трям трям еще два цикла 

            Оборот_20_10_По_Субконто = БИ.КО(); 

       КонецЦикла; 
   КонецЦикла; 
КонецЦикла;
   Favorit
 
15 - 12.04.04 - 11:20
Нет... Закрытие 20 счета проходит отлично! Это уже предусмотрено! и справочник уже готов и  используется!!! Есдинственная заморочка ослалась в том, что отчет не могу правильно составить!!! :(((( БЛИН!!!
   SnarkHunter
 
16 - 12.04.04 - 11:22
Эх, плин... А еще с сертификатами...
   SiMazx
 
17 - 12.04.04 - 11:22
Ну и еще там вроде не КО(), а КорДО()... И не БИ.СНД, а БИ.ДО()...
   Favorit
 
18 - 12.04.04 - 11:26
SiMazx: Слушай.. спасибо большое... я об этом не думал.. Свежая идея!!! Ща попробую! С меня Пиво!
SnarkHunter: У меня мозги плавяться уже! и после сертификации тоже!
Я просто на одном варианте зациклился и не смог придумать иного выхода вот!!!
   Композитор
 
19 - 12.04.04 - 11:29
(18) Вы очень возбуждены. Примите успокоительное.
   Favorit
 
20 - 12.04.04 - 11:32
Композитор: На работе не разрешается принимать! :(((
:))%%)))))))))))))))))))))))))))))))))))))))))))))))
   Favorit
 
21 - 12.04.04 - 12:47
БИ.ИспользоватьКорСубконто(ВидыСубконто.Договора); 

Этм опять остатки ограничиваюся!:(((
Я сразу не понял у меня типо того же был вариант, тока циклы по другому шли...
   SiMazx
 
22 - 12.04.04 - 13:17
В смысле остатки ограничиваются?... Какие остатки? По 10 счету? Или все таки речь ведем про обороты с 20?
   Favorit
 
23 - 12.04.04 - 13:20
эээ... ну да, по 10! по материалам! отображаются только те у которых есть это долбаное КорСубконто!
   Favorit
 
24 - 12.04.04 - 13:32
Процедура Сформировать_Колонки(Ит, Таб, Стр)
    Таб.ВывестиСекцию(Стр+"|Начало"); 
    
КонецПроцедуры

Процедура Сформировать(Ит, Ит1, Таб, Стр)     
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    Би1=СоздатьОбъект("БухгалтерскиеИтоги");
БИ1.ИспользоватьСубконто(ВидыСубконто.Материалы);  
    Би=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьСубконто(ВидыСубконто.Материалы); 
БИ.ИспользоватьКорСубконто(ВидыСубконто.ВидНоменклатуры); 
БИ.ИспользоватьКорСубконто(ВидыСубконто.ЗатратыНаПроизводство); 
БИ.ИспользоватьКорСубконто(ВидыСубконто.Подразделения); 
БИ.ИспользоватьКорСубконто(ВидыСубконто.Договоры1); 
БИ.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"10"); 
Пока БИ1.ПолучитьСубконто()=1 Цикл 
  НачОст = БИ1.СНД();
  Таб.ПрисоединитьСекцию(Стр+"|НачОст");
  Пока Би.ПолучитьСубконто()=1 Цикл
  БИ.ВыбратьКорСчета(); 
  БИ.ПолучитьКорСчет(СчетПоКоду("20")); 
  БИ.ВыбратьКорСубконто(1); 
  Пока БИ.ПолучитьКорСубконто(1) = 1 Цикл 
      Пока БИ.ПолучитьКорСубконто(2) = 1 Цикл 
          Пока Би.ПолучитьСубконто(3)=1 Цикл
              Пока Би.ПолучитьСубконто(4)=1 Цикл 
                   Оборот_20_10_По_Субконто = БИ.КО(); 
              КонецЦикла;
          КонецЦикла;
КонецЦикла;         
КонецЦикла; 
КонецЦикла;  
КонецЦикла;
КонецПроцедуры

Процедура ПриОткрытии()

//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать)

    ВыбНачПериода = НачалоПериодаБИ();
    ВыбКонПериода = КонецПериодаБИ();
   Favorit
 
25 - 12.04.04 - 13:33
Вот у меня мысли еще не сыормировались но по моему должно быть что-то типо этого!
   SiMazx
 
26 - 12.04.04 - 14:01
Ну... Во-первых, зачем два объекта БИ и БИ1?
По БИ1 даже запрос не формируешь... Убирай нафик...
+ еще изменения - БИ.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"10","20")
чтобы обороты только между 10 - 20...
   Favorit
 
27 - 12.04.04 - 14:04
Хм... так я хочу снять с БИ ограничение на корСубконто Договоры1!
Думаешь можно без этого обойтись?
   Favorit
 
28 - 12.04.04 - 14:12
НАВАЯЛ ТАКУЮ ДИКУЮ ШТУКУ!
ПОКА ЕЩЕ НА ПЕЧАТЬ НЕ ВЫВОДИЛ НО ЧТО_ТО СЧИТАЕТ!!!
Процедура Сформировать_Колонки(Би, Таб, Стр)
    Таб.ВывестиСекцию(Стр+"|Начало");  
    Пока Би.Получитьсубконто(ВидыСубконто.Материалы)=1 цикл
         Таб.ПрисоединитьСекцию(Стр+"|НачОст");
КонецЦикла;

    
КонецПроцедуры

Процедура Сформировать()     
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    Би1=СоздатьОбъект("БухгалтерскиеИтоги");
    БИ1.ИспользоватьСубконто(ВидыСубконто.Материалы);  
    Би=СоздатьОбъект("БухгалтерскиеИтоги");
    БИ.ИспользоватьСубконто(ВидыСубконто.Материалы); 
    БИ.ИспользоватьКорСубконто(ВидыСубконто.ВидыНоменклатуры); 
    БИ.ИспользоватьКорСубконто(ВидыСубконто.СтатьиЗатратНаПроизводство); 
    БИ.ИспользоватьКорСубконто(ВидыСубконто.Подразделения); 
    БИ.ИспользоватьКорСубконто(ВидыСубконто.Договоры1); 
    БИ.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"10","20");  
    Сформировать_колонки(Би, Таб, "Шапка"); 
    БИ1.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода,"10","20");   
Пока БИ1.ПолучитьСубконто()=1 Цикл 
  НачОст = БИ1.СНД();
 Сформировать_колонки(Би,  Таб,  "НачОст");
  Пока Би.ПолучитьСубконто()=1 Цикл
  БИ.ВыбратьКорСчета(); 
  БИ.ПолучитьКорСчет(СчетПоКоду("20")); 
  БИ.ВыбратьКорСубконто(1); 
  Пока БИ.ПолучитьКорСубконто(1) = 1 Цикл 
      Пока БИ.ПолучитьКорСубконто(2) = 1 Цикл 
          Пока Би.ПолучитьСубконто(3)=1 Цикл
              Пока Би.ПолучитьСубконто(4)=1 Цикл 
                   Оборот_20_10_По_Субконто = БИ.КО(); 
              КонецЦикла;
          КонецЦикла;
КонецЦикла;         
КонецЦикла; 
КонецЦикла;  
КонецЦикла;
КонецПроцедуры
//}}БУХГАЛТЕРСКИЙ ЗАПРОС  


Процедура ПриОткрытии()

//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА(Сформировать)

    ВыбНачПериода = НачалоПериодаБИ();
    ВыбКонПериода = КонецПериодаБИ();
//{{ИНИЦИАЛИЗАЦИЯ БУХГАЛТЕРСКОГО ЗАПРОСА


КонецПроцедуры
   Bell
 
29 - 12.04.04 - 17:23
(9)"Расход: Д - 20, Субконто - Вид ном, Затраты,Подр,Договора;"
Последние субконто Может быть совмещено с первым и все ниже и выше перечисленное не потребовалось бы...
   427
 
30 - 12.04.04 - 19:10
Алгоритм кода.... О как .... Я и не слышал про такое ....
   Сергей
31 - 12.04.04 - 20:05
»
   Favorit
 
32 - 13.04.04 - 10:27
Эх... программисты... :))) ну ничего нельзя спросить... лишь бы придраться... :)))
ВОТ КАК ЭТО НА САМОМ ДЕЛЕ! )))
Перем Ит1;
Процедура Сформировать_Колонки(Ит, Таб, Стр)
    Таб.ВывестиСекцию(Стр+"|Начало");
    Ит.ВыбратьКорСубконто(ВидыСубконто.Договоры1, 1, 1);
    Пока Ит.ПолучитьКорСубконто(ВидыСубконто.Договоры1) = 1 Цикл
        Таб.ПрисоединитьСекцию(Стр+"|КорСубконто1_Дт");
    КонецЦикла;
    Таб.ПрисоединитьСекцию(Стр+"|Оборот_Дт");
    Ит.ВыбратьКорСубконто(ВидыСубконто.Договоры1, 1, 2);
    Пока Ит.ПолучитьКорСубконто(ВидыСубконто.Договоры1) = 1 Цикл
        Таб.ПрисоединитьСекцию(Стр+"|КорСубконто1_Кт");
    КонецЦикла;
    Таб.ПрисоединитьСекцию(Стр+"|Оборот_Кт");
    Таб.ПрисоединитьСекцию(Стр+"|Конец");
КонецПроцедуры

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

Процедура ПриОткрытии() 
    ВыбНачПериода = НачалоПериодаБИ();
    ВыбКонПериода = КонецПериодаБИ();
КонецПроцедуры



Список тем форума
Рекламное место пустует  
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует