Как быстро ввести в 1С документ на 100 и более строк с разными ЦФО, тарифами и километражем?

← На главную

Проанализируем ситуацию. Поставщик два раза в месяц выставляет документ более чем на 100 строк. Каждая строка относится к отдельной услуге доставки: различаются город, тариф, километраж, ЦФО и, возможно, другие аналитики расходов. Объединить все услуги одной строкой нельзя, а ручной ввод занимает около двух часов и создает высокий риск ошибки после нескольких десятков строк.

В такой ситуации основная задача состоит не в том, чтобы быстрее печатать строки вручную, а в том, чтобы вообще отказаться от ручного переноса большей части данных. Если структура документа повторяется два раза в месяц, оптимальным решением будет организовать загрузку строк из электронного файла поставщика и автоматически определять ЦФО и остальные аналитики по заранее настроенным правилам.

Рассмотрим несколько вариантов. Начнем со стандартных возможностей 1С, затем разберем загрузку из Excel и закончим наиболее эффективным вариантом для документов с нестандартными внутренними аналитиками — небольшой внешней обработкой или расширением 1С.

Почему обычное распознавание документа может не решить задачу с ЦФО

В обсуждении предложено использовать встроенный сервис «1С:Распознавание первичных документов». Такой сервис действительно существует. Он позволяет загружать в 1С PDF, изображения, Word, Excel, OpenDocument и другие поддерживаемые файлы, распознавать реквизиты первичных документов и создавать на их основании документы учетной системы. Сервис умеет сопоставлять контрагентов и номенклатуру с данными базы и рассчитан в том числе на обработку многостраничной первички.

Однако выясним причину, почему в рассматриваемой ситуации обычное распознавание может оказаться недостаточным.

ЦФО, тариф доставки, внутренний код маршрута, направление деятельности или аналитика управленческого учета часто не являются реквизитами первичного документа в том виде, в котором их ожидает стандартная бухгалтерская программа. Это могут быть внутренние реквизиты конкретной информационной базы.

Например, поставщик пишет:

«Доставка Москва — Тверь, 185 км, тариф 45 руб.»

А внутри нашей базы нужно дополнительно определить:

  1. ЦФО «Север»;

  2. статью расходов «Доставка покупателям»;

  3. подразделение «Логистика»;

  4. направление деятельности;

  5. счет учета;

  6. конкретную аналитику затрат.

Система распознавания может успешно прочитать текст «Москва — Тверь», километраж и сумму, но она не обязана знать, что именно эта строка должна относиться к определенному внутреннему ЦФО.

Поэтому для такой задачи разделим автоматизацию на два этапа: сначала загрузим исходные данные, затем по правилам определим внутреннюю аналитику.

Решение 1. Проверим наличие встроенного сервиса 1С:РПД

Сначала все-таки проверим стандартное решение, поскольку оно не требует разработки.

В актуальной «1С:Бухгалтерии 8» рабочее место распознавания ищем в разделе «Покупки» или «Продажи» — «Сервис» — «Распознавание документов» либо «Загрузить документы из сканов (фото)». В простом интерфейсе путь может проходить через общий журнал документов. Точное название команды зависит от версии программы.

Для работы сервиса программа должна поддерживать 1С:РПД, находиться на официальной поддержке и иметь доступ к Интернету. Сам сервис встроен в поддерживаемые решения 1С, но распознавание предоставляется в рамках соответствующих условий сервиса.

Если пункта распознавания вообще нет, не будем сразу считать, что такой возможности в 1С не существует. Проверим:

  1. название и редакцию конфигурации;

  2. релиз конфигурации;

  3. актуальность обновления;

  4. наличие поддержки сервиса именно в нашей конфигурации;

  5. права пользователя;

  6. настройки функциональности;

  7. наличие официальной поддержки 1С.

Сервис 1С:РПД поддерживается, в частности, современными решениями «1С:Бухгалтерия 8», «1С:Управление торговлей», «1С:ERP» и рядом других конфигураций.

Если используем старый релиз, сильно доработанную конфигурацию или отраслевое решение, расположение и доступность функциональности могут отличаться.

Как использовать 1С:РПД для большого акта

