Загрузка номенклатуры из Эксель (новый взгляд)

Публикация № 666516

Программирование - Практика программирования

загрузка номенклатуры из эксель в загрузчики товаров опенофиса

7
Представлена обработка "Загрузка номенклатуры из Эксель" (новый взгляд). Подходит для любого формата и любой структуры Эксель, ОпенОфиса: потому что пользователь сам решает - что ему загружать, а что нет.

Загрузчики из эксель (типовые, универсальные, специфичные) такие, чтобы указать путь к файлу Эксель (ОпенОфиса), потом загрузить, используя механизмы ОЛЕ, КОМ и другие - нужны. Давайте об этом договоримся сразу: нужны, бывают, иногда, очень.
Я вам представлю другой подход к вопросу загрузки данных из Эксель. Подходы могут меняться в зависимости от задачи. Я представлю самый простой подход.
Итак, предыстория. Многие загрузчики из Эксель представляют из себя форму с полем "ПутьКФайлу" - рис.1.

Рис. 1.  Один из вариантов реализации Загрузчика из Эксель

В алгоритмах выбора файла обычно прописывается следующий код (рис. 2, рис.3). И при появлении нового клиента с той же самой задачей - загрузить номенклатуру из эксель - всякий раз создается новая обработка и прописываются одни и те же алгоритмы. Однажды этому пришел конец Однажды я сделал по другому.

Рис. 2. Алгоритм выбора файла Эксель

Рис. 3. Алгоритм обработки файла Эксель

Однажды появилась задача создать загрузчик из Эксель для менеджеров по закупкам - чтобы создавался документ Поступление товаров из файла Эксель - они прислали форматы Эксель своих поставщиков (рис. 4.)

Рис. 4. Форматы эксель-таблиц разных поставщиков

Я предложил вариант, когда менеджеры копируют товары из колонки "Наименование" и вставляют в обработку 1с, то же самое повторяют с колонкой "Кол-во" и "Сумма" (рис. 5).

Рис. 5. Новый подход для загрузки данных из Эксель

Такой способ загрузки эксель был встречен на "УРА". Обучить пользователей пользоваться такой обработкой не составило труда. 

Немного отвлекусь, поскольку к самой идее данной публикации напрямую это не относится: в случае с загрузкой товаров от разных поставщиков я дополнительно добавил к справочнику "Номенклатура" табличную часть "НоменклатураПоставщиков", и, при поиске номенклатуры, в запросе ссылался на данную табличную часть - рис. 6.  В данном случае, я предложил таким способом хранить Артикулы (Коды, Штрихкоды) товаров поставщиков в базе 1с, чтобы загружать по каждому поставщику свою номенклатуру. Способ сработал и используется по сей день.

Рис. 6. Доработка конфигурации для хранения дополнительных сведений по Номенклатуре

Для примера вам представлена обработка "Загрузка номенклатуры из Эксель" для типовой конфигурации УТ 10.3. Тестировалась на платформе 1С:Предприятие 8.3 (8.3.9.2033), на демоконфигурации "Управление торговлей", редакция 10.3 (10.3.42.1). Код открыт. 

В загрузчике поиск номенклатуры происходит по "Артикулу" (типовому реквизиту справочника "Номенклатура"). Скажу наперед, что в дальнейшем на разных проектах я использовал такой подход загрузки товаров, только при этом менялись детали: поиск товара происходил по коду, по штрихкоду, по названию, создавался документ ЗаказПокупателя, УстановкаЦенНоменклатуры, ОприходованиеТоваров и т.д. В представленной обработке заложен только базовый функционал - поиск только по артикулу. На универсальность в каком-то смысле не претендую.

В какой-то момент я упростил еще - перестал прописывать алгоритм создания документов:

Док = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент().

Ведь в каждой конфигурации (особенно нетиповых и в отраслевых) закладываются специфичные алгоритмы при создании документов. Стал создавать документ "вручную" (новый или копированием). Вывел ссылку на вновь созданный документ (поле "Док") на форму загрузчика, и заливал список товаров в этот документ. Таким образом смог использовать такой способ не только для загрузки товаров в УТ 10.3, но и для загрузки в БП 3.0 (то есть переписал алгоритм для управляемой формы), БП 2.0 и пару отраслевых.

На видео продемонстрирован данный подход.

Пишите комментарии, ставьте лайки, подписывайтесь. С пользой для клиентов, RustIG


См. также:

Как эффективно использовать Инфостарт NEW!

Список реализаций + структура подчиненности + реестр документов SALE'1sm

Список заказов поставщикам + структура подчиненности SALE'1sm

Список заказов покупателей + структура подчиненности SALE'1sm

Договоры для 1с-ника ТОП-скачиваний

Сетка расписания (Планировщик) нестанДАрт

Два механизма, которые ускорили работу бухгалтеров в 1С нестанДАрт

Мини-CRM для УТ 10.3

Расчет банковских (рабочих) дней нестанДАрт

Шаблоны кода в режиме 1С:Предприятие SALE'1sm

Доработка конфигурации Конвертация Данных

Планирование платежей. Прогнозирование прибылей и убытков

