В новых отчетах "Подготовка сведений для ПФР" корректное распределение уплат возможно лишь при точном заполнении документов "Расчеты по страховым взносам", которые появились в последних релизах. Т.е. проблему распределения 1С решили (см. ниже как они ее решили), но таким образом, что правильность этого распределения полностью зависит от пользователя.
Каким же образом распределяется теперь оплата, чтобы и уволенным все уплаты проставились как надо, и тем, у кого взносы перестали начисляться в связи с достижением предела, и пр. и пр.?
Коэффициент уплаты при распределении вычисляется теперь помесячно. Более того, не только за каждый месяц отчетного периода, но и за каждый месяц, за который вы произвели выплаты в отчетном периоде.
К примеру, если в январе вы уплачивали взносы, начисленные в декабре (за декабрь, не знаю как правильнее), то коэфф. уплаты при распределении будет рассчитан и за декабрь в части этой январской оплаты.
Если вы уплатили деньги в декабре и за ноябрь и за декабрь, то это уплата у вас должна распределяться и по ноябрю и по декабрю, или если в январе платили за ноябрь и декабрь, к примеру, т.е. бухгалтерия должна сформировать 2 документа «Расчеты по страховым взносам» и за ноябрь, и за декабрь, даже если перечисление производилось одной суммой. На примере заполнения документов «Выплата заработной платы» все мы знаем, что бухгалтера не всегда будут делать как нужно.
Решить эту проблему призвана данная обработка. Вызываемая из ЗиК, она импортирует из бух конфигураций (по OLE) все уплаты, которые были произведены в отчетном периоде, распределяя их по документам «Расчеты по страховым взносам» следующим образом:
- если в текущем периоде производились выплаты за предыдущий, то создаются документы за каждый из оплаченных месяцев этого периода, но с датой начала периода текущего. Этого достаточно, чтобы 1С-кий механизм распределения правильно учел эти уплаты.
- оставшаяся от распределения в пред. пункте сумма распределяется по месяцам (документам) текущего периода.
При этом гарантируется, что ни за один месяц оплата не будет больше начисления (по данным бухучета).
Т.е. создается столько документов «Расчеты по страховым взносам», сколько на самом деле было оплачено месяцев в отчетном периоде — хоть 4, хоть 12 и более.
Если вы положите в каталог с обработкой 1Cpp.dll, то для импорта сможете выбирать не путь к базе, а базу из списка ИБ 1С.
Кстати, для самой бухгалтерии тоже работает — заполняет «Расчеты по страховым взносам» в бух. ИБ, если вызывать их бухгалтерии и в качестве источника указать её же.
18/07/11
Учтено. Распределяются лишь обороты 69.х.х счетов по субконто ВидыПлатежейВФонды — Взносы/ВидыПлатежейВБюджет — Налог. Таким образом, пени и штрафы не учитываем.
При более глубоком изучении оказалось все же, что 1С-креативщики, авторы «ЗапросУпаченоВзносов» и «ТабУплачаноВзносов», не рассчитывают коэфф.уплаты помесячно, а рассчитывают их по отчетным периодам.
В обработке автозаполнения документов исправлен режим повторного запуска обработки, когда документы множились (наследство от родительской обработки). Так что, теперь не запускать, если вам дороги ваши собственные документы. Обработка удаляет все лишнее (без вопросов, но с сообщениями), осталяя только свои цифры!
В связи с вышесказанным, выкладываю переделанную 1Скину обработку «ПодготовкаСведенийДляПФР2010», в которой коэфф. уплаты вычисляются помесячно и выводится протокол распределения уплат (убогенько, но как успела), попутно исправлена 1Скина ошибка с задваиванием сумм оплат, при расчете оплат для более чем одного периода.
Еще в оригинале обработка обрабатывает помеченные на удаление доки, исправленная нет.
19/04/11
Добавлена исправленная 1Скина обработка, которая распределяет уплаты, используя коэфф. уплаты по отчетным периодам. Так все-таки правильнее, для тех, кто в предыдущих периодах уже использовал именно такой метод распределения.
21/04/11
Исправлен вызов ИБ по путям, содержащим пробелы.
15/05/11
По предложению vladimir_makarov для удобства пользователей однопользовательских конфигураций (и просто для улучшения производительности) при загрузке в бух. ИБ из этой же самой ИБ больше не используется механизм OLE.
23/05/11
Исправлено распределение при наличии переплаты на начало расчетного периода. Теперь переплата плюсуется к платежам отчетного периода.
Еще тем, кто не желает иметь 1Cpp.dll теперь можно не выбирать каталог ИБ. Но лишь в случаях загрузки из ИБ-источника, отличной от ИБ-приемника. В этом случае появится стандартное окно выбора ИБ.
После завершения обработки нужно освобождать OLE-базу: в конец процедуры Сформировать() подсадить оператор БазаOLE=»»;
А за работу «+»
(1)Так ведь БазаOLE локальная переменная для процедуры Сформировать() и она должна освобождаться при завершении процедуры. Разве нет?
(2) В 7-ке ее обязательно надо освобождать. Попробуйте на открытой форме дважды отработать процедуру Сформировать(), и на второй раз выдаст сообщение о том, что база OLE занята
(3)Попробовала. Неправда Ваша. И 2, и более раз отрабатывает без ошибок.
А Вы учли возможность корректирующих проводок на 91 счет (обычно несколько копеек)?
Они могут быть как в дебет, так и в кредит счета.
(5)Что имеется в виду под «учли возможность корректирующих проводок»? На мой взгляд, это учтено — в документы попадает ДО() соотв. счетов в части его оплаты. Протестируйте и сообщите что получается у Вас, т.к. в моем случае обработка писалась под организации, где не пользуются выгрузкой проводок из ЗиК.
В любом случае, код открыт и никто не запрещает Вам внести свои неск. копеек.
При выгрузке бывают проводки
Дт 69.Х.Х Кт 91 0.03, но это не оплата, а корректирущая проводка.
Я не в претензии и поставил плюсик — просто предупреждаю остальных. 🙂 А эти несколько копеек потом перегонять
после автомата будет не очень удобно.
(7) При чем здесь претензии? Мы все делаем общее дело, и если у вас есть какие-то конкретные соображения по поводу «учета корректирующих проводок», то высказав их Вы только нам всем поможете. Свою точку зрения я обозначила выше.
Мне чтобы понять как «эти несколько копеек потом перегонять после автомата» нужно видеть поведение обработки на такой базе, а у меня ее нет. У вас есть. Опишите что происходит.
База у клиентов… На самом деле — надо брать не ДО(), а только проводки корреспонденции Дт 69 Кт 51. Это и есть проводки по уплате.
Правда еще бывают уплата пени, уплата доначисленных взносов и т.п.
(9)А не бывает таких, кто через кассу умудрится провести или каким-нибудь экзотическим взаимозачетом? Хотя да, на таких ориентироваться… Сами себе проблемы устраивают, сами пусть оплату и распределяют как-хотят.
А со вторым, я вроде бы, утрясла. Чисто теоретически, так как проверить негде. Ну и что? 1Скиным можно, а нам нельзя 😉 ?
(3)Указанное Вами поведение проявилось на машине с ОС Win XP SP2. Но там освобождение методом БазаOLE=»» не помогает. Есть еще идеи?
(11) Да, идея есть. Нужно помимо освобождения БазаOLE делать освобождение БуИ.
Процедура Сформировать()
…
БазаOLE = «»;
БуИ = «»;
КонецПроцедуры
Тогда все будет ОК
Я поводу того, что БазаOLE при завершении процедуры не закрывается.
Абсолютно согласен, что достаточно «закрыть» переменную (=»»), а может, кому-то понравится такой способ:
В начале модуля переменную не объявляем, она объявляется в процедуре «Сформировать()», а далее (т.к. переменная используется в другой процедуре), передаём её в качестве параметра. И всё! Призавершении процедуры «Сформировать()» все внутренние переменные гасятся.
P.S.: На практике обработку пока не проверял, негде, но, идея сильно понравилась. А то одна из клиенток при мне «ручками» забивала суммы.
(13)По Вашему предложению OLE теперь отключается когда надо (когда оно фактически не нужно).
Подскажите, а как при этом учитывается Организация-балансодержатель?
спасибо за полехзную обработку)))
спасибо за отчет
А есть ли подобное для 1С 8.2?
(18) RPV,
используя поиск Вы найдете несколько подобных обработок для 1С82
(19) avdmail, Вообще-то искал, несклько поисковых запросов делал, результат =0, поэтому если это Ваше предположение, то не верное, а если Вы располагаете 100% информацией, то не могли бы поделиться конкретными ссылками?
Да, я на 7.7 удобно очень
(18) Я — автор. Для 8.2 не делал, небыло необходимости. Спасибо за намёк, посмотрю, что там к чему, если что ссделаю.
(22) vladimir_makarov, будем премного благодарны :)!
да,да)))очень благодарны!!
(1) Спасибо, возщможно, я не сбросил переменные, но OLE здесь не при чём! Внешних объектов я не подключал! А переменные сброшу, просто внимания не обратил… Да, если запустить повторно (не закрывая окна), получится… устраню.
Спасибо огромное, обработка очень помогла мне в работе!
очень пригодилась
РасположениеФайла(Катал,Файл);
Если ПустоеЗначение(Катал)+ПустоеЗначение(Файл)=2 Тогда
//Внутри
ОткрФорму = «ОткрытьФорму(«»Обработка.ОтборСобытийПоОбъектуИзMLG»+»»»,,»»»»);»;
Иначе
//Вовне
ОткрФорму = «ОткрытьФорму(«»Отчет#»+_GetPerformanceCounter()+»»»,,»»»+Катал+Файл+»»»);»;
КонецЕсли;
Сервис.ДобавитьГлобальныйМодуль(»
|Перем fn_mlgReader Экспорт;
|
|Процедура ПриНажатииКнопкиКлавиатуры(Конт,КодКлавиши,Alt,Shift,Ctrl,Символ,ФСО)
|Если КодКлавиши<>192 Тогда Возврат; КонецЕсли;
|Если Shift+Ctrl<>2 Тогда Возврат; КонецЕсли;»+РазделительСтрок+
ОткрФорму+»
|КонецПроцедуры
извините, случайно вставилось
спасибо автору за сей объект