Всем привет. Ко мне часто обращаются фирмы, с которых разные клиенты требуют предоставления DBF файлов отгрузочных документов, помимо обычных ТОРГ-12. Специфические отрасли, типа фармацевтики и не только, сидят на старом ПО и хотят электронные накладные в формате DBF. Причем, каждому клиенту подавай свой формат. Если в штате есть программист, даже ему рано или поздно наскучит копипастить имена полей из тех.задания каждого клиента во внешние печатные формы. А если фирма небольшая, а программиста в штате нет, тогда сотрудникам нужно искать в интернете ПО для создания DBF файлов вручную и разбираться с этим ПО порой всем дружным коллективом.
В общем, предлагаю простейшее на первый взгляд расширение для любой конфигурации на упр.формах. при подключении к типовым 1С конфигурациям или КИС (корпоративным информационным системам) не забывайте про ошибки применимости расширений. следите за режимом совместимости.
При подключении расширения добавляется подсистема
В подсистеме всего два объекта: Справочник "Шаблоны выгрузки" и обработка "Настройка выгрузка DBF".
Начинать нужно, разумеется, с шаблона. Жмем на кнопку, открывается список шаблонов. Создаем новый.
Указываем наименование шаблона, понятное для себя. Указываем тип документа, который хотим выгрузить и кодировку Либо OEM, либо ANSI. В зависимости от того, что запросил клиент.
Ниже видим два поля. В первом поле таблица с параметрами полей DBF. Для каждой колонки DBF файла нужно создать описание. За это отвечает группа колонок "Параметры поля". Пользователю необходимо указать имя, тип и параметры типа. Если строка, выбираем S и указываем длину строки, число - выбираем N и указываем его размерность, дата - D.
Далее идет группа колонок "источник поля". Тут будем указывать, откуда программе брать данные для заполнения этого поля. Можно указать любой реквизит документа, можно указать реквизит табличной части. Можно указать любой произвольное значение, выбрав из примитивных типов: строка, число, дата. Система сама заполняет список выбора для реквизитов документа и табличной части, сканируя метаданные выбранного в шапке типа документа. Руками набивать ничего не нужно, если это не произвольное значение. Удобно. Так же я потратил некоторое количество времени на защиту от ввода ошибочных данных. От всего не защитил, но все же. Если выбрали тип колонки S - то нельзя ввести размерность числа и тп. Если выбран реквизит табличной части, то блокируется для ввода произвольное значение и реквизит документа.
Пользователь должен понимать: если мы хотя бы в одной колонке указали путь к реквизиту табличной части, тогда строк в выходном DBF файле будет столько же, сколько строк в табличной части документа. Если табличные части в настройках колонок не задействованы, файл по умолчанию будет содержать одну строку с данными. Так же можно указать комментарий к каждой колонке, чтобы не забыть, что это, т.к. часто вижу имена колонок PRCBNDS (цена без ндс, например).
Второе поле под табличной частью настройки колонок полезно программистам. Каждое изменение в таблице настроек колонок динамически генерирует программный код, который просто можно скопировать в конфигуратор и воспользоваться им для создания файла.
Итак, шаблон заполнили. Можно что-нибудь выгрузить. Открываем обработку настройки выгрузки:
Окно разбито на три части. первая слева вверху - список всех шаблонов. Справа - настройка колонок выбранного шаблона. Снизу - заготовка будущего DBF файла.
Сперва нужно выбрать документ в шапке. Наш объект для выгрузки. Как только выбор будет сделан, первая табличка со списком шаблонов станет отображать только те шаблоны, которые относятся к ТИПУ выбранного документа. В нашем случае при выборе документа отобразились все (целый 1) шаблоны для документов типа "реализация товаров и услуг". Одновременно с выбором документа заполняется и нижняя колонка, где можно фактически увидеть готовый файл выгрузки. Виден список колонок и количество строк. Что важно: каждую ячейку можно скорректировать вручную, если что-то не понравилось. Более того, можно добавлять и удалять строки. То есть можно по выбранному вверху шаблону заполнить DBF файл руками полностью или частично, не пользуясь никаким сторонним софтом.
Потом просто нажимаем кнопку "сформировать".
P.S. Планирую расширить функционал на произвольные формулы-алгоритмы при заполнении шаблонов. Понятное дело, что чаще всего выгрузка не ограничивается простыми ссылками на реквизиты документа или табличной части. Пока что на такой случай есть произвольные значения и ручная правка данных файла перед его выгрузкой.
Проверял только в клиент-серверном варианте на КИС и на типовой бухе. На платформе 8.3.16.* в скачиваемом файле режим совместимости настроен на 8.3.14 (типовая буха на тек. момент).