Если сервис доступен, рассмотрим порядок работы.

  1. Получим у поставщика PDF, Excel или другой электронный вариант акта.

  2. Загрузим файл в рабочее место распознавания.

  3. Запустим распознавание.

  4. Проверим определенного контрагента, номер, дату и общую сумму.

  5. Проверим распознанные строки услуг.

  6. Сопоставим распознанные позиции со справочниками нашей базы.

  7. Создадим документ поступления.

  8. После создания документа отдельно проверим ЦФО и остальные внутренние аналитики.

Официальное описание сервиса прямо предусматривает автоматическое сопоставление контрагентов и номенклатуры, проверку числовых данных и групповую обработку документов.

Если единственная проблема ручного ввода заключается в переносе наименования, количества, цены и суммы, этого варианта может быть достаточно.

Но если главная трудоемкость приходится именно на выбор правильного ЦФО для каждой из 100 строк, пойдем дальше.

Решение 2. Не распознаем документ, если поставщик может дать Excel

Рассмотрим подробнее более надежный путь. Если поставщик формирует документ в собственной информационной системе, почти наверняка данные изначально существуют в структурированном виде.

Поэтому вместо PDF попросим поставщика вместе с актом присылать реестр в Excel.

Это значительно лучше распознавания.

При OCR сначала приходится превращать текст документа в данные, а затем исправлять ошибки распознавания. При Excel данные уже находятся в отдельных строках и колонках.

Попросим, например, следующий набор колонок:

  1. номер строки;

  2. дата перевозки;

  3. номер заявки;

  4. город отправления;

  5. город назначения;

  6. код маршрута;

  7. километраж;

  8. тариф;

  9. количество;

  10. сумма без НДС;

  11. ставка НДС;

  12. сумма НДС;

  13. общая сумма;

  14. внутренний идентификатор заказа или доставки.

Если поставщик знает наш ЦФО и может передавать его в реестре, добавим также колонку «Код ЦФО».

Особенно полезно передавать не только название ЦФО, но и его постоянный код. Название сотрудник может изменить: например, «Москва Север» превратится в «Регион Москва Север». Код при этом можно оставить неизменным.

Тогда загрузка будет искать ЦФО по коду, а не пытаться угадывать его по похожему тексту.

Стандартная загрузка документов из Excel в «1С:Бухгалтерии»

Если используется «1С:Бухгалтерия 8» редакции 3.0, проверим также стандартную загрузку документов поставщика.

В программе давно существует возможность загружать полученные от поставщика документы из файла. Для поддерживаемых форматов накладных, актов и УПД можно использовать команду загрузки в списке документов поступления. Программа создает документ поступления и выполняет сопоставление номенклатуры.

Для стандартного документа поставщика такой вариант значительно надежнее ручного ввода.

Однако здесь есть ограничение: встроенная загрузка ожидает определенную структуру документа. Произвольная таблица вида «город — километраж — тариф — ЦФО» может не соответствовать стандартному формату.

Поэтому проверим оба варианта:

  1. если поставщик может предоставить стандартный электронный акт или УПД — загрузим его стандартным механизмом;

  2. если поставщик предоставляет произвольный реестр — разработаем отдельную загрузку именно этого реестра.

Если поставщик использует ЭДО — сначала попробуем получить исходный XML

Если документ приходит через ЭДО, не будем в первую очередь обрабатывать PDF.

Выясним, есть ли у документа исходный формализованный XML-файл.

В XML уже находятся структурированные реквизиты документа, поэтому распознавать их заново не требуется.

В «1С:Бухгалтерии 8» существуют механизмы загрузки электронных документов из файлов, в том числе формализованных файлов ФНС. Для ряда сценариев входной XML можно загрузить в программу и выполнить сопоставление данных.

Поэтому выстроим приоритет источников следующим образом:

  1. формализованный XML;

  2. структурированный Excel;

  3. PDF через 1С:РПД;

  4. ручной ввод — только как крайний вариант.

Так снизим вероятность ошибок и одновременно сократим объем проверки.

Почему Entera или другое OCR-распознавание дает «кашу» с ЦФО

Теперь выясним причину неудачи с уже опробованным сервисом.

Предположим, в первичном документе есть 100 строк и для каждой нужно определить четыре параметра:

  1. стоимость;

  2. тариф;

  3. километраж;

  4. ЦФО.

Первые три значения могут непосредственно присутствовать в документе. ЦФО же может определяться бухгалтером по городу, номеру заявки, подразделению заказчика или другому косвенному признаку.

