Загрузка данных в документ "Перечисление НДФЛ в бюджет"

1. Katusha_iv 20.07.11 08:26 Сейчас в теме
Подскажите, пожалуйста. Вопрос такой: выгружаю данные из документа «Выплата заработной платы» во временную таблицу, потом из этой таблицы загружаю в документ «Перечисление НДФЛ в бюджет», одной обработкой. Загружаются реквизиты: Сотрудники, сумма НДФЛ (по формуле), дата ведомости, общая сумма. Не загружаются ставка, период, ОКАТО_КПП. То есть, если открыть документ, в который загрузились данные, ставка стоит 0, периода нет, и ОКАТО_КПП не проставляет. А если смотреть в Журнале Перечисление НДФЛ в Бюджет, ставка проставляется ,ОКАТО_КПП есть, но периода нет. В чем может быть проблема?
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
19. DaDaEtoYa 22 26.07.11 10:19 Сейчас в теме
Словестный алгоритм (без расчета к удержанию)
1 На основании выплаты создается документ "ПеречислениеНДФЛвБюджет"
2 В процедуре документа "ВводНаОсновании"( которая срабатывает сразу же после того как выбрал док, основанием которого явл-ся выплата ЗП)
заполнил свою временную таблицу (1), выгрузив из таб части документа основания
3 Добавил в свою временную таблицу (1) столбцы ОКАТО_КПП и прочие
4 Создал еще одну временну таблицу (2), в которую выгрузил два столбца("ОКАТО_КПП" и "Сумма") из таблицы (1) и свернул ее (2) по столбцу "ОКАТО_КПП" суммировав столбец "Сумма"
Тем самым получил примерное количество документов к созданию (примерное - возможны варианты с разными ставками НДФЛ, минус один документ, т.к. в одном из них уже находимся)
5 Произвел выборку по второй временной таблице (2), и внутри цикла (перебора записей таблицы (2)) создаю документы перечисления ( реквизит ОКАТО_КПП проставляю из текущей строки временной таблицы (2), а остальные реквизиты в шапке таблицы, за исключением номера платежки и перечисления, определены и присваиваются тут же)
6 все в том же цикле по перебору записей временной таблицы (2), перебираю таблицу с сотрами (1) и если, ОКАТО_КПП, в котором работает сотрудник, совпадает с ОКАТО_КПП свернутой таблицы (2), то Добавляю запись по сотру в документ перечисления
7 в конце каждого прохода цикла (2) проводим созданный документ, кстати, созданный через "СоздатьОбъект", и переходим к новой записи.
З.Ы. так как выполняю я действия по разбросу сотров по разным докам в новосозданном документе перечислениеНДФЛ, то первую строку свернутой таблице я обрабатываю для него, т.е. заполняю текущий документ, который в конце предстает пользователю заполненным и ему предстоит его провести(если захочет)
+
24. СерДжей 06.10.11 13:22 Сейчас в теме
Словестный алгоритм (без расчета к удержанию)
1 На основании выплаты создается документ "ПеречислениеНДФЛвБюджет"
2 В процедуре документа "ВводНаОсновании"( которая срабатывает сразу же после того как выбрал док, основанием которого явл-ся выплата ЗП)
заполнил свою временную таблицу (1), выгрузив из таб части документа основания
3 Добавил в свою временную таблицу (1) столбцы ОКАТО_КПП и прочие
4 Создал еще одну временну таблицу (2), в которую выгрузил два столбца("ОКАТО_КПП" и "Сумма") из таблицы (1) и свернул ее (2) по столбцу "ОКАТО_КПП" суммировав столбец "Сумма"
Тем самым получил примерное количество документов к созданию (примерное - возможны варианты с разными ставками НДФЛ, минус один документ, т.к. в одном из них уже находимся)
5 Произвел выборку по второй временной таблице (2), и внутри цикла (перебора записей таблицы (2)) создаю документы перечисления ( реквизит ОКАТО_КПП проставляю из текущей строки временной таблицы (2), а остальные реквизиты в шапке таблицы, за исключением номера платежки и перечисления, определены и присваиваются тут же)
6 все в том же цикле по перебору записей временной таблицы (2), перебираю таблицу с сотрами (1) и если, ОКАТО_КПП, в котором работает сотрудник, совпадает с ОКАТО_КПП свернутой таблицы (2), то Добавляю запись по сотру в документ перечисления
7 в конце каждого прохода цикла (2) проводим созданный документ, кстати, созданный через "СоздатьОбъект", и переходим к новой записи.
З.Ы. так как выполняю я действия по разбросу сотров по разным докам в новосозданном документе перечислениеНДФЛ, то первую строку свернутой таблице я обрабатываю для него, т.е. заполняю текущий документ, который в конце предстает пользователю заполненным и ему предстоит его провести(если захочет)
+
2. DaDaEtoYa 22 22.07.11 11:46 Сейчас в теме
Хай!
У тебя действительно, что то не так
Вот моя процедурка при открытии перечисления НДФЛ
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()

