Некоторое время назад вся Беларусь перешла на использование счетов и БИК банков на международный формат. Ничего страшного и сложного в этом нет, но с банками у нас наблюдается точно такая же ситуация, как с адресным классификатором (//infostart.ru/public/686675/) - нам необходимо заплатить за его загрузку в конфигурацию.
Данная обработка позволит вам загрузить банки основной список банков себе в базу и на некоторое время (пока не появятся новые банки и/или их филиалы) забыть про них. Сам классификатор уже вшит в обработку.
Разработку данной конфигурации я хотел, пытался и делал с помощью методологии BDD. Это один из моих первых опытов, поэтому хочу немного описать свой путь.
Для начала я создал фичу, которая выглядела так:
Функционал: ЗагрузкаКлассификатораБанковВУНФ
Как директор небольшого предприятия
Хочу автоматически загрузить классификатор банков
Чтобы не тратить время на ручную загрузку банков
Сценарий: Загрузка классификатора банков
Допустим, у меня есть обработка загрузки банковского классификатора
И в классификаторе банков еще нет элементов
Когда я открываю обработку загрузки классификатора
И я нажимаю кнопку "Заполнить банки"
И Я нажимаю на кнопку "Создать банки"
Тогда Тогда классификатор банков загружен верно
Сценарий: Очистка классификатора банков
Допустим, у меня есть обработка загрузки банковского классификатора
И в классификаторе банков еще есть элементы на которые не ссылаются другие элементы базы
Когда я открываю обработку загрузки классификатора
И я нажимаю кнопку "Очистить банки"
Тогда классификатор банков очищается
Сценарий: Загрузка классификатора банков с синхронизацией
Допустим, у меня есть обработка загрузки банковского классификатора
И в классификаторе банков уже есть элементы
Когда я открываю обработку загрузки классификатора
И я нажимаю кнопку "Заполнить банки"
И Я нажимаю на кнопку "Создать банки"
Тогда Тогда классификатор банков загружен верно
Сценарий: Очистка классификатора банков от элементов, на которые есть ссылки
Допустим, у меня есть обработка загрузки банковского классификатора
И в классификаторе банков уже есть элементы
Когда я открываю обработку загрузки классификатора
И я нажимаю кнопку "Очистить банки"
Тогда удаляются элементы на которые больше нет ссылок
Затем, используя отличные инструменты команды Silverbulleters:
1) Vanessa-bdd-editor - https://github.com/silverbulleters/vanessa-bdd-editor
2) Vanessa-behavior - https://github.com/silverbulleters/vanessa-behavior
3) и обработку HotClick из проекта https://github.com/silverbulleters/vanessa-stack-commons
А сам проект ведется на базе их же шаблона каталогов - silverbulleters/vanessa-bootstrap
В итоге, детализируя шаги и генерируя фичи из воздуха, получился вот такой вот итоговый файл фичи:
# encoding: utf-8
# language: ru
@tree
Функционал: ЗагрузкаКлассификатораБанковВУНФ
Как директор небольшого предприятия
Хочу автоматически загрузить классификатор банков
Чтобы не тратить время на ручную загрузку банков
Контекст:
Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий
И Я Очищаю Классификатор банков
Сценарий: Загрузка классификатора банков
Допустим, у меня есть обработка загрузки банковского классификатора
Когда открылось окно "hot click"
И в таблице "Состав" я перехожу к строке:
| 'Имя' |
| 'ЗагрузитьКлассификаторБанков' |
И в классификаторе банков еще нет элементов
Когда я открываю обработку загрузки классификатора
И я нажимаю на кнопку "Открыть"
И я нажимаю кнопку "Заполнить банки"
Когда я нажимаю на кнопку "Заполнить банки"
И Я нажимаю на кнопку "Создать банки"
Когда я нажимаю на кнопку "Создать банки"
Тогда Тогда классификатор банков загружен верно
Когда В командном интерфейсе я выбираю "Компания" "Все справочники"
Тогда открылось окно "Справочники"
И я нажимаю на кнопку "Банки"
Тогда открылось окно "Банки"
И таблица "Список" стала равной:
| 'БИК' | 'Корр. счет' | 'Наименование' | 'Телефоны' |
# {Тут у меня список}
Сценарий: Очистка классификатора банков
Допустим, у меня есть обработка загрузки банковского классификатора
Когда открылось окно "hot click"
И в таблице "Состав" я перехожу к строке:
| 'Имя' |
| 'ЗагрузитьКлассификаторБанков' |
И в классификаторе банков еще есть элементы на которые не ссылаются другие элементы базы
Когда я открываю обработку загрузки классификатора
И я нажимаю на кнопку "Открыть"
И я нажимаю кнопку "Очистить банки"
И я нажимаю на кнопку "Очистить банки"
И Пауза 20
Тогда классификатор банков очищается
Сценарий: Загрузка классификатора банков с синхронизацией
Допустим, у меня есть обработка загрузки банковского классификатора
Когда открылось окно "hot click"
И в таблице "Состав" я перехожу к строке:
| 'Имя' |
| 'ЗагрузитьКлассификаторБанков' |
И в классификаторе банков уже есть элементы
Когда я открываю обработку загрузки классификатора
И я нажимаю на кнопку "Открыть"
И я нажимаю кнопку "Заполнить банки"
Когда я нажимаю на кнопку "Заполнить банки"
И Я нажимаю на кнопку "Создать банки"
Когда я нажимаю на кнопку "Создать банки"
Тогда Тогда классификатор банков загружен верно
Когда В командном интерфейсе я выбираю "Компания" "Все справочники"
Тогда открылось окно "Справочники"
И я нажимаю на кнопку "Банки"
Тогда открылось окно "Банки"
И таблица "Список" стала равной:
| 'БИК' | 'Корр. счет' | 'Наименование' | 'Телефоны' |
# {Тут у меня список}
Сценарий: Очистка классификатора банков от элементов, на которые есть ссылки
Допустим, у меня есть обработка загрузки банковского классификатора
Когда открылось окно "hot click"
И в таблице "Состав" я перехожу к строке:
| 'Имя' |
| 'ЗагрузитьКлассификаторБанков' |
И в классификаторе банков уже есть элементы
Когда я открываю обработку загрузки классификатора
И я нажимаю на кнопку "Открыть"
И я нажимаю кнопку "Очистить банки"
И я нажимаю на кнопку "Очистить банки"
И Пауза 20
Тогда удаляются элементы на которые больше нет ссылок
Когда В командном интерфейсе я выбираю "Компания" "Все справочники"
Тогда открылось окно "Справочники"
И я нажимаю на кнопку "Банки"
Тогда открылось окно "Банки"
Тогда таблица "Список" стала равной:
| 'БИК' | 'Корр. счет' | 'Наименование' | 'Телефоны' |
| 'AKBBBY215' | ' ' | 'Филиал № 527 "Белжелдор" ОАО "АСБ Беларусбанк" в г. Минске' | '213-21-23' |
| 'OLMPBY2X' | ' ' | 'ЦБУ № 701 ОАО "Белгазпромбанк" г. Минск' | '204-89-51, 229-15-73, 229-15-74' |
Благодаря данной фиче был реализован и протестирован функционал обработки по загрузке банков в базу и очистке справочника, в случае необходимости (и, естественно, отсутствию ссылок на данные элементы справочника банков)
Можно скачать как саму обработку, так и фичу (файл с расширением .feature) и обработку ее реализации на 1С.