В такой ситуации проблема состоит не в качестве распознавания.

OCR физически неоткуда узнать ЦФО, если соответствующей информации нет в исходном документе.

Поэтому вместо поиска другого распознавателя сформулируем правило, по которому бухгалтер сам сейчас выбирает ЦФО.

Например:

«Если город доставки Екатеринбург — ЦФО 0204».

Или:

«Если номер заявки начинается с MSK — ЦФО Москва».

Или:

«ЦФО определяется по складу получателя».

Или:

«Для каждой пары город + заказчик используется конкретный ЦФО».

Как только такое правило удается сформулировать, его можно автоматизировать.

Решение 3. Создадим таблицу соответствий для ЦФО

Для регулярно повторяющихся документов это один из самых эффективных вариантов.

Создадим в 1С либо во внешнем Excel таблицу соответствий.

Например, логически она может выглядеть так:

Москва — ЦФО МСК.

Санкт-Петербург — ЦФО СПБ.

Екатеринбург — ЦФО ЕКБ.

Казань — ЦФО КЗН.

Новосибирск — ЦФО НСК.

Если одного города недостаточно, сделаем правило более точным:

«Город + организация».

«Город + склад».

«Город + код маршрута».

«Заказ + подразделение».

«Код доставки + статья расходов».

Разберем по шагам.

  1. Возьмем последние несколько документов поставщика.

  2. Выгрузим список реально встречавшихся строк.

  3. Для каждой строки укажем правильный ЦФО.

  4. Найдем параметр, который однозначно определяет ЦФО.

  5. Зафиксируем это соответствие.

  6. При следующей загрузке применим его автоматически.

После этого бухгалтеру не придется проверять 100 известных маршрутов. Проверять потребуется только строки, для которых программа не смогла определить соответствие.

Это принципиальное изменение процесса.

Вместо «проверить 120 строк» получаем:

«115 строк определены автоматически, проверить нужно 5 новых маршрутов».

Храним сопоставления непосредственно в 1С

Если решение будет постоянным, лучше не хранить правила только в личном Excel бухгалтера.

Попросим программиста создать регистр сведений, например «Соответствие маршрутов ЦФО».

В нем можно хранить:

  1. контрагента;

  2. код маршрута;

  3. город;

  4. подразделение;

  5. ЦФО;

  6. статью расходов;

  7. счет учета;

  8. другие аналитики.

Тогда при загрузке новой строки программа сначала найдет правило и автоматически заполнит аналитику.

Если соответствия нет, строку не будем молча относить на произвольный ЦФО. Пометим ее как требующую проверки.

Автоматизация должна выявлять исключения, а не скрывать их.

Решение 4. Сделаем внешнюю обработку «Загрузка услуг доставки из Excel»

Если контрагент присылает такие документы постоянно, это, вероятно, наиболее удобный вариант.

Попросим программиста 1С создать небольшую внешнюю обработку либо расширение.

Пользовательский сценарий сделаем максимально простым:

  1. откроем обработку;

  2. выберем Excel-файл поставщика;

  3. нажмем «Загрузить»;

  4. получим предварительную таблицу;

  5. увидим найденные и ненайденные ЦФО;

  6. проверим контрольные суммы;

  7. нажмем «Создать документ»;

  8. откроем готовый документ поступления и проведем его после проверки.

При стабильном формате файла обработка на 100–200 строк будет намного эффективнее ручного ввода.

Какие объекты 1С пригодятся для такой загрузки

Для разработчика рассмотрим основные механизмы платформы.

Файл Excel можно прочитать средствами объекта ТабличныйДокумент. Для чтения используется метод Прочитать. Платформа позволяет работать с файлами XLS и XLSX и получать значения ячеек для последующей обработки. Механизм ТабличныйДокумент поддерживает чтение электронных таблиц, а перечисление СпособЧтенияЗначенийТабличногоДокумента позволяет управлять интерпретацией значений.

Загруженные строки удобно преобразовать в объект ТаблицаЗначений.

После этого обработка сможет:

  1. прочитать колонки исходного файла;

  2. нормализовать значения;

  3. найти элементы справочников;

  4. проверить тариф;

  5. проверить километраж;

  6. определить ЦФО;

  7. заполнить табличную часть документа;

  8. проверить итоговые суммы.

