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

10.03.20

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

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

Файлы

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

Наименование Скачано Купить файл
Создание ведомостей на выплату зарплаты в банк из XML банка :
.epf 8,04Kb ver:1
7 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

19520 руб.

21.03.2023    23322    163    39    

123

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

Корректируйте банковские документы быстро и легко! Создайте правило обработки, и оно автоматически применится при загрузке выписки, экономя ваше время (Можно настроить отбор по любому реквизиту или по регулярному выражению). Решение позволяет автоматически заполнять расшифровку платежа, исключать загрузку ненужных документов (дублей) из банка, заполнять комиссию за эквайринг и многое другое. Вам не нужно доплачивать за алгоритмы, они уже включены в решение. Автоматическая обработка применяется при загрузке данных как из файлов клиент банка, так и через DirectBank. Доступен AI чат бот который умеет консультировать по функционалу решения.

15250 руб.

20.12.2024    15664    69    29    

65

Обмен с интернет-банком 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Автоматическая загрузка банковской выписки — это решение для интеграции с банками через API, которое упрощает процедуру загрузки банковских операций в 1С, экономя время и ускоряя бизнес-процессы предприятия. Решение поддерживает в т.ч. автоматическую загрузку выписок из файлов в электронной почте и локальном каталоге.

73200 руб.

26.03.2026    1034    2    2    

1

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

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

12200 руб.

10.10.2017    42576    97    49    

81

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

5612 руб.

19.04.2019    49631    170    54    

104

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

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

20740 руб.

03.04.2013    132807    267    381    

171
Для отправки сообщения требуется регистрация/авторизация