Создание ведомостей на выплату зарплаты в банк из XML банка

10.03.20

Интеграция - Обмен с интернет-банком

Обработка создает документы ведомость на выплату зарплаты в банк из файлов XML (Выгруженного с банка). Множественный выбор проверено на Бухгалтерии 3.0.62.17.

Скачать файлы

Наименование Файл Версия Размер
Создание ведомостей на выплату зарплаты в банк из XML банка :
.epf 8,04Kb
7
.epf 1 8,04Kb 7 Скачать

Для использования необходимо:

1. Необходимо включить использование начислений по зарплате  в этой программе.   Администрирование - параметры учета - настройки зарплаты - общие настройки - в этой программе.

2. Создать зарплатный проект

пример структуры файла XML^

<?xml version="1.0" encoding="Windows-1251" standalone="yes"?>
<СчетаПК ДатаРеестра="2019-01-16+03:00" НомерРеестра="1" БИК="123456789" РасчетныйСчетОрганизации="21212121212121212" ИНН="0000000000" НаименованиеОрганизации="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" ДатаДоговора="2018-08-07+03:00" НомерДоговора="67110430" ДатаФормирования="2019-01-16+03:00">
    <РезультатЗачисленияЗарплаты>
        <Сотрудник Нпп="1">
            <Фамилия>Иванов</Фамилия>
            <Имя>Иван</Имя>
            <Отчество>Иванович</Отчество>
            <ЛицевойСчет>12345678901234567890</ЛицевойСчет>
            <Сумма>1000</Сумма>
            <Результат>Зачислено</Результат>
            <РасшифровкаРезультата>Зачисление успешно проведено</РасшифровкаРезультата>
        </Сотрудник>
        <Сотрудник Нпп="2">
            <Фамилия>Петров</Фамилия>
            <Имя>Петр</Имя>
            <Отчество>Петрович</Отчество>
            <ЛицевойСчет>12345678901234567890</ЛицевойСчет>
            <Сумма>2000</Сумма>
            <Результат>Зачислено</Результат>
            <РасшифровкаРезультата>Зачисление успешно проведено</РасшифровкаРезультата>
        </Сотрудник>
        <Сотрудник Нпп="3">
            <Фамилия>Сидоров</Фамилия>
            <Имя>Сидр</Имя>
            <Отчество>Сидорович</Отчество>
            <ЛицевойСчет>12345678901234567890</ЛицевойСчет>
            <Сумма>3000</Сумма>
            <Результат>Зачислено</Результат>
            <РасшифровкаРезультата>Зачисление успешно проведено</РасшифровкаРезультата>
        </Сотрудник>
    </РезультатЗачисленияЗарплаты>
    <ВидЗачисления>01</ВидЗачисления>
    <КонтрольныеСуммы>
        <КоличествоЗаписей>3</КоличествоЗаписей>
        <СуммаИтого>6000</СуммаИтого>
    </КонтрольныеСуммы>
</СчетаПК>

 

Если в вашей конфигурации нет сотрудника или физического лица то он их создаст и примет на работу на начало месяца из даты реестра. каждый документ ведомости будет на дату из каждого файлика.

&НаКлиенте
Процедура Загрузить(Команда)
    ЧтениеВРучную_XML()
КонецПроцедуры

&НаКлиенте
Функция ПолучитьПутьКФайлу(Режим)
    Диалог = Новый ДиалогВыбораФайла(Режим);
    Диалог.Заголовок = "Выбрать"; 
    Диалог.Фильтр = "XML (*.xml)|*.xml"; 
    Диалог.МножественныйВыбор = Истина;
    Если Диалог.Выбрать() тогда
        Возврат Диалог;            
    Иначе                
        возврат Неопределено;
    КонецЕсли;
КонецФункции