Для поиска справочных данных используем не свободное сравнение длинных названий, а устойчивые идентификаторы. В зависимости от структуры базы это могут быть код, артикул, внешний идентификатор, код ЦФО или отдельный регистр соответствий.

Конкретные объекты метаданных зависят от конфигурации. Например, в «1С:Бухгалтерии» документ поступления представлен механизмами документа «Поступление (акты, накладные, УПД)», тогда как в «1С:ERP» и «1С:Комплексной автоматизации» структура документов и аналитик расходов другая.

Поэтому не будем жестко зашивать в универсальную обработку названия реквизитов без анализа конкретной базы.

Что именно должна проверять обработка перед созданием документа

Не ограничимся простым переносом 100 строк из Excel в 1С. Иначе получим ручную ошибку уже в автоматическом виде.

Добавим контроль.

  1. Количество строк. Если в файле поставщика 127 строк, после загрузки также должно быть 127 строк либо должна быть понятная причина объединения.

  2. Общая сумма. Итог загруженных строк должен совпадать с итогом акта.

  3. НДС. Сверим ставку и сумму НДС.

  4. Километраж. Не допустим отрицательные или явно невозможные значения.

  5. Тариф. Сверим его с установленным диапазоном либо с таблицей договорных тарифов.

  6. ЦФО. Запретим создание окончательного документа при наличии неопределенного ЦФО.

  7. Дубли. Проверим номер заявки, рейса или другого уникального идентификатора.

  8. Номенклатуру услуги. Убедимся, что строка сопоставлена с правильной услугой.

  9. Статью расходов. Заполним ее по правилу либо покажем ошибку.

В результате бухгалтер будет заниматься контролем исключений, а не механическим переносом информации.

Автоматизируем проверку тарифов

Поскольку в исходной задаче отдельно упомянуты тарифные ставки, рассмотрим и этот участок.

Если тариф зависит от города или расстояния, создадим в 1С таблицу тарифов.

Например:

«Москва — Тверь: 45 руб. за км».

«Москва — Владимир: 42 руб. за км».

«Москва — Рязань: 43 руб. за км».

После загрузки строки программа сама сравнит:

тариф поставщика;

и тариф, который должен действовать согласно нашей таблице.

Если они совпадают, строку считаем проверенной.

Если отличаются, выводим предупреждение.

Тогда отпадет необходимость глазами сверять тариф в каждой из 100 строк.

Автоматизируем проверку километража

Аналогичным образом поступим с километражем, если он является договорной величиной.

Если для каждого маршрута предусмотрено фиксированное расчетное расстояние, внесем его в регистр маршрутов.

Например, для маршрута с кодом MSK-TVER установим согласованное расстояние.

При загрузке проверим километраж поставщика.

Если значение отличается, строка попадет в список расхождений.

Если километраж каждый раз фактический и определяется по GPS или путевому листу, тогда не будем автоматически заменять значение. Используем правило допустимого диапазона или сверку с другим источником.

Автоматизируем ЦФО по маршруту или заказу

Теперь рассмотрим самый важный параметр.

Если ЦФО определяется городом, просто свяжем каждый город с нужным ЦФО.

Если один город может относиться к разным ЦФО, найдем более точный ключ.

Например:

номер заказа → ЦФО;

склад → ЦФО;

подразделение-заказчик → ЦФО;

код проекта → ЦФО;

код маршрута + организация → ЦФО.

Если информация уже есть в другом документе 1С, еще лучше вообще не дублировать справочник соответствий.

Например, если строка поставщика содержит номер нашей заявки на перевозку, обработка может найти эту заявку и взять ЦФО непосредственно из нее.

Такое решение надежнее сопоставления по названию города.

Используем уникальный номер заявки как основной ключ

Если есть возможность повлиять на процесс, попросим поставщика обязательно возвращать в реестре наш идентификатор заявки.

Посмотрим на пример.

Мы передаем перевозчику заявку TR-001245.

В нашей 1С эта заявка уже содержит:

  1. маршрут;

  2. ЦФО;

  3. подразделение;

  4. договорный тариф;

  5. плановый километраж;

  6. статью расходов.

Поставщик возвращает строку акта с номером TR-001245.

Тогда нам вообще не требуется заново определять ЦФО. Загрузка находит заявку TR-001245 и переносит из нее всю внутреннюю аналитику.

Это значительно надежнее любого OCR.

