Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 апр 2024, 10:50

Документ Корректировка записей регистров накопления (ЗУП)

Автор Лейсан, 16 фев 2012, 13:56

0 Пользователей и 1 гость просматривают эту тему.

Лейсан

Нужно написать обработку, кот создаст док-т "Корр-ка записей регистров накопления"и заполнит регистр накопления "Расчет налоговых агентов с бюджетом по НДФЛ" на основаниии регистра накопления "НДФЛ расчеты с бюджетом".

//Создала документ
       НовДокКоррЗап=Документы.КорректировкаЗаписейРегистровНакопления.СоздатьДокумент();
   НовДокКоррЗап.Дата=ТекущаяДата();
   ДвиженияКорр=НовДокКоррЗап.Движения;
   
   НовСтрРег=НовДокКоррЗап.ТаблицаРегистровНакопления.Добавить();
   НовСтрРег.Имя="РасчетыНалоговыхАгентовСБюджетомПоНДФЛ";
   НовСтрРег.Представление="РасчетыНалоговыхАгентовСБюджетомПоНДФЛ";
   НДФЛРасчетыСБюджетомДв=ДвиженияКорр.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ;
   НовДокКоррЗап.Записать();

Подскажите пожалуйста,а как мне записать в поля табличной части данные с регистра накопления "НДФЛ расчеты с бюджетом",при этом надо учитывать,что данные которые были скорректированы заново не корректировались.в каком русле мне двигаться.спасибо.

cska-fanat-kz

Как вариант, добавить в РН "Расчет налоговых агентов с бюджетом по НДФЛ" измерение или ресурс со ссылкой, в которой запоминать, записи какого документа откорректированы.

Просто потому что ссылки на запись регистра не существует...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Лейсан

Процедура СоздатьДОкументКорректировки()
   
   НовДокКоррЗап=Документы.КорректировкаЗаписейРегистровНакопления.СоздатьДокумент();
   НовДокКоррЗап.Дата=ТекущаяДата();
   ДвиженияКорр=НовДокКоррЗап.Движения;
   
   НовСтрРег=НовДокКоррЗап.ТаблицаРегистровНакопления.Добавить();
   НовСтрРег.Имя="РасчетыНалоговыхАгентовСБюджетомПоНДФЛ";
   НовСтрРег.Представление="Расчеты налоговых агентов с бюджетом по НДФЛ";
   РасчетыНалоговыхАгентовСБюджетомПоНДФЛДв=ДвиженияКорр.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ;
   НовДокКоррЗап.Записать();
   //ДокКорректировки = НовДокКоррЗап.Ссылка;
   
   Запрос = Новый Запрос;
    Запрос.Текст =
       "ВЫБРАТЬ
       |   НДФЛРасчетыСБюджетом.ВидДвижения,
       |   НДФЛРасчетыСБюджетом.ФизЛицо,
       |   НДФЛРасчетыСБюджетом.Организация,
       |   НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода,
       |   НДФЛРасчетыСБюджетом.КодПоОКАТО,
       |   НДФЛРасчетыСБюджетом.Налог,
       |   НДФЛРасчетыСБюджетом.Активность,
       |   НДФЛРасчетыСБюджетом.СтавкаНалогообложенияРезидента
       |ИЗ
       |   РегистрНакопления.НДФЛРасчетыСБюджетом КАК НДФЛРасчетыСБюджетом";
   
   Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
   
    Пока Выборка.Следующий() Цикл
        Строка=РасчетыНалоговыхАгентовСБюджетомПоНДФЛДв.Добавить();
        Строка.Период=ТекущаяДата();
        Строка.Регистратор=НовДокКоррЗап.Ссылка;
        Строка.ВидДвижения=Выборка.ВидДвижения;
        Строка.Активность=Истина;
        Строка.Организация=Выборка.Организация;
      Строка.ФизЛицо = Выборка.ФизЛицо;
      Строка.Ставка=Выборка.СтавкаНалогообложенияРезидента;
      Строка.МесяцНалоговогоПериода=Выборка.МесяцНалоговогоПериода;
      Строка.ОКАТО_КПП=Выборка.КодПоОКАТО;
   КонецЦикла;
   
    РасчетыНалоговыхАгентовСБюджетомПоНДФЛДв.Записать();
    НовДокКоррЗап.Записать();