&НаКлиенте
Процедура ЧтениеВРучную_XML()
    ПутьКФайлу =  ПолучитьПутьКФайлу(РежимДиалогаВыбораФайла.Открытие);
    Если ПутьКФайлу = Неопределено Тогда
        возврат;
    КонецЕсли;

    
    МассивФайлов = ПутьКФайлу.ВыбранныеФайлы;
    Для Каждого ИмяФайла Из МассивФайлов Цикл
        
        ВыбФайл = Новый Файл(ИмяФайла);
        ЧтениеXML = Новый ЧтениеXML; 
        ЧтениеXML.ОткрытьФайл(ВыбФайл.ПолноеИмя);
        

        
        ТекущееИмяУзла = "";
        Пока ЧтениеXML.Прочитать() Цикл
            Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "СчетаПК" Тогда     
                ТаблицаРеестра.Очистить();
                
                ДатаДокумента = Дата( СтрЗаменить(Лев(ЧтениеXML.ЗначениеАтрибута("ДатаРеестра"),10),"-",""));
                Продолжить;
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Сотрудник" Тогда            
                НоваяСтрока = ТаблицаРеестра.Добавить();    
                Продолжить;    
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Фамилия" Тогда            
                ТекущееИмяУзла = ЧтениеXML.Имя;    
                Продолжить;
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Имя" Тогда            
                ТекущееИмяУзла = ЧтениеXML.Имя;    
                Продолжить;
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Отчество" Тогда            
                ТекущееИмяУзла = ЧтениеXML.Имя;    
                Продолжить;
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "ЛицевойСчет" Тогда            
                ТекущееИмяУзла = ЧтениеXML.Имя;    
                Продолжить;
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "Сумма" Тогда            
                ТекущееИмяУзла = ЧтениеXML.Имя;    
                Продолжить;    
            
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда     
                Если ТекущееИмяУзла = "Фамилия" ТОгда 
                    НоваяСтрока.Фамилия = ЧтениеXML.Значение;
                ИначеЕсли ТекущееИмяУзла = "Имя" ТОгда 
                    НоваяСтрока.Имя = ЧтениеXML.Значение;    
                ИначеЕсли ТекущееИмяУзла = "Отчество" ТОгда 
                    НоваяСтрока.Отчество = ЧтениеXML.Значение;
                ИначеЕсли ТекущееИмяУзла = "ЛицевойСчет" ТОгда 
                    НоваяСтрока.ЛицевойСчет = ЧтениеXML.Значение;    
                ИначеЕсли ТекущееИмяУзла = "Сумма" ТОгда 
                    НоваяСтрока.Сумма = Число(ЧтениеXML.Значение);
                КонецЕсли;
                Продолжить;
            ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента И ЧтениеXML.Имя = "Сумма" Тогда
                ТекущееИмяУзла = "";
                Продолжить;
            КонецЕсли;
            
        КонецЦикла;
        ЧтениеXML.Закрыть();
        НовыйДокументНаСервере(ДатаДокумента, ТаблицаРеестра)
    КонецЦикла;
    
    ПоказатьОповещениеПользователя("Уведомление",,"Документ записан!",БиблиотекаКартинок.Успешно32);
КонецПроцедуры

&НаСервере
Процедура НовыйДокументНаСервере(ДатаДокумента,знач Таблица)
    новаяВедомость = Документы.ВедомостьНаВыплатуЗарплатыВБанк.СоздатьДокумент();
    новаяВедомость.ПериодРегистрации = НачалоМесяца(ДатаДокумента);
    новаяВедомость.Дата = ДатаДокумента;
    новаяВедомость.Организация = Объект.Организация;
    новаяВедомость.ЗарплатныйПроект = Объект.ЗарплатныйПроект;
    новаяВедомость.СпособВыплаты = Справочники.СпособыВыплатыЗарплаты.Зарплата;
    новаяВедомость.Округление = Справочники.СпособыОкругленияПриРасчетеЗарплаты.НайтиПоНаименованию("Без округления");
        
    Для каждого Стр из Таблица Цикл
        
        ФИОФИЗЛИЦА = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
        Если ФИОФИЗЛИЦА = Справочники.ФизическиеЛица.ПустаяСсылка() Тогда 
            НовыйФизЛицо = Справочники.ФизическиеЛица.СоздатьЭлемент();
            НовыйФизЛицо.Наименование = Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество;
            НовыйФизЛицо.ФИО = Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество;
            НовыйФизЛицо.Фамилия = Стр.Фамилия;
            НовыйФизЛицо.Имя = Стр.Имя;
            НовыйФизЛицо.Отчество = Стр.Отчество;    
            НовыйФизЛицо.Записать();
        КонецЕсли;
        
        ФИОСотрудника = Справочники.Сотрудники.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество); 
        Если ФИОСотрудника = Справочники.Сотрудники.ПустаяСсылка() Тогда 
            НовыйСотрудник = Справочники.Сотрудники.СоздатьЭлемент();
            НовыйСотрудник.Наименование = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество).Наименование;
            НовыйСотрудник.ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
            НовыйСотрудник.ГоловнаяОрганизация = Объект.Организация;            
            НовыйСотрудник.Записать();
            
            МенеджерЗаписи = РегистрыСведений.ФИОФизическихЛиц.СоздатьМенеджерЗаписи();
            МенеджерЗаписи.ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
            МенеджерЗаписи.Фамилия = Стр.Фамилия;
            МенеджерЗаписи.Имя = Стр.Имя;
            МенеджерЗаписи.Отчество = Стр.Отчество;
            МенеджерЗаписи.Период = НачалоМесяца(ДатаДокумента);        
            МенеджерЗаписи.Записать();
            
            МенеджерЗаписи1 = РегистрыСведений.ОсновныеСотрудникиФизическихЛиц.СоздатьМенеджерЗаписи();
            МенеджерЗаписи1.ГоловнаяОрганизация = Объект.Организация;
            МенеджерЗаписи1.ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
            МенеджерЗаписи1.Сотрудник = Справочники.Сотрудники.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
            МенеджерЗаписи1.ДатаОкончания = '39991231';
            МенеджерЗаписи1.Записать();
            
            МенеджерЗаписи2 = РегистрыСведений.ТекущиеКадровыеДанныеСотрудников.СоздатьМенеджерЗаписи();
            МенеджерЗаписи2.ТекущаяОрганизация = Объект.Организация;
            МенеджерЗаписи2.ГоловнаяОрганизация = Объект.Организация;
            МенеджерЗаписи2.ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
            МенеджерЗаписи2.Сотрудник = Справочники.Сотрудники.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
            МенеджерЗаписи2.ДатаПриема = НачалоМесяца(ДатаДокумента);
            МенеджерЗаписи2.ОсновноеРабочееМестоВОрганизации = Истина;
            МенеджерЗаписи2.Записать();
            
        КонецЕсли;
        
        
        
        ИдентификаторСтроки = Новый УникальныйИдентификатор;
        
        ДобавитьСтрокуСостава = новаяВедомость.Состав.Добавить();
        ДобавитьСтрокуСостава.ИдентификаторСтроки = ИдентификаторСтроки;
        ДобавитьСтрокуСостава.ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
        ДобавитьСтрокуСостава.НомерЛицевогоСчета = Стр.ЛицевойСчет;
        
        ДобавитьСтрокуЗарплата = новаяВедомость.Зарплата.Добавить();
        ДобавитьСтрокуЗарплата.ИдентификаторСтроки = ИдентификаторСтроки;
        ДобавитьСтрокуЗарплата.Сотрудник = Справочники.Сотрудники.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
        ДобавитьСтрокуЗарплата.ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);
        ДобавитьСтрокуЗарплата.ПериодВзаиморасчетов = НачалоМесяца(ДатаДокумента);
        ДобавитьСтрокуЗарплата.СтатьяРасходов = Справочники.СтатьиФинансированияЗарплата.НайтиПоКоду("ОТ");    
        ДобавитьСтрокуЗарплата.КВыплате = стр.Сумма;
        ДобавитьСтрокуЗарплата.НомерЛицевогоСчета = Стр.ЛицевойСчет;

        ДобавитьСтрокуФизЛица = новаяВедомость.ФизическиеЛица.Добавить();
        ДобавитьСтрокуФизЛица.ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Стр.Фамилия + " " + Стр.Имя + " " + Стр.Отчество);

    КонецЦикла;
    
    
    новаяВедомость.Записать(РежимЗаписиДокумента.Проведение);
    
КонецПроцедуры

 

См. также

Автоматическая обработка документов по банку при загрузке банковской выписки в 1С

Банковские операции Обмен с интернет-банком Эквайринг/ридер магнитных карт Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Устали вручную дозаполнять и корректировать документы по банку после загрузки банковской выписки? С помощью правил обработки банковской выписки вы сможете автоматически определять правильный вид хозяйственной операции, заполнять расшифровку, аналитику платежа и многое другое.

12000 руб.

21.03.2023    8174    32    12    

43

Обмен с клиентом банка для Беларуси

Банковские операции Обмен с интернет-банком Платформа 1С v8.3 Бухгалтерский учет Конфигурации 1cv8 1С:Конвертация данных 1С:Бухгалтерия 3.0 Беларусь Бухгалтерский учет Платные (руб)

Типовая обработка "Клиент-банк" из конфигурации 1С "Бухгалтерия для Беларуси, редакция 2.1" корректно работает с выписками только банка "Дабрабыт", до 28.01.2019 "Москва-Минск". А бухгалтеру нужно работать и с другими банками и с другими конфигурациями. Для этого было разработано расширение, которое позволит решить данную проблему!

10.10.2017    36385    69    Xershi    41    

57

SALE! 20%

Обмен с клиентом банка для БП 3.0, ERP 2.4, ERP 2.5 с дополнительными правилами загрузки

Обмен с интернет-банком Банковские операции Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Выписка клиент-банка загружается и обрабатывается по Вашим правилам. Заполнение реквизитов документов, анализ назначения платежа. Работа с клиент банком не отличается от типового варианта, а документы автоматически заполняются так, как нужно вам. Дополнительная обработка, работающая совместно с основным расширением позволяет подключать собственные произвольные алгоритмы.

20400 16320 руб.

03.04.2013    122245    243    377    

158

Загрузка банковской выписки из Excel и формирование файла формата 1CClientBankExchange (kl_to_1c)

Банковские операции Обмен с интернет-банком Загрузка и выгрузка в Excel Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Платные (руб)

Обработка создания файла по стандарту обмена с системами "Клиент банка" kl_to_1c.txt Формат файла обмена Российская Федерация, версия 1.03 При восстановлении учета в случае отсутствия в 1с банковских выписок (например, р/с в банке закрыт в связи с банкротством и доступ к выгрузке из клиент-банка невозможен), можно запросить у банка выписку за период в формате Excel. С помощью этой обработки создается файл формата 1CClientBankExchange, в 1с77 он назывался kl_to_1c.txt который загружается штатными средствами в 1с8. При этом будут созданы загружаемые контрагенты и их р/с.

3840 руб.

19.04.2019    41653    128    52    

62

Загрузка реестра платежей физических лиц из Сбербанка

Банковские операции Обмен с интернет-банком Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Обработка загружает реестры платежей Сбербанка в документы "Поступление на расчетный счет". (Возможность покупки за рубли или StartMoney).

6000 руб.

16.07.2020    19254    33    10    

12
Оставьте свое сообщение