Конфигурация «1С:Управление автотранспортом Проф» (УАТ), разработанная компанией «Рарус», является отраслевым решением, и её структура метаданных может существенно отличаться от типовых решений фирмы «1С», таких как «Бухгалтерия предприятия» или «Управление торговлей». Одной из часто возникающих трудностей является отсутствие встроенной или корректно работающей обработки «Клиент-Банк» для выгрузки платежных поручений. Проанализируем ситуацию и разберем несколько эффективных способов решения этой задачи.
Разберем наиболее архитектурно правильный подход. Программные продукты линейки УАТ зачастую не предназначены для ведения полноценного бухгалтерского учета. Разработчики предполагают следующую схему работы, которую мы и рекомендуем реализовать:
ПлатежноеПоручениеИсходящее непосредственно в конфигурации «Управление автотранспортом» для оперативного планирования денежных средств и формируете реестр платежных поручений.Этот метод позволяет избежать «перепиливания» конфигурации и гарантирует корректность форматов выгрузки даже при изменениях в банковских протоколах.
Если ваша конфигурация УАТ Проф базируется на современной версии платформы 1С 8.3 и имеет актуальный релиз, проверим наличие технологии DirectBank. Эта технология позволяет отправлять платежи в банк Уралсиб напрямую, без создания промежуточных текстовых файлов. Рассмотрим шаги настройки:
В ситуациях, когда обмен с бухгалтерией невозможен, а DirectBank не поддерживается старым релизом, проанализируем вариант адаптации внешней обработки ClientBankExchange.epf. Возьмем за основу обработку из состава «Управление торговлей 10.3» или «Бухгалтерия предприятия 2.0» (для обычных форм). Однако просто «свиснуть» ее не получится из-за различий в именах реквизитов и перечислений.
Рассмотрим, какие изменения в коде нам придется внести. В УАТ Проф структура документа ПлатежноеПоручениеИсходящее может быть упрощена. Например, количество видов операций в перечислении ВидыОперацийПоДенежнымСредствам может быть значительно меньше. Проанализируем пример запроса, который может потребоваться переписать внутри обработки для корректного сбора данных:
// Пример модифицированного запроса для выборки платежек в УАТ
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Платежка.Ссылка КАК Ссылка,
| Платежка.Номер КАК Номер,
| Платежка.Дата КАК Дата,
| Платежка.СуммаДокумента КАК Сумма,
| Платежка.ВалютаДокумента КАК Валюта,
| Платежка.Контрагент КАК Получатель,
| Платежка.СчетКонтрагента КАК СчетПолучателя,
| Платежка.Организация КАК Плательщик,
| Платежка.СчетОрганизации КАК СчетПлательщика,
| Платежка.НазначениеПлатежа КАК Назначение
|ИЗ
| Документ.ПлатежноеПоручениеИсходящее КАК Платежка
|ГДЕ
| Платежка.Проведен = ИСТИНА
| И Платежка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
Важный нюанс: при формировании текстового файла выгрузки необходимо строго соблюдать стандарт обмена 1C-Предприятие - Клиент-банк. Для банка Уралсиб (система ДБО) критически важно, чтобы в шапке файла была указана кодировка (обычно Windows) и версия формата (например, 1.03).
Если вы решили дописывать свою выгрузку или адаптировать существующую, выясним требования формата. Файл обмена — это текстовый файл, где каждая строка представляет собой пару Ключ=Значение. Посмотрим на обязательные поля, которые должен содержать блок платежного поручения:
СекцияДокумент=Платежное поручение — начало описания документа.Номер=... — номер документа (важно следить за префиксами, банк может их не принять).Дата=... — дата в формате ДД.ММ.ГГГГ.Сумма=... — сумма с разделителем точка.ПлательщикСчет=... — 20-значный номер счета вашей организации.ПолучательСчет=... — счет контрагента.Если при загрузке файла в систему ДБО Уралсиб возникает ошибка «Неверная структура файла», проанализируем кодировку. Часто внешние обработки по умолчанию сохраняют файл в UTF-8, в то время как старые системы банк-клиент ожидают ANSI (Windows-1251) или OEM (DOS). В коде 1С при записи текстового файла используйте следующий метод:
// Пример записи файла в кодировке Windows-1251
Текст = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
Текст.ЗаписатьСтроку("1CPayment");
Текст.ЗаписатьСтроку("ВерсияФормата=1.03");
Текст.ЗаписатьСтроку("Кодировка=Windows");
// ... далее цикл по документам
Текст.Закрыть();
Выясним наиболее рациональный порядок действий для программиста 1С при работе с УАТ Проф:
1. Проверьте наличие DirectBank. Это самый современный и надежный способ. Если он есть — используйте его, это сэкономит десятки часов на разработку и поддержку.
2. Используйте синхронизацию с БП. Если DirectBank недоступен, не пытайтесь «изобретать велосипед» внутри УАТ. Проще один раз настроить синхронизацию с типовой Бухгалтерией, где все механизмы обмена с банками уже отлажены до совершенства.
3. Адаптация кода — крайняя мера. Если вы все же решили пилить внешнюю обработку, приготовьтесь к тому, что при каждом обновлении конфигурации УАТ от Раруса вам придется проверять соответствие реквизитов, так как разработчики отраслевых решений могут менять структуру объектов чаще, чем в типовых конфигурациях.
При реализации выгрузки всегда помните о безопасности данных. Файлы обмена содержат конфиденциальную финансовую информацию, поэтому при использовании промежуточных текстовых файлов рекомендуется настроить автоматическое удаление файла после успешной загрузки в банковский клиент.