Фактически электронный акт становится подтверждением стоимости уже существующей в базе хозяйственной операции.

Решение 5. Если разработку пока заказать нельзя — подготовим промежуточный Excel-шаблон

Если программиста 1С сейчас подключить невозможно, все равно сократим ручную работу.

Сделаем единый Excel-шаблон.

На один лист будем вставлять реестр поставщика.

На втором листе разместим справочник соответствий:

город → ЦФО;

маршрут → тариф;

маршрут → нормативный километраж;

другие необходимые аналитики.

Формулами Excel автоматически определим ЦФО и проверим тарифы.

В результате перед вводом в 1С получим уже подготовленный реестр, где бухгалтеру останется проверить только ошибки соответствия.

Это еще не полная автоматизация, поскольку строки по-прежнему потребуется загрузить или перенести в 1С, но самая сложная интеллектуальная часть проверки будет выполнена заранее.

Решение 6. Используем копирование предыдущего документа как временный вариант

Если маршруты и ЦФО из месяца в месяц в значительной степени повторяются, а загрузку пока невозможно внедрить, рассмотрим временное решение.

Не создавайте каждый многострочный документ с нуля.

Скопируем предыдущий документ того же поставщика и используем его как заготовку.

При копировании в большинстве типовых конфигураций сохраняются строки и значительная часть аналитики. Затем заменим:

  1. дату;

  2. номер документа поставщика;

  3. суммы;

  4. километраж;

  5. тарифы;

  6. изменившиеся маршруты;

  7. новые ЦФО.

Этот вариант не идеален. При 100 полностью новых строках он почти ничего не даст.

Но если 80 процентов маршрутов повторяются и ЦФО остаются прежними, копирование документа может заметно сократить количество ручных выборов из справочников.

После копирования обязательно перепроверим все строки: старые данные не должны случайно перейти в новый период.

Не будем создавать 100 разных элементов номенклатуры только из-за разных маршрутов

Отдельно проанализируем структуру учета.

Если с экономической точки зрения во всех строках находится одна и та же услуга перевозки, не обязательно создавать отдельную номенклатуру вида:

«Доставка Москва — Тверь»;

«Доставка Москва — Казань»;

«Доставка Москва — Рязань».

Возможно, правильнее использовать один элемент номенклатуры «Услуги доставки», а различия хранить в аналитике строки: ЦФО, подразделении, маршруте, статье затрат, проекте или другом предусмотренном конфигурацией измерении.

Но здесь сначала проверим учетную политику и структуру конкретной конфигурации.

Если маршрут является существенной аналитикой и используется в отчетах, сохраним его отдельно.

Главное — не превращать справочник Номенклатура в замену всем другим аналитическим разрезам.

Если ЦФО является доработанным реквизитом, стандартные сервисы могут его не заполнить

Это особенно важно для случая из обсуждения.

Предположим, используется типовая «1С:Бухгалтерия», но программист организации добавил в табличную часть поступления собственную колонку «ЦФО».

Стандартный сервис распознавания создавался без знания этой доработки.

Он может правильно определить поставщика, услугу, цену и сумму, но не обязан автоматически заполнить пользовательский реквизит.

В таком случае не будем отказываться от распознавания полностью. Можно объединить решения:

  1. 1С:РПД создаст строки документа;

  2. отдельная небольшая обработка заполнит ЦФО;

  3. бухгалтер проверит только исключения.

Иногда такая доработка значительно проще, чем разработка полноценного импорта с нуля.

Если ЦФО является стандартной аналитикой ERP или КА

Если работаем не в «1С:Бухгалтерии», а в «1С:ERP» или «1С:Комплексной автоматизации», структура учета расходов может быть значительно сложнее.

В ней могут использоваться:

  1. подразделения;

  2. статьи расходов;

  3. направления деятельности;

  4. аналитики расходов;

  5. заказы;

  6. проекты;

  7. другие управленческие разрезы.

Тогда загрузку будем проектировать не просто как «Excel → строки поступления», а как «Excel → хозяйственная аналитика ERP».

Лучшим источником для определения ЦФО в этом случае также будет существующая заявка, заказ, подразделение-заказчик или другой объект, уже созданный до получения акта.

Сделаем обработку обучаемой на новых соответствиях

Чтобы не обращаться к программисту при появлении каждого нового города, добавим простой механизм обучения.

Предположим, из 120 строк:

116 ЦФО найдены автоматически;

4 маршрута появились впервые.

Обработка покажет четыре несопоставленные строки.

Для первой строки выберем ЦФО вручную и установим флажок «Запомнить соответствие».

Программа сохранит пару:

«маршрут X → ЦФО Y».

При следующем документе этот маршрут будет заполнен автоматически.

Через несколько месяцев таблица соответствий охватит почти все реальные варианты.

В результате ручная работа будет постоянно сокращаться.

Не проводим документ автоматически сразу после импорта

Даже если обработка работает стабильно, не будем сразу выполнять автоматическое проведение.

Лучше создать документ непроведенным и сначала выполнить контроль.

Проверим:

  1. контрагента;

  2. договор;

  3. номер и дату;

  4. число строк;

  5. общую сумму;

  6. НДС;

  7. наличие пустых ЦФО;

  8. расхождения тарифов;

  9. аномальный километраж;

  10. повторяющиеся заявки.

Только после этого проведем документ.

Цель автоматизации — убрать механическую работу, но сохранить бухгалтерский контроль.

Добавим отдельный отчет об ошибках загрузки

Чтобы бухгалтеру не приходилось просматривать 120 строк глазами, сделаем отдельную проверочную таблицу.

Выводим в нее только проблемы:

  1. ЦФО не найден;

  2. маршрут отсутствует в справочнике;

  3. тариф отличается от договорного;

  4. километраж отличается от нормативного;

  5. сумма строки не соответствует расчету;

  6. найден дубль заявки;

  7. не определена статья расходов;

  8. не определена номенклатура;

  9. итог файла не совпадает с итогом документа.

Если список пустой, бухгалтеру достаточно сверить несколько итоговых показателей.

Такой подход значительно эффективнее проверки строки 1, строки 2, строки 3 и так далее до строки 120.

Что лучше попросить у поставщика

Очень часто задача решается быстрее организационно, чем программно.

Поговорим с поставщиком и выясним, может ли он вместе с официальным актом присылать электронный реестр.

Идеальный вариант:

  1. одна строка файла соответствует одной строке услуги;

  2. нет объединенных ячеек;

  3. первая строка содержит заголовки колонок;

  4. числа хранятся числами, а не текстом;

  5. даты хранятся в стандартном формате;

  6. есть уникальный номер заявки;

  7. есть код маршрута;

  8. есть километраж;

  9. есть тариф;

  10. есть сумма;

  11. формат файла не меняется от месяца к месяцу.

Последнее условие особенно важно. Если сегодня колонка «Тариф» находится в столбце F, завтра в H, а через месяц поставщик добавляет пять строк заголовка, разработанная загрузка потребует дополнительных правил.

Еще надежнее ориентироваться не на номера колонок, а на их заголовки.

Не просим бухгалтера вручную определять то, что уже известно другой системе

Посмотрим на задачу шире.

Если перевозка сначала заказывается внутри организации, значит до получения акта кто-то уже знает:

какой город;

какое подразделение;

какой ЦФО;

какой маршрут;

какой тариф;

какой заказ относится к перевозке.

Не будем заставлять бухгалтера через две недели заново восстанавливать эти сведения по акту поставщика.

Лучший процесс выглядит так:

  1. создаем заявку на перевозку;

  2. сразу указываем в ней ЦФО;

  3. передаем поставщику уникальный номер заявки;

  4. поставщик возвращает этот номер в своем реестре;

  5. при загрузке акта 1С находит заявку;

  6. ЦФО и остальные внутренние данные заполняются из заявки;

  7. бухгалтер проверяет только стоимость и расхождения.

Это уже не просто ускорение ввода первички, а правильная организация сквозного учета.

Какое решение выбрать без программиста

Если возможности доработать 1С нет, действуем в следующем порядке.

  1. Проверим, доступен ли в нашей конфигурации сервис 1С:РПД.

  2. Если доступен — попробуем загрузить исходный PDF или Excel непосредственно в него.

  3. Если документ приходит через ЭДО — получим исходный XML и проверим стандартную загрузку.

  4. Попросим поставщика присылать Excel-реестр, а не только PDF.

  5. Создадим Excel-таблицу соответствий «маршрут → ЦФО».

  6. Автоматически проверим тариф и километраж формулами Excel.

  7. Если структура документа повторяется, используем копию предыдущего документа как заготовку.

