Единый семинар «1С» для бухгалтеров и руководителей

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

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

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

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

 

 

 

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

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

См. также

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

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

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

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

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

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

ваши разработки все же не для меня - я фрилансер -внедренец - и ваши разработки не для моих пользователей - им сложно будет ориентироваться в настройках обработки.
мне приходится максимально упрощать решение любых задач - потому что я не нахожусь постоянно с клиентами. и многие мои публикации - подтверждение моего подхода - максимально упростить жизнь пользователям.
Остальные комментарии
1. mxm2 mxm2 (mxm2) 1066 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) 837 30.08.17 09:55 Сейчас в теме
(1), спасибо за комментарий.

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

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

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

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

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

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