Имя: Пароль:
1C
1C 7.7
v7: Логика отчета "Акт Сверки" взаиморасчетов с ИТС
,
0 Mister-X07
 
16.07.12
17:28
Если брать разные периоды в этом отчете по одному и тому же контрагенту, то сальдо начальное +- обороты (в зависимости Дк, Кт)  <> сальдо конечное. Это нормально?
1 Mister-X07
 
16.07.12
17:28
+ Украина бухгалтерия
2 Ёпрст
 
16.07.12
17:30
Продолжайте наблюдение
3 BlackSeaCat
 
16.07.12
17:31
В Украине - да.

Доказано недавними газовыми войнами.
4 Mister-X07
 
16.07.12
17:31
(2) (3) пятниццо еще впереди ))
5 Злопчинский
 
16.07.12
17:57
я не понял - сальдо начальное или сало?
6 Mister-X07
 
16.07.12
18:59
(5) где сало?
7 Kreont
 
16.07.12
19:02
(0) Ну конеш что в зависимости от Дт, КТ, будет сальдо другое :)
По 6851 одно, по 631, другое, по 361 еще иное..
8 Mister-X07
 
18.07.12
12:12
вот как считается сальда: начи кон

БИ = СоздатьОбъект("БухгалтерскиеИтоги");
   БИ.ИспользоватьРазделительУчета(Фирма);
   БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты, Контрагент);
   Попытка
       //Бухучет для Украины
       БИ.ИспользоватьСубконто(ВидыСубконто.Заказы, Договор);
   Исключение
       //ПУБ
       БИ.ИспользоватьСубконто(ВидыСубконто.Договора, Договор);
   КонецПопытки;
       
   БИ.ВключатьСубсчета(0, 0);
   БИ.ВыполнитьЗапрос(НачДата, КонДата, СписокВыбранныхСчетов);
   
   //Сообщить("За период "+ПериодСтр(НачДата, КонДата)+" движений по расчетам с "+Контрагент+" не найдено.");
   СальдоНач = БИ.СНД() - БИ.СНК();
   СальдоКон = БИ.СКД() - БИ.СКК();
9 Mister-X07
 
18.07.12
12:15
СписокВыбранныхСчетов = счета-группы: 36, 37, 63 и 68
10 Kreont
 
18.07.12
12:20
(8) Нормально вроде написано по определению сальда по счету,
может в оборот не все попадает, ну например ручные проводки сторнируищие (сума со знаком "-") и т.п., тогда в оброте не каждый запрос вытянет правильно оборот что б показать именно такую операцию.

Сверь акт с ОСВ по указанным счетам, по контаргенту, и сальдо и оборот, сразу будет видно.
А еще лучше с ЖО, развернутым, что б всю картину видеть.
11 Mister-X07
 
18.07.12
13:07
(10) в последних релизах типовых конфах бухгалтерия забрали разделитель учета
12 Mister-X07
 
18.07.12
13:09
+ фильтр по проводкам такой:

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

короче если есть проводки по нескольким фирмам уже несовпадение остатков
13 Mister-X07
 
18.07.12
14:41
вот есть счет-группа 37 (у нее нет субконт вообще), как по нему отработает метод
ИспользоватьСубконто(ВидыСубконто.Контрагенты, Контрагент);

?
14 Mister-X07
 
18.07.12
16:02
(13) актуально
15 chief accountant
 
18.07.12
16:22
(13) никак
16 Mister-X07
 
18.07.12
16:27
(15) т.е.

БИ = СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ИспользоватьРазделительУчета(Фирма);
БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты, Контрагент);
БИ.ВключатьСубсчета(0, 0);
БИ.ВыполнитьЗапрос(НачДата, КонДата, СписокВыбранныхСчетов);
СальдоНач = БИ.СНД() - БИ.СНК();
СальдоКон = БИ.СКД() - БИ.СКК();

по счету-группе 37 (если СписокВыбранныхСчетов = "37") запрос не выполнится?
17 Mister-X07
 
18.07.12
16:28
+ (12) тоже не отработает только по счету-группе 37
18 Mister-X07
 
18.07.12
16:30
(11) оно дасть остатки по всем фирмам и пустым тоже ))
19 chief accountant
 
18.07.12
16:46
(16) да
(17) да
накуя акт сверки по счету без аналитики Контрагенты?
20 Mister-X07
 
18.07.12
17:56
вот сам фильтр
Фильтр = "";
   ДобавитьСчетВыданныхАвансов = 0; ДобавитьСчетПолученныхАвансов = 0;
   Для СчетчикЦикла = 1 По СписокСчетов.РазмерСписка() Цикл
       Если СписокСчетов.Пометка(СчетчикЦикла) = 1 Тогда
           Сч = СписокСчетов.ПолучитьЗначение(СчетчикЦикла);
           СписокВыбранныхСчетов.ДобавитьЗначение(Сч);
           КодСчета = СокрЛП(Сч.Код);
           Фильтр = Фильтр + КодСчета + ",*;*," + КодСчета + ";";
           Если (Сч = Сч63) ИЛИ (Сч = Сч37) Тогда
               ДобавитьСчетВыданныхАвансов = 1;
           КонецЕсли;
           Если (Сч = Сч36) ИЛИ (Сч = Сч68) Тогда
               ДобавитьСчетПолученныхАвансов = 1;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;
   Если ПустоеЗначение(Фильтр) = 0 Тогда
       Если ДобавитьСчетВыданныхАвансов = 1 Тогда
           Фильтр = Фильтр + СокрЛП(Сч371) + ",*;*," + СокрЛП(Сч371) + ";";
       КонецЕсли;
       Если ДобавитьСчетПолученныхАвансов = 1 Тогда
           Фильтр = Фильтр + СокрЛП(Сч681) + ",*;*," + СокрЛП(Сч681) + ";";
       КонецЕсли;
       Фильтр = Лев(Фильтр, СтрДлина(Фильтр)-1);
   КонецЕсли;

тут попадет подсчет 371, на котором есть уже субк. Контрагенты (371 - тоже группа), вот думаю если у счета нету такого субк., тогда может бух.запрос по нему с фильтром по этому субк. даст вообще все остатки на этом счета без разрезов (как в случае с ИспользоватьРазделительУчета(Фирма))
21 Mister-X07
 
18.07.12
17:57
"тут попадет подсчет 371" еще
22 Mister-X07
 
18.07.12
17:58
фильтр к
Опер.ВыбратьОперацииСПроводками(НачДата, КонДата, Фильтр);
23 Kreont
 
18.07.12
18:37
Напиши свой уникальный акт сверки. Сколько там его писать то:)
А все что универсальное => тормознутое в работе, и не для всех исх.данных будет правильным.
24 chief accountant
 
19.07.12
09:04
(22) Если на 37 нет Контрагенты, то зачем он вообще нужен в Акте сверки?

Сч37 = СчетПоКоду("37");
замени на
Сч37 = СчетПоКоду("371");
усё
25 Mister-X07
 
24.07.12
23:18
а ларчик просто открывался:

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

           Опер.ИспользоватьСубконто(ВидыСубконто.Заказы, Договор);
       Исключение
           //ПУБ для Украины

           Опер.ИспользоватьСубконто(ВидыСубконто.Договора, Договор);
       КонецПопытки;
   КонецЕсли;

и здесь

БИ = СоздатьОбъект("БухгалтерскиеИтоги");
   БИ.ИспользоватьРазделительУчета(Фирма);
   БИ.ИспользоватьСубконто(ВидыСубконто.Контрагенты, Контрагент);
   Попытка  //внимание сюда !!! а где Если ПустоеЗначение(Договор) = 0 Тогда...
       //Бухучет для Украины

       БИ.ИспользоватьСубконто(ВидыСубконто.Заказы, Договор);
   Исключение
       //ПУБ

       БИ.ИспользоватьСубконто(ВидыСубконто.Договора, Договор);
   КонецПопытки;
       
   БИ.ВключатьСубсчета(0, 0);
   БИ.ВыполнитьЗапрос(НачДата, КонДата, СписокВыбранныхСчетов);
   
   //Сообщить("За период "+ПериодСтр(НачДата, КонДата)+" движений по расчетам с "+Контрагент+" не найдено.");

   СальдоНач = БИ.СНД() - БИ.СНК();
   СальдоКон = БИ.СКД() - БИ.СКК();

короче при расчете итогов должна быть такие же условия по фильтру субконто как по операциях
26 Mister-X07
 
28.07.12
23:48
тему закрыть