Приложение 6. Импорт данных из
XLS- и DBF-файлов
Требования к файлу *.dbf
Требования к файлу *.xls
Импорт данных
Обновление отчета
Добавление данных в отчет
Заполнение форм отчетности в системе может выполняться и на основании данных файлов *.dbf или *.xls формата.
Требования к файлу *.dbf
Dbf-файл может быть создан в любой программе, необходимо лишь, чтобы он удовлетворял следующим требованиям системы:
1. имена полей в файле должны соответствовать семи последним символам названий реквизитов формата, утвержденного для данной формы отчетности ФНС России, дополненных в начале символом «П». Например: П0009007 – для реквизита с именем П000220009007;
2. данные по каждому разделу формы отчетности должны храниться в отдельных файлах. Структура разделов утверждена приказом ФНС России об утверждении формата предоставления отчетности в электронном виде;
3. все файлы разделов, соответствующие одной форме отчетности, хранятся в отдельном каталоге. Название каталога – это название формы отчетности.
Предварительно dbf-файл всегда можно просмотреть, воспользовавшись встроенными возможностями СБиС++, например, с помощью команды «Открыть файл» ().
Формат имени файла КНД В_ВВВВВ ПП РРРРРР Название раздела.DBF КНД – код налоговой декларации.
В_ВВВВВ – версия формата.
ПП – порядковый номер (используется для упорядочения файлов по имени).
Приложение 6. Импорт данных из XLS- и DBF-файлов РРРРРР – номер раздела. Номер раздела соответствует первым шести символам названий реквизитов в приказах утверждения форматов ФНС России. Например, П00022 – для группы реквизитов раздела 22.
КНД, версия формата и название раздела берутся из приказов ФНС России об утверждении форматов представления отчетности в электронном виде.
Пример имени файла:
1151046 2_01002 01 П00022 Данные о выплатах инвалидам.DBF Требования к файлу *.xls К файлам *.xls, как и к файлам *.dbf, программа СБиС++ также предъявляет минимальные, но необходимые требования, от выполнения которых зависит, правильно ли будет прочитан у вас тот или иной файл с данными:
для каждого файла *.xls необходимо создать специальный файл с шаблонами для чтения данных. Шаблоны представляют собой наборы параметров, которые задают порядок чтения данных из файла Excel.
Таким образом, теоретически можно прочитать данные из любого файла Excel, настроив соответствующим образом шаблоны для его чтения. Но более предпочтительно, чтобы файл Excel был формой отчетности, выгруженной из системы «Консультант Плюс».
Файл шаблонов Файл шаблонов – текстовый файл (*.txt), который содержит шаблоны для чтения одного файла *.xls. C помощью шаблонов следует описать все данные, которые содержит данный Excel-файл. Иначе программа не сможет его прочитать.
Порядок следования шаблонов в файле Для каждого типа данных предусмотрены свои шаблоны – шаблон для листа (вкладки) книги Excel, шаблон для одиночного реквизита, шаблон для блока реквизитов. Все типы шаблонов рассмотрены чуть ниже по тексту.
Порядок следования шаблонов в файле такой же, как и порядок следования данных в файле Excel. Сначала идет шаблон Листа (вкладки), за ним Требования к файлу *.xls следуют шаблоны реквизитов данного Листа. Далее начинаем читать следующий Лист – указываем шаблон для следующего листа и шаблоны реквизитов, которые он содержит, и т. д. Кроме шаблонов, никаких других знаков указывать в файле не требуется.
Размещение файлов шаблонов Готовый файл шаблонов положите в каталог модулей, в папку соответствующей формы отчетности (там они будут находиться вместе с *.html и *.prg файлами данной формы).
Путь к папке формы: СБиС++\ Модули\ Электронная отчетность\ Формы отчетности\…\.
При установке программы в папках некоторых форм (например, Прибыли) автоматически создаются образцы файлов шаблонов.
Файлы образцов шаблонов находятся в каталоге модулей, в папках соответствующих форм. Вы можете использовать эти файлы для создания своих шаблонов.
Таким образом, в папке формы отчетности могут находиться несколько файлов шаблонов. По умолчанию программа использует последний по дате файл.
Имя файла шаблонов Имя файла шаблонов имеет следующий формат:
формат Excel.txt где – имя формы отчетности в реестре СБиС++, после имени формы через пробел указать текст: «формат Excel».
Налоговая декларация по налогу на прибыль организаций (от 03.06.04 изм 24.03.05) формат Excel.txt Настройки шаблонов Рассмотрим шаблоны для каждого типа данных в файле Excel.
Шаблон для Листа Приложение 6. Импорт данных из XLS- и DBF-файлов Шаблон для чтения Листа (вкладки) книги Excel. В файле шаблонов шаблон Листа должен предшествовать шаблонам для реквизитов этого листа.
Тип = ВыборВкладки Имя = Стр.1-16 (разд.1, л.02, пр.1-7) Шаблон для чтения одиночного реквизита – «Да» – реквизит является обязательным и должен присутствовать в файле, «Нет» – реквизит не является обязательным, его в файле может не быть. Определение обязательных и необязательных реквизитов (разделов, блоков данных) приведено в электронных форматах соответствующих форм отчетности. Поскольку при чтении данных из файла Excel, СБиС++ исходит из полного набора реквизитов, этот параметр необходим, чтобы сообщить СБиС++ о присутствии или отсутствии соответствующих реквизитов в файле Excel. Параметр «Обязательный = Да/Нет» – необходимо указывать для каждого типа шаблона (за исключением шаблона для Листа).
– код реквизита можно уточнить по электронному формату данной Имя = П Шаблон для составного одиночного реквизита Если значение реквизита вносится заполнением нескольких ячеек в форме Excel, такой реквизит мы назовем составным. Например, значение кода по ОКАТО в форме СБиС++ вносится сразу в одно поле, а в форме Excel для этого реквизита предусмотрено несколько ячеек.
Чтобы прочитать такой реквизит в СБиС++, все позиции значения читаемого реквизита (заполненные ячейки) нумеруются по порядку.
Параметры шаблона составного одиночного реквизита:
Тип = Реквизит Обязательный = Столбец. =.
В качестве примера приведем шаблон для реквизита кода по ОКАТО (строка 010) декларации по налогу на прибыль организаций (форма по КНД 1151006).
Тип = Реквизит Обязательный = Да Имя = П Столбцы.CC = Столбцы.CG = Столбцы.CK = Столбцы.CO = Столбцы.CS = Столбцы.CW = Столбцы.DA = Столбцы.DE = Столбцы.DI = Столбцы.DM = Столбцы.DQ = Шаблон для даты В СБиС++ в качестве разделителя между составными частями даты используется точка (ДД.ММ.ГГГГ).
Приложение 6. Импорт данных из XLS- и DBF-файлов Если в форме Excel разделитель не указан, или указан, но не точка, необходимо добавить параметр: Суффикс. =. (в качестве значения параметра указать точку). Этот параметр служит для того, чтобы дата была корректно сформирована при чтении файла в СБиС++.
В качестве примера приведем шаблон для даты (строка 020) декларации по налогу на прибыль организаций (форма по КНД 1151006).
Имя = П Шаблон для блока реквизитов Если реквизиты однотипные, можно применить шаблон чтения диапазона реквизитов. В этом случае задается код, общий для всех реквизитов таблицы (код таблицы) и указывается диапазон строк и столбцов, данные из которых нужно прочитать.
Параметры для чтения диапазона реквизитов:
– количество строк, которые необходимо просканировать программе в поисках первого реквизита (поскольку некоторые разделы не являются обязательными и могут отсутствовать в файле). Укажите номер строки таблицы Excel, которая содержит данный реквизит.
– код читаемой таблицы (пять знаков). Код таблицы задает префикс, общий для всех реквизитов данного блока. Например, если указать «Таблица = 00200», все реквизиты блока будут именоваться с префиксом «П00200».
ОтСтрока = ДоСтрока = – код должен содержать пять знаков, недостающие позиции заполняются нулями слева. Например, если код строки «041», следует указать «ОтСтрока = 00041».
Код = Столбцы. = – если в таблице несколько столбцов, реквизиты из которых требуется прочитать, следует указать все столбцы. Например:
Таблица = ОтСтрока = ДоСтрока = Код = CN Столбцы.03 = CY Столбцы.04 = CZ Внимание! Пустая строка!
При чтении данных в СБиС++, программа перебирает все строки Excel-файла, в читаемой строке ищет код строки и читает реквизит из строки с этим кодом. Если программа встретит строку, в которой код строки отсутствует (строка с «пустым» кодом), то чтение блока прервется, и данные не будут прочитаны.
Для того чтобы избежать подобных ситуаций и прочитать все реквизиты, в качестве диапазона задавайте только те строки, коды которых следуют непрерывно.
В качестве примера приведем шаблон для чтения реквизитов таблицы раздела 00200 декларации по налогу на прибыль организаций (форма по КНД 1151006).
Тип = Блок Обязательный = Нет ДиапазонПоиска = Приложение 6. Импорт данных из XLS- и DBF-файлов В примере мы читаем реквизиты таблицы «кусками», поскольку коды строк не следуют непрерывно – между строками 040 и 041, 090 и 110, 150 и 160 и т. д. есть строки с «пустым» кодом. Для каждой группы строк, коды которых следуют непрерывно, мы создали свой шаблон с Импорт данных Порядок (действия пользователя) для импорта данных из файлов *.xls и *.dbf один и тот же.
1. Выберите налогоплательщика и отчетный период, создайте отчет, соответствующий отчету, который содержится в файле форме *.xls / 2. С помощью кнопки «Импортировать данные из dbfфайлов»/«Импортировать данные из Excel-файла» заполните отчет данными из подходящего файла:
– заполнение отчета данными из файла *.dbf.
– заполнение отчета данными из таблиц Excel.
3. Нажмите на стрелку рядом с соответствующей кнопкой и выберите режим импорта:
«Обновить отчет данными …» – в этом случае значения всех реквизитов (за исключением плательщика, ответственных лиц, отчетного периода, налоговой) в отчете удаляются и заменяются значениями, загруженными из файла *.xls / *.dbf.
«Добавить в отчет данные …» – добавление данных происходит в соответствии со следующим правилом: если блок повторяющийся, данные добавляются в отчет; если блок неповторяющийся, данные в отчете заменяются данными из файла.
Рассмотрим каждый из режимов импорта данных на примере импорта из файла Excel. Перед тем, как приступить к заполнению отчетов из файлов Excel, проверьте:
1. Наличие файла шаблона в каталоге модулей.
2. В каталоге модулей, в папке с названием заполняемой формы отчетности, наличие соответствующего файла шаблона для чтения данных Приложение 6. Импорт данных из XLS- и DBF-файлов из файла Excel. Напоминаем путь к папке формы: СБиС++\ Модули\ Электронная отчетность\ Формы отчетности\…\.
Обновление отчета Откройте отчет, нажмите кнопку (или ) и выберите «Обновить отчет из Excel-файла».
1. Выбор файла для загрузки Если в каталоге модулей, в папке данной формы отчетности, программа не обнаружила соответствующий файл шаблона, открывается окно для выбора файла Excel, данные из которого требуется прочитать.
Если в каталоге модулей программа не обнаружила соответствующий файл шаблона, последует сообщение: «Для данной формы не предусмотрен ввод данных через Excel-файл».
Итак, после того, как вы выбрали Excel-файл для загрузки данных, начинается чтение файла.
2. Настройка соответствия листов После того, как файл выбран, открывается окно с настройками соответствия листов. Можно настроить соответствие Листов файла Excel Листам, описанным в файле шаблона c типом «ВыборВкладки», или отказаться от чтения какого-либо листа файла Excel.
«Имя листа в Excel-файле» – список имен Листов (вкладок), которые прочитаны из файла Excel.
«Имя листа в шаблоне настройки» – список имен Листов, указанных в файле шаблонов в шаблоне с типом ВыборВкладки.
Если имена листов не совпадают, правый столбец будет пустым. В этом случае необходимо вручную установить соответствие листов, иначе программа не сможет вкачать в отчет данные. Для этого щелкните левой кнопкой мыши (двойной щелчок) на строке с именем листа и далее в появившемся списке выберите имя листа шаблона, который вы ставите в соответствие данному листу Excel, или пункт «не загружать», если вы хотите отказаться от загрузки данных с данного «Отключить авторасчет» – флажок поставлен = прочитать отчет без пересчета итогов, т. е. читать итоговые строки так, как они сформированы в файле Excel. Флажок снят = пересчитать итоговые строки при закачке данных.
«Импортировать» – начать процесс заполнения отчета.
«Отменить» – отказаться от импорта данных и вернуться в реестр форм отчетности.
Приложение 6. Импорт данных из XLS- и DBF-файлов Добавление данных в отчет Напомним, добавляются данные только из повторяющихся блоков. При этом данные из неповторяющихся блоков будут обновлены.
Если вы хотите сохранить в отчете значения реквизитов из каких-либо листов, у вас есть две возможности:
1. при настройке соответствия листов, отказаться от загрузки этих листов;
2. сформировать Excel-файл, в котором будут только те листы, которые требуется загрузить, и добавить данные из этого файла.
Для того чтобы добавить в отчет данные из Excel файла, выберите соответствующего налогоплательщика и отчетный период. В реестре форм отчетности создайте пустой отчет, сохраните его, затем нажмите кнопку «Добавить данные из Excel-файла». Далее выберите файл Excel, затем настройте соответствие листов.