// если открыли для печати
Если глВыполнитьКомандуФормы(Контекст,"Печать","")=1 Тогда
Предупреждение( "У документа ""Перечисление НДФЛ в бюджет РФ"""
"отсутствует печатная форма... Вывести на печать"
"документы данного вида невозможно.",10);
СтатусВозврата(0);
Возврат;
КонецЕсли;

// инициализация обработчика сообщений
ОбработчикСообщений = глСоздатьОбработчикСообщений(глПредставлениеДокумента(Контекст));

ТекстПериода = глСменитьПериод(МесяцНалоговогоПериода,0);

ОкончаниеГода = КонГода(МесяцНалоговогоПериода);
СписокСтавок.ДобавитьЗначение(Константа.СтавкаНДФЛсЗарплатыРезидентов.Получить(ОкончаниеГода));
СписокСтавок.ДобавитьЗначение(Константа.СтавкаНДФЛсПрочихДоходовРезидентов.Получить(ОкончаниеГода));
СписокСтавок.ДобавитьЗначение(Константа.СтавкаНДФЛсДивидендов.Получить(ОкончаниеГода));
СписокСтавок.ДобавитьЗначение(Константа.СтавкаНДФЛсДоходовНеРезидентов.Получить(ОкончаниеГода));
СписокСтавок.ДобавитьЗначение(Константа.СтавкаНДФЛсДивидендовНеРезидентов.Получить(ОкончаниеГода));

ЗаполнитьСписокОКАТОКПП();

Если Выбран()=0 Тогда

//12.07.2011 *** Joker *** Начало
//Ставка = Константа.СтавкаНДФЛсЗарплатыРезидентов.Получить(ОкончаниеГода);
//СписокСтавок.ТекущаяСтрока(1);

//Если СписокОКАТОКПП.РазмерСписка()<>0 Тогда
// ОКАТО_КПП = СписокОКАТОКПП.ПолучитьЗначение(1);
// СписокОКАТОКПП.ТекущаяСтрока(1);
//КонецЕсли;

Если ПустоеЗначение(Ставка) = 0 Тогда
ПозицияСписка = СписокСтавок.НайтиЗначение(СОКРЛП(Ставка));
СписокСтавок.ТекущаяСтрока(ПозицияСписка);
Иначе
Ставка = Константа.СтавкаНДФЛсЗарплатыРезидентов.Получить(ОкончаниеГода);
СписокСтавок.ТекущаяСтрока(1);
КонецЕсли;


Если (ПустоеЗначение(ОКАТО_КПП)=0) и (СписокОКАТОКПП.РазмерСписка()<>0) Тогда
ПозицияСписка = СписокОКАТОКПП.НайтиЗначение(СОКРЛП(ОКАТО_КПП));
Если ПозицияСписка<>0 Тогда
СписокОКАТОКПП.ТекущаяСтрока(ПозицияСписка);
КонецЕсли;
Иначе
Если СписокОКАТОКПП.РазмерСписка()<>0 Тогда
ОКАТО_КПП = СписокОКАТОКПП.ПолучитьЗначение(1);
СписокОКАТОКПП.ТекущаяСтрока(1);
КонецЕсли;
КонецЕсли;
//12.07.2011 *** Joker *** Конец
Иначе

Если Ставка <> 0 Тогда
ПозицияСписка = СписокСтавок.НайтиЗначение(Ставка);
Если ПозицияСписка<>0 Тогда
СписокСтавок.ТекущаяСтрока(ПозицияСписка);
КонецЕсли;
КонецЕсли;

Если (ПустоеЗначение(ОКАТО_КПП)=0) и (СписокОКАТОКПП.РазмерСписка()<>0) Тогда
ПозицияСписка = СписокОКАТОКПП.НайтиЗначение(СОКРЛП(ОКАТО_КПП));
Если ПозицияСписка<>0 Тогда
СписокОКАТОКПП.ТекущаяСтрока(ПозицияСписка);
КонецЕсли;
КонецЕсли;

КонецЕсли;

КонецПроцедуры // ПриОткрытии

а вот у меня установка значения ОКАТО/КПП и ставки и периода

ДатаДок = ДокументОснование.ДатаДок;
ОКАТО_КПП = тзВременная.ОКАТО_КПП;
МесяцНалоговогоПериода = НачМесяца(ДокументОснование.ДатаПериода);Ставка = тзВременная.Ставка;

ну и как ты догадалась, перечисление у меня заполняется на основании выплаты ЗП
+
3. Katusha_iv 26.07.11 07:11 Сейчас в теме
У меня такая же установка значений.Вот:
ОКАТО_КПП = СокрЛП(ВременнаяТаблица.КодПоОКАТО)+"/"+СокрЛП(ВременнаяТаблица.КПП);
ДокПеречислениеНДФЛ.ОКАТО_КПП = СОКРЛП(ОКАТО_КПП);
ДокПеречислениеНДФЛ.МесяцНалоговогоПериода = НачМесяца(ВременнаяТаблица.ДатаПериода);
ДокПеречислениеНДФЛ.ДатаДок = ВременнаяТаблица.ДатаДок;
А как ты группируешь по ОКАТО_КПП?Почему то у меня из таблицы значений формируется только один документ и ОКАТО_КПП берет последний,а должен сразу несколько документов с разными ОКАТО_КПП..И еще откуда ты берешь в тзВременная ОКАТО_КПП?я выгружаю из документа "Выплата заработной платы",у меня выгружается по отдельности ОКАТО И КПП.
+
4. DaDaEtoYa 22 26.07.11 08:22 Сейчас в теме
хай, извини, не хоца разбираться, что там у тебя, высылаю свои наброски пока еще.
З.Ы. ты скорее всего не обратила внимание на процедуру открытия дока перечисления, в которой устанавливается значение списка ОКАТО_КПП. А присваивание то действительно обычным оператором "=" работает.
Прикрепленные файлы:
МодульФДокПеречислениеНДФЛ.ert
+
5. DaDaEtoYa 22 26.07.11 08:23 Сейчас в теме
У тебя обособленные подразделения есть?
+
6. Katusha_iv 26.07.11 08:30 Сейчас в теме
Нет,только структурные.То есть головное предприятие и несколько структурных.ОКАТО у всех одинаковое, а КПП у каждого свое.
+
7. Katusha_iv 26.07.11 08:33 Сейчас в теме
Вот в таком виде у меня выгружается из Выплаты з/п во временную таблицу.
Прикрепленные файлы:
ВременнаяТаблица.xls
+
8. DaDaEtoYa 22 26.07.11 08:46 Сейчас в теме
9. Katusha_iv 26.07.11 08:53 Сейчас в теме
Вообще то это у меня обычная внешняя обработка..в документе "Перечисление НДФЛ в бюджет" я ничего не дописывала кроме процедуры При открытии().В этой обработке я ставлю дату определенную,и данные берутся из Выплаты з/п на эту дату.,формируется новый документ Перечисление.Моя проблема в том что у меня не делит по ОКАТО_КПП.
+
10. DaDaEtoYa 22 26.07.11 08:54 Сейчас в теме
Странно у тебя находятся значения ОКАТО и в присланной тобой таблице последний столбец с датой в виде строки вроде бы как, ну да ладно...
Проверить - что ты записала в документ перечисления- можно либо в конце его формирования, в отладчике, либо при его открытии(уже сохраненного), оять таки в отладчике. Ты посмотрела "ПриОткрытии"?
+
11. Katusha_iv 26.07.11 08:55 Сейчас в теме
А как у тебя это делается,я вообще не поняла((
+
12. DaDaEtoYa 22 26.07.11 08:57 Сейчас в теме
Возьми, выгрузи из своей временной таблицы два столбца "ОКАТО_КПП" и "Сумма", сверни получившуюся табличку, а потом перебор своей временной таблицы вложи в перебор свернутой и проверяй в условии на соответствие "ОКАТО_КПП".
+
13. DaDaEtoYa 22 26.07.11 09:01 Сейчас в теме
тзВременная - моя свернутая таблица
тзВЗП - таблица содержащая данные для распределения(твоя временная)
док - документ перечисления

тзВременная.ВыбратьСтроки();
Пока тзВременная.ПолучитьСтроку()= 1 Цикл

Док.Новый();
Док.ДатаДок = ДокументОснование.ДатаДок;
Док.ОКАТО_КПП = тзВременная.ОКАТО_КПП;
Док.Ставка = Ставка;//Константа.СтавкаНДФЛсЗарплатыРезидентов.Получить(ДокументОснование.ДатаДок);
Док.МесяцНалоговогоПериода = МесяцНалоговогоПериода;
тзВЗП.ВыбратьСтроки();
Пока тзВЗП.ПолучитьСтроку() = 1 Цикл
Если тзВременная.ОКАТО_КПП <> тзВЗП.ОКАТО_КПП Тогда
продолжить;
КонецЕсли;
Док.НоваяСтрока();
Док.Сотрудник = тзВЗП.Сотрудник;
Если ЭтоВЗП = 0 Тогда
Док.Сумма = тзВЗП.Сумма * 0.13;
Иначе
Док.Сумма = тзВЗП.Удержано - тзВЗП.Перечислено;
КонецЕсли;
КонецЦикла;
Док.ДатаДок = ДокументОснование.ДатаДок;
Док.ДатаПлатежа = ДокументОснование.ДатаДок;
Док.СуммаПеречислено = Док.Итог("Сумма");
Док.Комментарий = "На основании ВЗП №" + ДокументОснование.НомерДок;
Док.Записать();
Док.Провести();
Сообщить("Создан документ " + Док.Вид() + " " + Док.НомерДок);
КонецЦикла;
+
14. Katusha_iv 26.07.11 09:02 Сейчас в теме
Последний столбец,это период,они и должен быть в виде строки вроде как..
+
15. DaDaEtoYa 22 26.07.11 09:05 Сейчас в теме
нет, не ввиде строки, посмотреть можно в реквизитах дока, а присваивается ему занчение, впервые, в процедуре "ВводНового"(по умолчанию в типовой)
+
16. Katusha_iv 26.07.11 09:09 Сейчас в теме
Буду разбираться..
+
17. DaDaEtoYa 22 26.07.11 09:14 Сейчас в теме
:D
скажи что именно не понятно?

З.Ы. тебе есть, что сказать в теме http://forum.infostart.ru/forum68/topic40832/ ?
+
18. Katusha_iv 26.07.11 09:24 Сейчас в теме
Не понятно,как у тебя автоматически формируются документы Перечисление НДФЛ из Выплаты з/п..я то хотела простой обработкой выгрузка-загрузка,не меняя конфу..А по той теме,что могу сказать,проблема есть,мы еще не отчитывались конечно перед налоговой.у нас сотров 2000штук ,с начала года естественно бух не хочет ручками бить документы Перечисление НДФЛ.
+
20. DaDaEtoYa 22 03.10.11 15:18 Сейчас в теме
Немного измененный модуль того же документа перечисления
Прикрепленные файлы:
МодульДокПеречислениеНДФЛ.ert
+
21. slanrus 05.10.11 16:57 Сейчас в теме
вроде всё понятно
+
22. Katusha_iv 06.10.11 09:38 Сейчас в теме
а с переходящими отпусками тоже все понятно?наш бухгалтер перечислял ндфл столько ,сколько было начислено, а не удержано, а они между собой не равны.(
+
23. СерДжей 06.10.11 13:20 Сейчас в теме
25. СерДжей 06.10.11 13:22 Сейчас в теме
тзВременная - моя свернутая таблица
тзВЗП - таблица содержащая данные для распределения(твоя временная)
док - документ перечисления

тзВременная.ВыбратьСтроки();
Пока тзВременная.ПолучитьСтроку()= 1 Цикл

Док.Новый();
Док.ДатаДок = ДокументОснование.ДатаДок;
Док.ОКАТО_КПП = тзВременная.ОКАТО_КПП;
Док.Ставка = Ставка;//Константа.СтавкаНДФЛсЗарплатыРезидентов.Получить(ДокументОснование.ДатаДок);
Док.МесяцНалоговогоПериода = МесяцНалоговогоПериода;
тзВЗП.ВыбратьСтроки();
Пока тзВЗП.ПолучитьСтроку() = 1 Цикл
Если тзВременная.ОКАТО_КПП <> тзВЗП.ОКАТО_КПП Тогда
продолжить;
КонецЕсли;
Док.НоваяСтрока();
Док.Сотрудник = тзВЗП.Сотрудник;
Если ЭтоВЗП = 0 Тогда
Док.Сумма = тзВЗП.Сумма * 0.13;
Иначе
Док.Сумма = тзВЗП.Удержано - тзВЗП.Перечислено;
КонецЕсли;
КонецЦикла;
Док.ДатаДок = ДокументОснование.ДатаДок;
Док.ДатаПлатежа = ДокументОснование.ДатаДок;
Док.СуммаПеречислено = Док.Итог("Сумма");
Док.Комментарий = "На основании ВЗП №" + ДокументОснование.НомерДок;
Док.Записать();
Док.Провести();
Сообщить("Создан документ " + Док.Вид() + " " + Док.НомерДок);
КонецЦикла;
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот