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

10.03.20

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Создание ведомостей на выплату зарплаты в банк из XML банка :
.epf 8,04Kb ver:1
7
7 Скачать (1 SM) Купить за 1 850 руб.

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

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С v8.3 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

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

18000 руб.

21.03.2023    12137    84    16    

71

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

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

10.10.2017    38415    84    Xershi    41    

72

Банковские операции Обмен с интернет-банком Загрузка и выгрузка в 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. При этом будут созданы загружаемые контрагенты и их р/с.

4320 руб.

19.04.2019    44741    153    54    

87

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

Модуль представляет собой комплексную автоматизацию обмена данными 1С с банком для БП 3.0, ERP 2.4, ERP 2.5. Выписка клиент-банка загружается и обрабатывается по Вашим правилам. Заполнение реквизитов документов, анализ назначения платежа. Работа с клиент банком не отличается от типового варианта, а документы автоматически заполняются так, как нужно вам. Дополнительная обработка, работающая совместно с основным расширением позволяет подключать собственные произвольные алгоритмы.

20400 руб.

03.04.2013    125423    254    377    

165

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

Эффективное решение для загрузки банковской выписки из Клиент-Банка в 1С: Управление Торговлей ред. 10.3 Требования к файлу экспорта из клиент-банка: поддержка формата 1С:Предприятие для обмена с клиент-банками. Быстрая разноска выписки по видам операции, видам документов, статьям движения денежных средств, контрагентам, подразделениям. Легкая настройка правил разноски выписки. Работа с видами документов: Платежное поручение и Платежный ордер. Набор часто встречающихся правил разноски выписки при начале работы с обработкой: автозаполнение. Создание новых контрагентов (ИНН, КПП, полное наименование, банковский счет, договор) Проверка уникальности справочника "Контрагенты" по ИНН, номеру расчетного счета. Ранее созданные платежные поручения учитываются. Проведение документов банковской выписки.

4800 руб.

18.05.2015    72899    42    30    

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