При обновлении типовой конфигурации «1С:Торговля и Склад 7.7» до релиза 7.70.988 пользователи часто сталкиваются с ошибкой при попытке выгрузить платежные поручения для клиент-банка. Если в обработке ПредприятиеКлиент (меню «Импорт/экспорт платежных документов») установлен флажок «Контролировать безопасность обмена с банком», выгрузка прерывается аварийным сообщением:
{Обработка.ПредприятиеКлиент.Форма.Модуль(1621)}: Неверно указан вид. КонтрольБезопасностиОбменаСБанком
В то же время при снятом флажке файлы формируются и выгружаются без сбоев. Разберем по шагам, почему возникает эта ошибка, для чего задумывался данный механизм и какими способами можно восстановить корректную работу программы.
Проанализируем текст диагностического сообщения платформы «1С:Предприятие 7.7». Ошибка Неверно указан вид при выполнении вызова ОткрытьФормуМодально("Обработка.КонтрольБезопасностиОбменаСБанком", Параметры) однозначно указывает на то, что встроенный язык пытается обратиться к объекту метаданных, которого физически нет в дереве конфигурации (файле 1Cv7.MD).
В релизе «Торговля и Склад 7.7» ред. 9.2 (релиз 7.70.988) разработчики типовой конфигурации обновили модуль обработки выгрузки и добавили интерфейсный флажок для проверки безопасности. Однако саму обработку КонтрольБезопасностиОбменаСБанком в состав метаданных включить забыли. Также подобная ошибка может возникать, если база дорабатывалась, и при обновлении через режим объединения конфигураций программист отметил только модуль обработки ПредприятиеКлиент, пропустив добавление нового объекта метаданных.
Выясним, для чего фирмой «1С» внедрялся этот функционал. Данный механизм был разработан по рекомендациям ФинЦЕРТ Банка России для защиты от банковских троянов. Вредоносные программы на зараженных компьютерах отслеживают создание стандартного файла обмена (например, 1c_to_kl.txt) и подменяют в нем банковские реквизиты получателя и суммы перед тем, как бухгалтер загрузит файл в программу банка.
Логика работы механизма при включенном контроле:
КонтрольБезопасностиОбменаСБанком, которое удерживает фокус и контролирует целостность файла (хэш, размер и время изменения).Рассмотрим самый оперативный способ, не требующий внесения изменений в конфигуратор. Если платежные документы требуется отправить срочно, достаточно снять флажок «Контролировать безопасность обмена с банком» в форме обработки «Импорт/экспорт платежных документов». В этом случае условие проверки в коде пропускается, и файл формируется стандартным образом.
Если клиенту принципиально необходим механизм безопасного обмена, добавим недостающий объект метаданных вручную. Разберем по шагам, как это сделать:
КонтрольБезопасностиОбменаСБанком присутствует в смежных типовых конфигурациях фирмы «1С» того же периода: в «1С:Бухгалтерский учет 7.7» (начиная с релиза 7.70.628), «1С:УСН 7.7» (с релиза 7.70.269) или «1С:Производство + Услуги + Бухгалтерия 7.7» (с релиза 7.70.377).КонтрольБезопасностиОбменаСБанком..ert) либо выполним объединение конфигураций: откроем рабочую базу «Торговля и Склад» в Конфигураторе, перейдем в меню «Конфигурация» — «Объединение конфигураций», выберем файл 1Cv7.MD от «Бухгалтерского учета» и отметим галочкой только обработку КонтрольБезопасностиОбменаСБанком.ОткрытьФормуМодально успешно найдет вид обработки, и функционал заработает штатно.Если нет возможности редактировать метаданные или вносить объект в структуру конфигурации, рассмотрим программный обход ошибки в модуле формы ПредприятиеКлиент.
Если файл обработки сохранен отдельно с расширением .ert (например, в каталоге информационной базы), заменим обращение к встроенным метаданным на вызов внешнего файла:
// Заменяем типовую строку вызова:
// ОткрытьФормуМодально("Обработка.КонтрольБезопасностиОбменаСБанком", Параметры);
// На открытие внешней обработки:
ИмяФайлаОбработки = КаталогИБ() + "КонтрольБезопасностиОбменаСБанком.ert";
Если ФС.СуществуетФайл(ИмяФайлаОбработки) = 1 Тогда
ОткрытьФормуМодально("Отчет", Параметры, ИмяФайлаОбработки);
Иначе
Предупреждение("Файл контроля безопасности не найден!");
КонецЕсли;
Если же контроль безопасности не планируется использовать вовсе, можно закомментировать проблемный вызов либо принудительно отключить флажок при инициализации формы обработки.
Платформа «1С:Предприятие 7.7» не поддерживает технологию DirectBank (прямой защищенный обмен с банком без выгрузки в файл) и не обладает встроенными криптографическими средствами шифрования. Поэтому при отказе от встроенного контроля безопасности необходимо соблюдать следующие правила защиты:
C:\ или на «Рабочий стол» со стандартным именем 1c_to_kl.txt. Вирусы настроены на сканирование стандартных каталогов. Укажите уникальный скрытый каталог и нестандартное имя файла.