Из Excel в 1С запросом

14.08.18

Интеграция - Загрузка и выгрузка в Excel

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

Вполне известно, что фирма 1С не рекомендует "заливать" данные в типовые конфигурации, иначе чем в самые простейшие справочники. По крайней мере такой вывод можно сделать из того, как работает типовая "заливка". Но, кто когда их слушал как правило, в простейших справочниках данных бывает немного и вколотить их руками не представляет большой трудности. А вот "тяжелые" справочники, типа "номенклатура" и "контрагенты" залить типовой обработкой не получается, пользователи вводить 100500 элементов вручную почему-то отказываются и приходится колхозить на коленке.

Но есть способ лучше! )

Консоль расширенных запросов теперь поддерживает параметры запроса типа ТаблицаЗначений. Иными словами, вы можете в запросе ВСТАВИТЬ манипулировать таблицей, скопированной из Excel. Это дает огромный потенциал для массовых манипуляций с данными, которые хранятся в какие-то внешних источниках.

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

Каждый набор данных (каждый справочник), заливаемый в систему, у нас будет характеризоваться двумя файлами:

  1. Данные (это может быть эксель с непосредственными значениями, но более вероятно что это будет текст запроса к какой-то старой системе заказчика)
  2. Способ их помещения в систему (текст расширенного запроса для нашей системы)

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

Текст запроса, например, для заливки новой номенклатуры по образцу будет такой:

|ВЫБРАТЬ
|	Наименования.Артикул КАК Артикул,
|	Наименования.Наименование КАК Наименование
|ПОМЕСТИТЬ втНаименования
|ИЗ
|	&Наименования КАК Наименования
|;
|
|///////////////////////////////////////////////////////////////////
|ВСТАВИТЬ
|	В Справочник.Номенклатура
|ЗНАЧЕНИЯ
|	(ВЫБРАТЬ
|		втНаименования.Артикул КАК Артикул,
|		втНаименования.Наименование КАК Наименование,
|		втНаименования.Наименование КАК НаименованиеПолное,
|		втНаименования.Артикул КАК Ссылка,
|		Образец.*
|	ИЗ
|		втНаименования КАК втНаименования,
|		Справочник.Номенклатура КАК Образец
|	ГДЕ
|		Образец.Ссылка = &Образец)

Здесь стоит обратить внимание на следующие особенности:

Во-первых, вы спокойно можете писать конструкции вида Образец.* не опасаясь того, что в новой номенклатуре окажутся наименования от старой. Все, что вы переопределите выше (Артикул, Наименование..) в таблице "со звездочкой" автоматически переименуется (Артикул1, Наименование1..) и успешно проигнорируется.

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

В-третьих, если есть подозрение, что данные придется заливать не один раз (а чаще всего так и бывает) - позаботьтесь заранее о нахождении уже загруженных значений. т.е. устанавливайте соответствия, например, по коду (да, с уникальными идентификаторами в запросах все сложно) и напишите сначала запрос УДАЛИТЬ, а затем вставляйте новые значения фразой ВСТАВИТЬ. Это поможет вам избежать дублирования элементов.

В-четвертых, как всегда, вы можете формировать данные сколь угодно сложным способом, включая вложенные запросы, значения через точку, ВЫБОР КОГДА и т.д.

В-пятых, обратите внимание на ссылочные типы. Никакой язык запросов, даже трижды расширенный, не приведет вам строку "Кондиционеры" к ссылке на вид номенклатуры. Вам нужно сделать это самостоятельно. Для этого, вам, опять-же, придется иметь какое-то уникальное значение в excel таблице (благо, добавить номер строки в экселе не долго) и написать конструкцию вида:

|ВЫБРАТЬ
|	Наименования.НомерСтроки КАК НомерСтроки,
|	Наименования.Артикул КАК Артикул,
|	Наименования.Наименование КАК Наименование,
|	Наименования.ВидНоменклатуры КАК НаименованиеВида,
|	Наименования.ЕдиницаИзмерения КАК НаименованиеЕдиницы
|ПОМЕСТИТЬ втНаименования
|ИЗ
|	&Наименования КАК Наименования
|;
|///////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|	Наименования.НомерСтроки КАК НомерСтроки,
|	МАКСИМУМ(Наименования.Артикул) КАК Артикул,
|	МАКСИМУМ(Наименования.Наименование) КАК Наименование,
|	МАКСИМУМ(ВидыНоменклатуры.Ссылка) КАК ВидНоменклатуры,
|	МАКСИМУМ(ЕдиницыИзмерения.Ссылка) КАК ЕдиницаИзмерения
|Поместить втНаименованияСоСсылками
|ИЗ
|	втНименования как Нименования
|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры как ВидыНоменклатуры
|		ПО Нименования.НаименованиеВида = ВидыНоменклатуры.Наименование
|	ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ЕдиницыИзмерения как ЕдиницыИзмерения
|		ПО Нименования.НаименованиеЕдиницы = ЕдиницыИзмерения.Наименование
|СГРУППИРОВАТЬ ПО
|	Наименования.НомерСтроки КАК НомерСтроки
|;
|///...

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

Удачи!

См. также

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211069    630    526    

446

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 09.04.2024, версия 9.9 - 9.10)

14400 руб.

20.11.2015    151345    366    376    

502

Маркетплейсный загрузчик для 12-ти маркетплейсов в 1С:БП 3, УТ 11, КА 2, ERP, УНФ

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", Казань-Экспресс, "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом" в документы "Отчет комиссионера (агента) о продажах" и другие, может работать в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

1800 руб.

12.08.2021    32276    240    64    

122

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    101804    298    173    

314

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

4800 руб.

07.06.2022    15359    82    0    

63

SALE! 20%

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

Загрузка и выгрузка в Excel Оптовая торговля Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 4000 руб.

09.11.2016    215781    928    886    

942
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 3036 20.08.18 09:27 Сейчас в теме
Из Эксель можно в 1С и через протокол odata залезть. Кстати там тоже весьма функциональный язык запросов.
iulyus; acanta; +2
2. KlesAlex 3 22.08.18 12:42 Сейчас в теме
Есть ещё метод чтения через получение области с получением массивов через Область.Value.Выгрузить()
+
3. aserg 45 17.09.18 03:40 Сейчас в теме
А есть еще штатная обработка с диска ИТС: "ЗагрузкаДанныхИзТабличногоДокумента" ("UploadFromTableDocument"). В ней тоже все отлично настраивается, а настройки сохраняются. А еще её можно допилить под свои конкретные нужды.
+
4. yyv-911 15.10.18 11:49 Сейчас в теме
не прошло и года. пару лет назад допилил стандартную консольку. спасибо за наводку. попробуем...
+
5. Maks_Alexey13 1 29.01.19 13:16 Сейчас в теме
| втНименования как Нименования

поправьте код
+
Оставьте свое сообщение