Даже такой вариант может существенно сократить нагрузку и количество ошибок.

Какое решение выбрать, если можно привлечь программиста 1С

Если документы по 100 и более строк приходят дважды в месяц постоянно, небольшая разработка обычно является самым рациональным решением.

Сформулируем техническое задание примерно следующим образом.

Разработаем обработку загрузки актов транспортного поставщика из Excel.

Обработка должна:

  1. читать XLSX-файл;

  2. определять необходимые колонки по заголовкам;

  3. переносить строки во внутреннюю ТаблицаЗначений;

  4. находить заявку по внешнему номеру;

  5. получать из заявки ЦФО;

  6. если заявки нет — определять ЦФО по таблице соответствий;

  7. проверять договорный тариф;

  8. проверять километраж;

  9. находить номенклатуру услуги;

  10. заполнять статью расходов и необходимые аналитики;

  11. проверять дубли;

  12. сравнивать итог загруженных строк с итогом файла;

  13. показывать список ошибок;

  14. создавать непроведенный документ поступления;

  15. не создавать окончательный документ при критических ошибках.

Для чтения Excel можно использовать стандартный объект платформы ТабличныйДокумент и метод Прочитать, а промежуточные данные хранить в ТаблицаЗначений. Для соответствий удобно использовать отдельный регистр сведений. Конкретные справочники и табличные части документа определим уже по метаданным используемой конфигурации.

Почему такая небольшая доработка окупается даже при двух документах в месяц

Посчитаем трудозатраты.

Один документ занимает около двух часов.

Два документа — около четырех часов в месяц.

За год получаем около 48 часов чистого ручного ввода.

И это без учета:

  1. исправления опечаток;

  2. повторной проверки;

  3. исправления неправильных ЦФО;

  4. поиска расхождений;

  5. перепроведения документов;

  6. исправления управленческой отчетности.

Если после автоматизации обработка одного документа будет состоять из загрузки файла, проверки нескольких исключений и сверки итоговой суммы, большую часть этих часов можно исключить.

Кроме того, автоматизация уменьшает вероятность того, что на строке 70 или 90 из-за усталости будет выбран соседний ЦФО.

Оптимальное решение для ситуации из обсуждения

Теперь соберем вывод применительно к исходной задаче.

Не продолжайте вводить документ на 100 и более строк вручную. При регулярном поступлении однотипного документа это уже задача автоматической загрузки, а не ручной первички.

Сначала проверим 1С:РПД. Сервис действительно предназначен для распознавания первичных документов и умеет обрабатывать многостраничные документы, сопоставлять данные и создавать документы в 1С. Если соответствующего пункта в программе нет, проверим редакцию конфигурации, релиз, настройки и доступность сервиса.

Однако если основная проблема заключается в заполнении ЦФО, одного распознавания, скорее всего, будет недостаточно. ЦФО является внутренней аналитикой, и системе необходимо дать однозначное правило его определения.

Поэтому попросим поставщика присылать Excel-реестр с каждой строкой доставки. Лучше всего добавить в него уникальный номер нашей заявки или код маршрута.

Далее построим соответствие:

номер заявки или маршрут → ЦФО → статья расходов → тариф → километраж.

Если такой реестр приходит два раза в месяц в одинаковом формате, закажем простую внешнюю обработку «Загрузка услуг доставки из Excel».

В обработке используем ТабличныйДокумент, метод Прочитать, ТаблицаЗначений и регистр сведений для хранения соответствий. В конкретной конфигурации дополнительно используем ее документы поступления, справочники ЦФО, подразделений, статей расходов и остальные необходимые объекты.

Обработка должна не просто переносить 100 строк, а автоматически проверять тариф, километраж, ЦФО, наличие дублей и общую сумму.

Тогда схема работы изменится принципиально:

  1. получим Excel поставщика;

  2. нажмем «Загрузить»;

  3. 1С заполнит 100 и более строк;

  4. ЦФО определятся автоматически;

  5. программа покажет только неизвестные маршруты и расхождения;

  6. сверим итог акта;

  7. проведем готовый документ.

Главный принцип — не автоматизируем ручной перебор 100 строк, а превращаем его в автоматическую загрузку и контроль исключений. Именно такой подход даст максимальный эффект для регулярно повторяющейся первички с большим количеством строк.

Информация носит справочный характер

← На главную