Задача
Аптечная программа отдаёт в бухгалтерию не накладные по штукам, а DBF с итогами документов: номер, дата, склад, поставщик, суммы закупки и розницы, ставка НДС, тип операции. Типовой обмен 1С:Бухгалтерии предприятия 3.0 такого файла не читает. Нужно посадить период в 1С без ручного набора и без дублей при повторном запуске.
Обработка читает штатную выгрузку и создаёт:
• поступления товаров и услуг; • отчёты о розничных продажах и приходные кассовые ордера по наличным; • возвраты товаров поставщику; • перемещения между точками.
Организация выбирается на форме. Поставщик не зашит в код: контрагент и договор ищутся по ИНН и КПП из файла, при отсутствии создаются.
Ограничение источника нужно принять сразу. В файле нет номенклатурных строк. Для регламентированного учёта это суммовая схема, а не складской учёт по артикулам.
Что в файле
Чтение идёт через объект платформы XBase. Разбор опирается на поля:
• OPER_CODE — тип операции; • DOC_NUM, DOC_DATE — номер и дата документа; • STORE_* — склад / точка; • CONTR_, INN, KPP — поставщик; • OPT_, RET_* — суммы закупки и розницы; • PAY_TYPE — способ оплаты: 0 — наличные, 1 — карта; • NDS — ставка НДС.
Коды операций, которые грузятся в этой версии:
• INVOICE — документ «Поступление товаров и услуг»; • CASH_SESSION — «Отчёт о розничных продажах», при необходимости плюс ПКО; • RETURN_VEND — «Возврат товаров поставщику»; • MOVEMENT — «Перемещение товаров».
Остальные коды пропускаются. На форме четыре флажка: какие типы создавать. Организация и период обязательны: строки вне выбранных дат в документы не попадают.
Кассовая смена в файле часто приходит двумя строками с разным PAY_TYPE. Обработка склеивает их в одну группу и делит сумму на наличные и карту.
XBase и имя файла 8.3
XBase принимает имя файла только в формате DOS 8.3. Длинное имя выгрузки открыть нельзя. Обработка копирует содержимое во временный каталог как DATA.DBF и читает уже его.
Безопасный режим выключен: иначе нет доступа к XBase и временным файлам. Обработка регистрируется как дополнительная в справочнике дополнительных обработок БСП, команда «Загрузка из аптеки (DBF)». Её же можно открыть через «Файл — Открыть».
Суммовой учёт вместо артикулов
В табличную часть нельзя честно положить конкретный препарат и количество упаковок: источника для этого нет. Обработка находит или создаёт четыре служебные карточки:
• ТоварБезНДС; • ТоварНДС5; • ТоварНДС10; • ТоварНДС22.
В строку документа идёт карточка по ставке из файла. Количество по умолчанию равно сумме закупки, цена равна 1. Так закрываются проводки и НДС, когда источник отдаёт только деньги.
Это не замена поартикульного склада. Остатки в штуках по таким карточкам бессмысленны. Строки розницы перед записью сворачиваются по ставке НДС, чтобы в отчёте о розничных продажах не плодить одинаковые итоги.
Как строки становятся документами
Сначала группировка, не документ на каждую строку файла.
• Розница: тип + номер + дата + склад. • Перемещение: то же плюс склад-отправитель. • Остальные: тип + номер + дата + склад.
Порядок записи: сначала поступления, затем перемещения, возвраты, розница. Иначе возврат и смена могут упереться в пустой остаток.
На время проведения, если в базе включён контроль отрицательных остатков, обработка временно его снимает и возвращает как было. Без этого суммовые заглушки часто не проводятся.
Что создаётся в БП
Поступление товаров и услуг. Контрагент и договор с поставщиком — по ИНН из файла. Входящий номер — номер поставщика, если он есть в выгрузке, иначе номер операции. Счета-фактуры по умолчанию не создаются: флажок на форме выключен.
Отчёт о розничных продажах. Вид операции — отчёт ККМ, дата документа — конец дня смены. Безнал из PAY_TYPE уходит в табличную часть «Оплата» с видом оплаты «платёжная карта». Наличные — в приходный кассовый ордер на основании отчёта, если флажок кассовых ордеров включён.
Возврат товаров поставщику. Тот же поиск контрагента по ИНН. Если находится проведённое поступление того же поставщика, оно подставляется как сделка.
Перемещение товаров. Два склада собираются из адресов отправителя и получателя. Если склада нет — создаётся.
Счета учёта товара берутся из настроек номенклатуры и склада. Для розницы по покупной стоимости счёт уточняется.
Повторная загрузка
В комментарий каждого документа пишется ключ вида:
Ключ:DBF|<тип>|<номер>|<дата>|<склад>
Перед созданием обработка читает уже существующие ключи за период. Повтор того же файла не плодит вторую смену и вторую накладную: строка уходит в счётчик «пропущено».
Если проведение падает, документ остаётся записанным. В сообщениях будет причина и отдельный счётчик «без проведения».
Как пользоваться
- Получить DBF из аптечной программы за нужный период.
- В БП 3.0 открыть дополнительную обработку «Загрузка из аптеки (DBF)» или «Файл — Открыть».
- Указать файл, организацию, даты «с» и «по».
- Оставить нужные типы документов. Счета-фактуры лучше оставить выключенными, кассовые ордера — включёнными.
- Нажать «Загрузить».
- В сообщениях смотреть: сколько строк за период, сколько документов к обработке, сколько создано, пропущено, с ошибкой или записано без проведения.
Первый прогон — только на копии базы. Проверьте служебную номенклатуру, склады, вид оплаты картой и договоры поставщиков, затем повторите в рабочей.
Типичные ситуации
• «Укажите файл DBF / организацию / период» — поля обязательны, без них загрузка не стартует. • «В файле нет строк за выбранный период» — другие даты или пустая выгрузка. • «Пропущено» — документ с таким ключом уже есть. • «Не удалось провести, записан без проведения» — смотреть текст ошибки: чаще счета, договор или остатки. • «Не заполнена оплата картой» — в базе нет вида оплаты с типом «Платежная карта». • Неизвестный OPER_CODE — этот тип в текущей версии не грузится.
Ограничения
Проверено на 1С:Бухгалтерия предприятия 3.0, платформа 8.3.
Разбор заточен под аптечный DBF с полями OPER_CODE, суммами закупки и розницы и ИНН поставщика. Другая структура файла — отдельная доработка.
Что можно перенести в свою загрузку
- Копия DBF в DATA.DBF, если XBase не открывает длинное имя.
- Суммовые заглушки по ставке НДС, когда источник отдаёт только итоги документов.
- Ключ импорта в комментарии и кэш уже загруженных документов за период.
- Поиск контрагента по ИНН из файла, без списка «своих» поставщиков в коде.
Проверено на следующих конфигурациях и релизах:
- Бухгалтерия предприятия, редакция 3.0, релизы 3.0.205.22, 3.0.205.17
Вступайте в нашу телеграмм-группу Инфостарт