КонецПроцедуры

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Лейсан

не работает у меня.пишет ставка пустая.хотя она не пустая.подскажите пожалуйста,в каком месте искаать ошибку?

cska-fanat-kz

движения в РН лучше формировать через объект НаборЗаписей.
НаборЗаписей = РегистрыНакопления.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(НовДокКоррЗап.Ссылка);
НаборЗаписей.Прочитать();

НоваяЗапись = НаборЗаписей.Добавить();
...
далее заполняем поля
...

НаборЗаписей.Записать();
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Лейсан

извините.торможу похоже.в какое место надо поставить данный код?

cska-fanat-kz

После того, как создали новый документ Корректировка.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Лейсан

НовДокКоррЗап=Документы.КорректировкаЗаписейРегистровНакопления.СоздатьДокумент();
   НовДокКоррЗап.Дата=ТекущаяДата();
   ДвиженияКорр=НовДокКоррЗап.Движения;
   
   НовСтрРег=НовДокКоррЗап.ТаблицаРегистровНакопления.Добавить();
   НовСтрРег.Имя="РасчетыНалоговыхАгентовСБюджетомПоНДФЛ";
   НовСтрРег.Представление="Расчеты налоговых агентов с бюджетом по НДФЛ";
   РасчетыНалоговыхАгентовСБюджетомПоНДФЛДв=ДвиженияКорр.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ;
   НовДокКоррЗап.Записать();
      
   Запрос = Новый Запрос;
   Запрос.Текст =
    "ВЫБРАТЬ
    |   НДФЛРасчетыСБюджетом.Активность,
    |   НДФЛРасчетыСБюджетом.ВидДвижения,
    |   НДФЛРасчетыСБюджетом.Организация,
    |   НДФЛРасчетыСБюджетом.СтавкаНалогообложенияРезидента,
    |   НДФЛРасчетыСБюджетом.Налог,
    |   НДФЛРасчетыСБюджетом.КодПоОКАТО,
    |   НДФЛРасчетыСБюджетом.Период,
    |   НДФЛРасчетыСБюджетом.МесяцНалоговогоПериода,
    |   НДФЛРасчетыСБюджетом.ФизЛицо.Ссылка,
    |   НДФЛРасчетыСБюджетом.ФизЛицо
    |ИЗ
    |   РегистрНакопления.НДФЛРасчетыСБюджетом КАК НДФЛРасчетыСБюджетом";
    //|ГДЕ
    //|   НДФЛРасчетыСБюджетом.Период = &Пер
    //|   И НДФЛРасчетыСБюджетом.Организация = &Орг";
    Результат=Запрос.Выполнить();
    Выборка=Результат.Выбрать();
   
   НаборЗаписей = РегистрыНакопления.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ.СоздатьНаборЗаписей();
   НаборЗаписей.Отбор.Регистратор.Установить(НовДокКоррЗап.Ссылка);
   НаборЗаписей.Прочитать();
    НоваяЗапись = НаборЗаписей.Добавить();
   //НоваяЗапись.Период = Выборка.НДФЛРасчетыСБюджетом.Период;
   НоваяЗапись.Активность=Истина;
   НоваяЗапись.МесяцНалоговогоПериода =Выборка.МесяцНалоговогоПериода;
   НоваяЗапись.ФизЛицо =Выборка.ФизЛицо;
   НоваяЗапись.Ставка =Выборка.СтавкаНалогообложенияРезидента;
   НоваяЗапись.ОКАТО_КПП =Выборка.КодПоОКАТО;
   НаборЗаписей.Записать();

Ошибка,Запись не верна! Значение поля "Физическое лицо" не может быть пустым! (Регистр накопления: Расчеты налоговых агентов с бюджетом по НДФЛ; Номер строки: 1)
как можно ее исправить?спасибо

cska-fanat-kz

После

Выборка=Результат.Выбрать();

обычно идет цикл Если Выборка.Следующий()........
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск