Как стать автором
Обновить

Комментарии 36

Давно уже есть
https://infostart.ru/1c/tools/95495/
Не нужен никакой файл настроек, надо просто в шапке файла Excel написать нормальные названия колонок "Код", "Наименование" и др.

Ну вот, взяли и все опошлили.

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

Это поделие того же класса. Как контактную информацию и расчетные счета контрагентов загружать будете?

Вы попытались сравнить пугач с Пулеметом Максим экстра-класса, окститесь. Перечитайте вдумчивее.

понравилось, а по гиперссылкам в excel в настройке не увидел решения. планируете добавить?

Мое решение больше для обычных загрузок, а не для решения каких-то узких проблем.

По сути я предлагаю программистам поменять подход.

зачем вводить какой-то файл настроек?

вроде статья начиналась за упрощение?

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

  1. это надо менять источник данных, который иногда весит очень много.

  2. Пользователь может ошибиться, ковыряя исходные данные

  3. это надо каждый файл обрабатывать

  4. настройки не укладываются в одно значение на колонку, их намного больше

У меня есть код загрузки, который загоняет всё в ТЗ, а затем по шаблонам (номерам колонок и строк) вытаскиваю данные, затем для наглядности всё выходиться в Табличный Документ на форме, чтобы пользователь смог просмотреть/отредактировать/добавить данные.

Отлично. Но это отдельаня обработка или движок? Вот в чем по сути вопрос.

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

А если потом добавишь фичу в первую загрузку, во вторую она перейдет или нет?

Условно есть загрузка номенлатуры и контрагентов. Это две обработк или одна?

Честно, не увидел гениальности.
Но право на жизнь, конечно же, имеет.

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

Я что-то похожее делал в прошлом году, но вот гениальности в этом не увидел. Может потому что уже давно пишу на Java, для души. И у меня часто проскакивают какие-то решения, которые в 1С не очень и приняты. Но, опять же, гениальности в этом не вижу.

Возможно у вас "синдром самозванца"

Надо выложить готовый продукт, а не полуфабрикат. Здесь пока много кода, от которого можно абстрагироваться.

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

Идеи важнее.

А в 1С разве нельзя CTRL+C / CTRL+V из Excel (то есть из clipboard) прямо в любую табличную часть, как в lsFusion ? Тогда пользователь, при желании, сможет сам подгонять любой excel-файл под колонки в таблице и загружать без помощи программиста 1С.

Это слишком упрощенный подход к загрузке данных. Некий частный вырожденный случай.

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

Да, бывают и сложные случаи. Но тем не менее, очень много случаев, когда и не надо создавать. Например, просто импорт заказа покупателя, где есть колонки код и количество. Или тех же прайс-листов поставщика, где есть уже штрих-коды и цены, и цель загрузить только те товары, что уже есть.

Когда не нужно создавать, ко мне не обращаются. Когда достаточно самолечения, доктор не нужен. Но доктор должен чем-то лечить, у него должны быть инструменты. Вот это и есть инструмент.

Больше велосипедов хороших и разных!

Даем стране угля!

Самый быстрый способ, который нашел когда-то, это через коннектор odbc excel driver. Позволяет подключить файл как внешний источник данных и работать как с таблицами БД

а скорость не всегда важна. об этом я писал в своей прошлой статье https://habr.com/ru/articles/777840/

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

  1. Получение сырых внешних данных. Это может быть чтение excel, результат rest-запроса или обращение к внешней бд, например. На выходе получаем коллекцию (обычно таблицу значений) данных примитивных типов: строки, числа, даты, булево. Применительно к чтению эксель зададим на вход коллекцию структур, описывающие искомые поля: имя в результате, номер колонки или имя (тогда ищем по имени строки-заголовка), тип значения. Задаём другие параметры: лист поиска, номер строки заголовка - опционально.

  2. Насыщение данных из нашей ИС - добавление полей-сущностей по параметрам сырых данных. Здесь входящие структуры это тексты запросов (или из части): имя таблицы-сущности, условия поиска, сортировка выбора. Например поиск номенклатуры по артикулу, в определенной папке, сначала ищем полное соответствие артикула, потом по началу значения.

  3. Обработка данных. Необязательно непосредственная запись. Это может быть наполнение табличной части документа в интерактивном режиме.

    Вот собственно комбинируя эти "кубики" весь шаблон и строится.

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

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

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

Зачем использовать дополнительный файл настроек? Программисту проще сразу в коде написать что надо.

Речь идет о разделении движка и прикладного уровня. Как вы это разделите - не суть. Я прикладной код прямо в этой же форме пишу. Но речь об выделении некоего общего кода (движка).

Это же библиотечный подход! И как это раньше никто до такого не додумался, интересно?

Увы. Но такова селяви. В 1С повторное применение кода не распространено. Есть обработки на Инфостарт - но это полуфабрикаты.

Что говорить, даже якобы открытая БСП (библиотека функций) проприетарна, то есть ее нельзя свободно использовать.

вы там определитесь уже, а то как-то не вяжется с

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

Идеи важнее.

Прямо в форме записываете объекты в базу? Хай-левел программинг!

а что не так? продолжаете экономить на спичках? Труд программиста важнее облегчать чем страдать перфекционизмом.

вы тут за разделение уровней логики, а сами спагетти делаете из UI и бизнес-данных

Таким же образом можно грузить другие файлы, xml, txt

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

  1. Это не уровень статей для Хабра. На инфостарте подобного мусора - тьма. Публикуйте пожалуйста там.

  2. Я, как начинающий программист с опытом 2 месяца, задаюсь вопросом - а как же обрабатываются ситуации, когда контрагент - обособленное подразделение? В примерах я вижу, что никак. КПП введён корректно в любом случае. Ну и в целом... Это всё очень слабо.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории