Сижу очищаю жёсткий диск от накопившегося хлама. Ковыряясь в старых обработках нашёл одну, которая покажется интересной разработчикам 1С.
Преамбула:
Сидели мы как-то в компании, выпивали. И ко мне обратилась знакомая бухгалтер с просьбой: не мог бы я подумать на тему того, чтобы сделать процесс внесения п/п в систему Банк-клиент из 1С - автоматическим. Тогда, будучи под хмельком, я отшутился. Несколько позже я заинтересовался этой проблемой, поковырявшись с часок с 1С я нашел там обработку для банка ТуранАлем (2006 год), однако мой бухгалтер обслуживался в ЦеснаБанке, и формат выдаваемый этой обработкой не подходил для клиентской версии банка Цесна.
Я тогда обратился к своей знакомой с просьбой посмотреть эту программу. Досконально её изучив, обнаружил в этой системе форматы всех импортируемых документов, типы и длины импортируемых полей. Дальше было дело техники, потребовалось 20 минут, чтобы написать обработку при помощи которой легко и не принуждённо можно вносить платежные поручения в программу Банк-клиент.
Обработка настолько мала, что могу привести её текст тут
- Код: Выделить всё
//*******************************************
Функция ДополнитьПробелами(стрВыгрузки,ДлинаСтроки,ДобавлятьСПереди=0)
стрВыгрузки=СокрЛП(стрВыгрузки);
Результ="";
Если СтрДлина(стрВыгрузки) > ДлинаСтроки Тогда
Результ=Лев(стрВыгрузки,ДлинаСтроки);
Иначе
стрПробел="";
Для ИндексПробела = 1 По ДлинаСтроки-СтрДлина(стрВыгрузки) Цикл
стрПробел=стрПробел+" ";
КонецЦикла;
Результ=?(ДобавлятьСПереди = 0,стрВыгрузки+стрПробел,стрПробел+стрВыгрузки);
КонецЕсли;
Возврат Результ;
КонецФункции
//*******************************************
Процедура Сформировать()
Перем ИмяФайла,ИмяКаталога;
ИмяКаталога="F:\Мои документы";
ИмяФайла = глПредставлениеДокумента(ПлатежноеПоручение);
ФС.ВыбратьФайл(1,ИмяФайла,ИмяКаталога,"Выберите файл для выгрузки платежки","Текст (*.txt) |*.txt");
СтрокаВыгрузки=Строка(ДатаГод(ПлатежноеПоручение.ДатаДок))+?(СтрДлина(СокрЛП(Строка( ДатаМесяц(ПлатежноеПоручение.ДатаДок))))=1,"0"+СокрЛП(Строка(ДатаМесяц( ПлатежноеПоручение.ДатаДок))),СокрЛП(Строка(ДатаМесяц(
ПлатежноеПоручение.ДатаДок))))+?(СтрДлина(СокрЛП(Строка(ДатаЧисло( ПлатежноеПоручение.ДатаДок))))=1,"0"+СокрЛП(Строка(ДатаЧисло( ПлатежноеПоручение.ДатаДок))),СокрЛП(Строка(ДатаЧисло( ПлатежноеПоручение.ДатаДок))))+
ДополнитьПробелами(ПлатежноеПоручение.БанковскийСчет.БанкОрганизации.Код,9)+ ДополнитьПробелами(ПлатежноеПоручение.БанковскийСчет.Номер,9)+ ДополнитьПробелами(ПлатежноеПоручение.Контрагент.ПолноеНаименование,150)+
ПлатежноеПоручение.Контрагент.РНН+ДополнитьПробелами(
ПлатежноеПоручение.РасчетныйСчетКонтрагента.Банк.Код,9)+
ДополнитьПробелами(ПлатежноеПоручение.РасчетныйСчетКонтрагента.Банк.Наименование,100)+
ДополнитьПробелами(ПлатежноеПоручение.РасчетныйСчетКонтрагента.НомерСчета,9)+
ДополнитьПробелами(Строка(ПлатежноеПоручение.Сумма),15,1)+
ДополнитьПробелами(ПлатежноеПоручение.Содержание,250)+
?(ПустоеЗначение(ПлатежноеПоручение.КодНазначенияПлатежа)=0,
ПлатежноеПоручение.КодНазначенияПлатежа.Код,ДополнитьПробелами("",3))+
?(ПустоеЗначение(ПлатежноеПоручение.КодБюджетнойКласификации)=0,
ПлатежноеПоручение.КодБюджетнойКласификации.Код,ДополнитьПробелами("",6))+
ДополнитьПробелами(ПлатежноеПоручение.Организация.Руководитель.Получить(
ПлатежноеПоручение.ДатаДок).Наименование,35)+ДополнитьПробелами(
ПлатежноеПоручение.Организация.ГлавныйБухгалтер.Получить(
ПлатежноеПоручение.ДатаДок).Наименование,35)+ДополнитьПробелами(Строка(
ПлатежноеПоручение.СтавкаНДС.Ставка),6,1)+ДополнитьПробелами(Строка(
ПлатежноеПоручение.Организация.КБЕ),2)+ДополнитьПробелами(Строка(
ПлатежноеПоручение.Контрагент.КБЕ),2)+"1"+ДополнитьПробелами(Формат(
ПлатежноеПоручение.СуммаНДС,"Ч015,2"),15,1);
ФайлВыгрузки = СоздатьОбъект("Текст");
ФайлВыгрузки.ДобавитьСтроку(СтрокаВыгрузки);
ФайлВыгрузки.Записать(ИмяКаталога+ИмяФайла);
Предупреждение("Готово!!!");
Если ОткрыватьФайлПослеВыгрузки = 1 Тогда
ЗапуститьПриложение(ИмяКаталога+ИмяФайла);
КонецЕсли;
КонецПроцедуры