Заполнение табличной части из Excel и csv: любой документ, любая конфигурация
Интеграция - Загрузка и выгрузка в Excel
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Внешняя обработка для типовых конфигураций: Бухгалтерия, ERP, Комплексная автоматизация, Управление торговлей, Управление нашей фирмой. Переносит строки из Excel или текста с разделителями в табличную часть документа.
Конфигурация не меняется. Открыть обработку можно двумя способами: обычным открытием файла или подключив ее в справочник «Дополнительные отчеты и обработки» — тогда появляется пункт «Заполнить из файла» в меню «Еще» самого документа. Ни одного имени документа или реквизита в коде нет — список табличных частей и список реквизитов обработка строит по метаданным той базы, в которую ее открыли.
Как это выглядит у пользователя
Менеджер получил от поставщика спецификацию и начинает вводить документ. Шапку заполняет сам: организация, контрагент, договор, склад. Дальше — «Еще» — «Заполнить из файла».
Открывается форма, в ней уже подставлен документ. Выбираете табличную часть, выбираете файл, жмете «Прочитать файл».
Откуда взять файл
Кнопка «Образец файла» показывает, каким он должен быть: заголовки — имена реквизитов выбранной табличной части, под ними две строки примера с правильными форматами чисел, дат и ссылок. Тут же обработка предлагает сохранить образец в xlsx: заполните его своими строками и подайте обратно.
Заголовки берутся из метаданных, а не лежат готовыми внутри: в каждой конфигурации реквизиты свои, и любой зашитый заголовок в чужой базе был бы неверным. Правила к файлу — что понимается за число, дату и ссылку — лежат в обработке макетом и печатаются в протокол.
Обработка показывает таблицу сопоставления: какая колонка в файле, какое значение в ней стоит для примера, и какой реквизит табличной части ей отвечает. В ней по строке на каждую колонку файла, а не на строку данных — заголовок таблицы говорит это прямо и тут же показывает, сколько строк данных в файле прочитано. Колонки, чей заголовок совпал с именем или синонимом реквизита, сопоставлены сразу. Остальные выбираете из списка.
«Перенести в документ» — строки появляются в открытой форме.
Если обработку открыли саму по себе
Так тоже можно. В форме выбираются вид документа и сам документ: список видов строится по метаданным базы, список документов — обычный выбор из журнала. По кнопке «Перенести в документ» обработка откроет форму этого документа и положит строки в нее.
Форма открывается намеренно, а не ради красоты. Записывать объект по ссылке нельзя: без открытой формы обработчики документа не срабатывают вообще, и заполненным окажется только то, что пришло из файла. Открытая форма — то же условие, что и при заходе из документа, поэтому и результат тот же.
Из самого документа все равно короче: ни вид, ни документ выбирать не нужно.
Что умеет разбирать
Файл от поставщика редко бывает чистым, и половина работы продукта — это именно разбор.
Форматы: xlsx, xls, csv, txt. Разделитель в текстовом файле определяется по первой непустой строке — точка с запятой, табуляция или запятая. Кодировка определяется сама: сперва UTF-8, при появлении символа замены читается в ANSI.
Числа:
| В файле | Что получится |
|---|---|
1 250,50 |
1250,5 — пробел-разделитель разрядов снят |
1'250.50 |
1250,5 — апостроф как разделитель разрядов |
(300) |
−300 — бухгалтерская запись отрицательного |
−5 |
−5, причем минус распознается в четырех начертаниях |
Неразрывный пробел внутри числа снимается тоже: он визуально неотличим от обычного и превращает число в ноль.
Даты: ДД.ММ.ГГГГ, ДД/ММ/ГГГГ, ГГГГ-ММ-ДД, двузначный год, ГГГГММДД и серийный номер Excel. Про серийные номера отдельно: диапазон 1–60 отвергается намеренно. Excel унаследовал от Lotus несуществующее 29 февраля 1900 года, из-за чего первые шестьдесят номеров сдвинуты на сутки, и одной формулой обе половины не покрыть. Лучше «не дата», чем дата, съехавшая на день.
Булево: да, истина, true, 1, плюс, yes — и соответствующие отрицания.
Подстановка ссылочных значений
Номенклатура, склады, договоры и прочие ссылочные реквизиты ищутся в базе по точному совпадению: по наименованию, коду и артикулу, если такие поля у справочника заведены.
Нечеткого поиска нет, и это не упущение. Цена ложного срабатывания при подборе номенклатуры — не лишняя строка в списке, а неверный товар в документе и дальше в учете. «Болт М8» и «Болт М6» похожи на девяносто процентов.
Если одному значению в базе отвечают два элемента, ссылка не подставляется: это дубль, и выбирать за вас обработка не станет. Все, что не нашлось, перечисляется в протоколе поименно — вы увидите список до того, как проведете документ.
Поиск идет пакетом: один запрос на справочник и поле, а не запрос на строку. На файле в тысячу строк это разница между секундами и получасом.
Чего обработка не делает
Здесь честно, потому что от этого зависит, подойдет она вам или нет.
Не заполняет производные поля. Суммы, ставки НДС и счета учета после переноса останутся пустыми, и сами они не посчитаются — ни при записи, ни при проведении. Заполнять их вам. Самый короткий способ: поправить любую ячейку в строке руками, тогда документ пересчитает эту строку; на всю табличную часть разом помогает штатная команда заполнения цен, если цены берутся из типа цен. Обработка пишет об этом прямо в протоколе после переноса, чтобы пустые суммы не обнаружились уже при проведении.
Не создает номенклатуру. Это главный источник дублей в базе.
Не читает XML и PDF. XML планируется, PDF нет: в платформе нет его чтения.
Не создает документы пачкой. Обработка заполняет табличную часть уже открытого документа, шапку заполняете вы. Заполнение шапки в каждой конфигурации свое и универсализации не поддается.
Не запоминает сопоставление колонок между сеансами. Шаблоны разбора планируются следующей версией.
Многострочную шапку не разбирает. Заголовком считается первая строка файла.
Требования
Платформа 8.3 или 8.5.
Подключать обработку в справочник дополнительных обработок не обязательно: в ее коде нет ни одного обращения к общим модулям библиотеки стандартных подсистем. Запуск обычным открытием файла проверен на Управлении торговлей 11.5, платформа 8.3.27.2214: форма открылась, вид документа и табличная часть выбираются в ней самой.
Регистрация в справочнике дает ровно одно, зато главное — пункт «Заполнить из файла» в меню «Еще» самого документа, и тогда ни вид, ни документ выбирать не нужно. Для нее нужна включенная опция «Дополнительные отчеты и обработки» в разделе администрирования: при выключенной список скрыт, а кнопка добавления отказывает без объяснения.
В браузере нужно расширение работы с файлами. Тонкий и толстый клиенты читают файл сразу, им ничего ставить не надо. Веб-клиент без расширения до диска не дотягивается: обработка это проверяет до чтения, пишет в протокол, что именно нужно, и предлагает расширение установить. Раньше на этом месте вылетала ошибка платформы без объяснений.
Два файла: 8.3 и 8.5
В публикации две сборки одной и той же обработки. Берите ту, что отвечает платформе вашей базы: файл, собранный на 8.5, платформа 8.3 не откроет — скажет, что формат файла не поддерживается. Наоборот работает, но без смысла.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
5490 руб.
12.08.2021 48474 654 71
6000 руб.
11.12.2019 68064 1163 3
12444 руб.
29.10.2014 237919 777 544
6000 руб.
26.11.2020 51299 865 4
6000 руб.
01.03.2021 13443 89 0