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

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;
Иначе
Док.Сумма = тзВЗП.Удержано - тзВЗП.Перечислено;
КонецЕсли;
КонецЦикла;
Док.ДатаДок = ДокументОснование.ДатаДок;
Док.ДатаПлатежа = ДокументОснование.ДатаДок;
Док.СуммаПеречислено = Док.Итог("Сумма");
Док.Комментарий = "На основании ВЗП №" + ДокументОснование.НомерДок;
Док.Записать();
Док.Провести();
Сообщить("Создан документ " + Док.Вид() + " " + Док.НомерДок);
КонецЦикла;
Оставьте свое сообщение

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