Имя: Пароль:
1C
1C 7.7
v7: Запрос по бух. итогам
0 Lexxxxx
 
20.09.11
13:45
Есть кодец:
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьРазделительУчета(Фирма);
   Ит.ИспользоватьСубконто(ВидыСубконто.НеоборотныеАктивы); // ОС, НМА
   Если НачКвартала(ДатаДок) = НачМесяца(ДатаДок) Тогда
       Ит.ВыполнитьЗапрос(НачКвартала(ДатаДок),,СписокСчетов);
   Иначе
       Ит.ВыполнитьЗапрос(НачКвартала(ДатаДок),КонМесяца(ДобавитьМесяц(ДатаДок,-1)),СписокСчетов);
   КонецЕсли;                  
   Ит.ВыбратьСубконто(1);
   Пока Ит.ПолучитьСубконто(1) = 1 Цикл
       Износ = 0;ПервСтоимость = 0;
       ИзносНУ = 0;ПервСтоимостьНУ = 0;
       ПервКво =0;        
       // Для счета 100 износ начисляем на счет 135    

       Если Сч = СчетПоКоду("10") Тогда        
           Если Ит.Субконто(1).Счет = СчетПоКоду("100") Тогда      
               Продолжить;
           КонецЕсли;
       КонецЕсли;    

       Если НачКвартала(ДатаДок) = НачМесяца(ДатаДок) Тогда
           // месяц - начало квартала
           Если Ит.ПолучитьСчет(,СчИзноса) = 1 Тогда
               Износ = Ит.СНК("С");
           КонецЕсли;
           Если Ит.ПолучитьСчет(,Сч) = 1 Тогда
               ПервСтоимость = Ит.СНД("С");
               ПервКво = Ит.СНД("К");
           КонецЕсли;
           Если Ит.ПолучитьСчет(,СчИзносаНУ) = 1 Тогда
               ИзносНУ = Ит.СНК("С");
           КонецЕсли;
           Если Ит.ПолучитьСчет(,СчНУ) = 1 Тогда
               ПервСтоимостьНУ = Ит.СНД("С");
           КонецЕсли;
       Иначе
           //на начало месяца
           Если Ит.ПолучитьСчет(,СчИзноса) = 1 Тогда
               Износ = Ит.СКК("С");
           КонецЕсли;
           Если Ит.ПолучитьСчет(,Сч) = 1 Тогда
               ПервСтоимость = Ит.СКД("С");  
               ПервКво = Ит.СКД("К");  
           КонецЕсли;
           Если Ит.ПолучитьСчет(,СчИзносаНУ) = 1 Тогда
               ИзносНУ = Ит.СКК("С");
           КонецЕсли;
           Если Ит.ПолучитьСчет(,СчНУ) = 1 Тогда
               ПервСтоимостьНУ = Ит.СКД("С");  
           КонецЕсли;
       КонецЕсли;

Непойму, зачем эти игры с периодом в зависимости от начало или нет квартала? Почему не написать:
Ит.ВыполнитьЗапрос(НачМесяца(ДатаДок),,СписокСчетов);
И брать СНК\СНД все время? Зачем такое было написано?!
1 chief accountant
 
20.09.11
14:02
Что за отчет-то?
2 Lexxxxx
 
20.09.11
14:15
Это документ "НачислениеИзноса" из Бухналтерия ПРОФ для Украины. Ниже в цикле ничего существенного не происходит, так что можно просто считать что там КонецЦикла. Обороты из этих итогов нигде не берутся. Все обращения к ним приведены в процитированном участке кода. Никак не могу понять, для чего эти фокусы?!
3 zak555
 
20.09.11
14:18
быдло кодинг ?
4 zak555
 
20.09.11
14:18
вот это

Если Сч = СчетПоКоду("10") Тогда        
           Если Ит.Субконто(1).Счет = СчетПоКоду("100") Тогда      
               Продолжить;
           КонецЕсли;
       КонецЕсли;    


жесть
5 zak555
 
20.09.11
14:18
переписать всё нафиг
6 palpetrovich
 
20.09.11
14:19
(2) "НачислениеИзноса"  - оно такое НачислениеИзноса :)
сильно зависит от от мочи ударившей в голову законотворцам в какой-то момент ...ну и от периода тоже
зы: работает - не трожь!
7 chief accountant
 
20.09.11
14:21
(6) +1
Хрен его знает, что там у них с законодательстов
8 chief accountant
 
20.09.11
14:22
7+ *законодательством
9 zak555
 
20.09.11
14:22
почему, если
месяц - начало квартала
смотришь начальное сальдо, иначе - конечное ? о_0
10 Lexxxxx
 
20.09.11
14:26
(9) Дык вот и мне интересно!
11 Lexxxxx
 
20.09.11
14:35
ИМНО ведь не может быть случаев, когда начальное сальдо первого дня текущего месяца не равно конечному сальдо последнего дня предыдущего месяца?!
12 palpetrovich
 
20.09.11
14:39
(11) не в сальдо дело, вот к примеру комментарий оттудаже:
//Для производственного метода с 01.11.09 износ начисляется со следующего дня
зв: таких заморочек встречается немало и далеко не всегда виноваты программеры :)
13 2S
 
20.09.11
14:46
(0) ужас нах
14 Lexxxxx
 
20.09.11
14:50
(12) Ну это уже другой этап, и там свой период. Я говорил о конкретном случае употребления конкретного экземпляра бух. итогов.
15 Дык ё
 
20.09.11
14:50
(11) возможно, там нужно получить все НеоборотныеАктивы, которые были на начало квартала, даже если они ликвидированы на начало месяца?
16 Lexxxxx
 
20.09.11
14:56
(15) Возможно! Правда не совсем понятно зачем, но это уже тонкости наверное законодательного характера.
17 G-Re
 
20.09.11
15:16
Я думаю, что Кодеры пытались следовать решениям Партии и Правительства, которые принципиально спонтанны и непоследовательны, а затем просто следовали принципу "Работает - не трожь". Поэтому и остались какие-то почти бессвязные осколки старого кода.
Но принцип правильный.
2 + 2 = 3.9999999999999999999999999999999...