Ввод показателей план-факта БП 3.0 Know-how

Инвентаризация личного опыта Для новичков 1С

Большие запросы: взгляд на проблему нестанДАрт

Технология создания коммерческих разработок Know-how

Андроид-решение для создания заказов в 1С Know-how + нестанДАрт

Отчет Остатки и цены

Печать ценников с одной и двумя ценами 55х40, 100х60, 140х200

Загрузка данных о розничных продажах из магазинов Intimissimi (Интимиссими) и Calzedonia (Кальцедония)

Доработки обмена "УТ 10.3 - интернет-магазина Shop-Script"

7

Скачать файлы

Наименование Файл Версия Размер
Загрузка номенклатуры из Эксель (новый взгляд)
.epf 8,17Kb
28.08.17
14
.epf 8,17Kb 14 Скачать

См. также

Специальные предложения

Лучшие комментарии
2. Rustig 1173 30.08.17 09:55 Сейчас в теме
(1), спасибо за комментарий.

если кратко, то хочется написать "Да, но ...."

теперь подробнее....мое мнение такое:
1) описанный мною подход не популярный, судя по большому кол-ву скачиваний универсальных загрузчиков (с указанием пути к файлу Эксель).
и то, что некоторые разработчики используют описанный подход (вы прислали ссылки) - это лишь небольшая горстка программистов, которые смотрят на задачу загрузки из Эксель по другому.

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

2) ваши ссылки интересны, но почему-то в поиске по фразе "загрузка из Эксель" - они не выпадают.... я предварительно изучал Инфостарт на предмет присутствия статей такого содержания...

3) мой описанный способ подходит для конкретной задачи - чтобы передать пользователю обработку и больше не возвращаться к этому вопросу . То что вы прислали - больше подходит программисту (сисадмину) в штате, который постоянно работает с этой базой.
мне трудно представить как я объясняю принцип работы вашей обработки (https://infostart.ru/public/197510/) девушке-категорийному менеджеру по закупкам, которая не дружит с компьютерами, или руководителю, у которого свой интернет-магазин или свой салон штор, и которые разбираются в автомобилях лучше, чем в программе 1С - это из моего личного опыта.

ваши разработки все же не для меня - я фрилансер -внедренец - и ваши разработки не для моих пользователей - им сложно будет ориентироваться в настройках обработки.
мне приходится максимально упрощать решение любых задач - потому что я не нахожусь постоянно с клиентами. и многие мои публикации - подтверждение моего подхода - максимально упростить жизнь пользователям.
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. mxm2 1133 30.08.17 08:38 Сейчас в теме
Подход не новый...) меня нужда заставила им воспользоваться т.к. не было установлено MS Excel, а был только OpenOffice Calc.
https://infostart.ru/public/197510/
https://infostart.ru/public/126685/
https://infostart.ru/public/124918/
2. Rustig 1173 30.08.17 09:55 Сейчас в теме
(1), спасибо за комментарий.

если кратко, то хочется написать "Да, но ...."

теперь подробнее....мое мнение такое:
1) описанный мною подход не популярный, судя по большому кол-ву скачиваний универсальных загрузчиков (с указанием пути к файлу Эксель).
и то, что некоторые разработчики используют описанный подход (вы прислали ссылки) - это лишь небольшая горстка программистов, которые смотрят на задачу загрузки из Эксель по другому.

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

2) ваши ссылки интересны, но почему-то в поиске по фразе "загрузка из Эксель" - они не выпадают.... я предварительно изучал Инфостарт на предмет присутствия статей такого содержания...

3) мой описанный способ подходит для конкретной задачи - чтобы передать пользователю обработку и больше не возвращаться к этому вопросу . То что вы прислали - больше подходит программисту (сисадмину) в штате, который постоянно работает с этой базой.
мне трудно представить как я объясняю принцип работы вашей обработки (https://infostart.ru/public/197510/) девушке-категорийному менеджеру по закупкам, которая не дружит с компьютерами, или руководителю, у которого свой интернет-магазин или свой салон штор, и которые разбираются в автомобилях лучше, чем в программе 1С - это из моего личного опыта.

ваши разработки все же не для меня - я фрилансер -внедренец - и ваши разработки не для моих пользователей - им сложно будет ориентироваться в настройках обработки.
мне приходится максимально упрощать решение любых задач - потому что я не нахожусь постоянно с клиентами. и многие мои публикации - подтверждение моего подхода - максимально упростить жизнь пользователям.
3. user635667 03.09.17 16:32 Сейчас в теме
Два вопроса:
1.подходит-ли для Розницы 2.2.5.27
и
2.как реализованная загрузка и создание групп номенклатур?
больше интересует второй вопрос, было бы удобно что бы группы создавались и в них создавались уже номенклатуры.
4. Rustig 1173 04.09.17 06:47 Сейчас в теме
(3),
1) под управляемые формы надо программировать дополнительно - то есть для розницы 2.2 в чистом виде не подходит, но алгоритм и идею легко перенести на розницу 2.2
2) создание групп никак не реализовано
Оставьте свое сообщение