Из ЗУП 2.5.99.2 в Бухгалтерия 3.0.43.123
1. Выгрузка
Выбираем период начисления Дивидендов и имя файла выгрузки.
База и налог берутся из документов "НачислениеДивидендовОрганизаций".
Также выгружаются Ф.И.О., паспортные данные и адрес для информирования ФизЛица.
2. Загрузка
Редактируем Конфигурацию:
Отчеты -> "РегламентированныйОтчетПрибыль" -> Формы -> "ФормаОтчета2015Кв1"
В Форме: - Добавляем в Реквизиты таблицу значений "ТаблицаИзЗУП25"
- Добавляем Команду "ЗаполнитьИзDBF" и кидаем её на форму.
Действие команды "ЗаполнитьИзDBF":
&НаКлиенте
Процедура ЗаполнитьИзDBF(Команда)
Сообщить("Начало: "+Формат(ТекущаяДата(), "ДЛФ=T"));
ЭтаФорма.ТаблицаИзЗУП25.Очистить();
ТЗСправки = ЭтаФорма.ТаблицаИзЗУП25;
// Получение данных из DBF
ПутьКФайлу = "C:\docs\ndfl2.dbf";
БазаДивидендов = 0;
НалогСДивидендов = 0;
КолСправок = 0;
ФайлDBF = Новый XBase; // создаем новый объект
ФайлDBF.ОткрытьФайл(ПутьКФайлу,,Истина); // открытие файла
ФайлDBF.Первая(); // устанавливает курсор на первую запись
Пока НЕ ФайлDBF.ВКонце() Цикл
СтрокаТЗСправки = ТЗСправки.Добавить();
СтрокаТЗСправки.НомПП = ФайлDBF.A;
СтрокаТЗСправки.Сотрудник = ФайлDBF.B;
СтрокаТЗСправки.Фамилия = ФайлDBF.C;
СтрокаТЗСправки.Имя = ФайлDBF.D;
СтрокаТЗСправки.Отчество = ФайлDBF.E;
СтрокаТЗСправки.Результат = ФайлDBF.F;
СтрокаТЗСправки.НДФЛ = ФайлDBF.G;
СтрокаТЗСправки.ВидДокумента = ФайлDBF.H;
СтрокаТЗСправки.СерияДокумента = ФайлDBF.I;
СтрокаТЗСправки.НомерДокумента = ФайлDBF.J;
СтрокаТЗСправки.ДатаРождения = ФайлDBF.K;
СтрокаТЗСправки.ИНН = ФайлDBF.L;
СтрокаТЗСправки.АдресПредставление = ФайлDBF.M;
СтрокаТЗСправки.Поле1 = ФайлDBF.P1; // Индекс
СтрокаТЗСправки.Поле2 = ФайлDBF.P2; // Татарстан Респ
СтрокаТЗСправки.Поле3 = ФайлDBF.P3; // Район
СтрокаТЗСправки.Поле4 = ФайлDBF.P4; // Город
СтрокаТЗСправки.Поле5 = ФайлDBF.P5; // Населен пункт (деревня, село)
СтрокаТЗСправки.Поле6 = ФайлDBF.P6; // улица
СтрокаТЗСправки.Поле7 = ФайлDBF.P7; // дом
СтрокаТЗСправки.Поле8 = ФайлDBF.P8; // корпус
СтрокаТЗСправки.Поле9 = ФайлDBF.P9; // квартира
СтрокаТЗСправки.Поле10 = ФайлDBF.P10;
БазаДивидендов = БазаДивидендов + СтрокаТЗСправки.Результат;
НалогСДивидендов = НалогСДивидендов + СтрокаТЗСправки.ндфл;
КолСправок = КолСправок + 1;
ФайлDBF.Следующая(); //передвигаем курсор далее
КонецЦикла;
ФайлDBF.ЗакрытьФайл();
Сообщить("В DBF файле: ");
Сообщить("Кол-во= "+КолСправок);
Сообщить("База= "+БазаДивидендов);
Сообщить("НДФЛ= "+НалогСДивидендов);
// загрузка в 1С
БазаДивидендов = 0;
НалогСДивидендов = 0;
КолСправок = 0;
Для Каждого ТекущаяСтрокаТЗСправки Из ТЗСправки Цикл
//если ТекущаяСтрокаТЗСправки.НомПП < 3 тогда
ВставитьДополнительнуюСтраницуНаСервере("Приложение2");
обл = ТабличныйДокумент.Области;
Обл.П000020000101.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.НомПП);
Обл.П000020000102.Значение = ЭтаФорма.ДатаПодписи; // Дата составления
Обл.П000020000103.Значение = "00"; // Тип ????
Обл.П000020000201.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.ИНН); // Инн
Обл.П000020000301.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Фамилия); // Фамилия
Обл.П000020000302.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Имя); // Имя
Обл.П000020000303.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Отчество); // Отчество
Обл.П000020000401.Значение = 1; // Статус налогоплдательщика
Обл.П000020000402.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.ДатаРождения); // Дата рождения
Обл.П000020000403.Значение = 643;// Гражданство
Обл.П000020000404.Значение = 21;// Код вида документа
// Серия и номер документа
Обл.П000020000405.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.СерияДокумента)+" "+СокрЛП(ТекущаяСтрокаТЗСправки.НомерДокумента);
//// Адрес
Обл.П000020000501.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Поле1); // Почтовый индекс
Обл.П000020000502.Значение = 16; //СокрЛП(ТекущаяСтрокаТЗСправки.Поле2); // Код региона
Обл.П000020000503.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Поле3); // Район
Обл.П000020000504.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Поле4); // Город
Обл.П000020000505.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Поле5); // Населенный пункт
Обл.П000020000506.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Поле6); // Улица
Обл.П000020000507.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Поле7); // Номер дома
Обл.П000020000508.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Поле8); // Номер корпуса строения
Обл.П000020000509.Значение = СокрЛП(ТекущаяСтрокаТЗСправки.Поле9); // номер квартиры
//// Общие суммы налога\дохода по итогам налогового периода
Обл.П000020001003.Значение = 13; // Налоговая ставка
Обл.П000020004001_1.Значение = "1010"; // Код дохода 1
Обл.П000020004101_1.Значение = ТекущаяСтрокаТЗСправки.Результат; // Сумма дохода 1
Обл.П000020002003.Значение = ТекущаяСтрокаТЗСправки.Результат; // Общая сумма доходв
Обл.П000020002203.Значение = ТекущаяСтрокаТЗСправки.Результат; // Налоговая база
Обл.П000020003003.Значение = ТекущаяСтрокаТЗСправки.ндфл; // Сумма налога исчисленная
Обл.П000020003103.Значение = ТекущаяСтрокаТЗСправки.ндфл; // Сумма налога удержанная
Обл.П000020003203.Значение = ТекущаяСтрокаТЗСправки.ндфл; // Сумма налога уплаченная
БазаДивидендов = БазаДивидендов + ТекущаяСтрокаТЗСправки.Результат;
НалогСДивидендов = НалогСДивидендов + ТекущаяСтрокаТЗСправки.ндфл;
КолСправок = КолСправок + 1;
//конецесли;
КонецЦикла;
Сообщить("Загружено в 1С: ");
Сообщить("Кол-во= "+КолСправок);
Сообщить("База= "+БазаДивидендов);
Сообщить("НДФЛ= "+НалогСДивидендов);
Сообщить("Завершено: "+Формат(ТекущаяДата(), "ДЛФ=T"));
КонецПроцедуры
После загрузки удалить первую пустую справку.
С управляемыми формами раньше не работал, поэтому, может, написал неграмотно, но работает.
Правда, 1600 человек грузило 4 часа. А на копии на локальной машине всего 1 час.
Может, кому пригодится.