Выгрузка номенклатуры. Выгрузка номенклатуры Обработка выгрузки справочника номенклатуры в 1с
Инструкция
1С: предприятие позволяет выгрузить любой справочник, не прибегая к написанию сложных обработок загрузки/выгрузки, пользуясь только встроенными средствами. Для начала нам необходимо определиться, в каком формате мы хотим получить данные:
*.mxl – внутренний формат табличных данных 1С, подходит для загрузки в другую базу данных 1С;
*.xls – электронные таблицы Excel;
*.pdf – электронный документ Adobe Reader;
*.html – веб-страница для публикации в интернете;
*.txt – простой текстовый файл, пригодится для загрузки в любую базу данных.
Если справочник иерархический, то в форматы *.mxl и *.xls список выгрузится с сохранением иерархии и с возможностью свернуть/развернуть группы. Во все остальные форматы выгрузка произойдет простым списком, с перечислением элементов группы после ее наименования.
Откроем справочник, который нам необходимо выгрузить. В нашем случае это «Номенклатура». Операции -> Справочники -> Номенклатура. Можно выгрузить не весь справочник, а только определенную группу, для этого нужно зайти в эту группу. При больших объемах данных имеет смысл выгружать по группам в разные файлы, для ускорения работы.
На любой строке открывшегося списка щелкнем правой кнопкой мыши и выберем пункт «Вывести список». Появится окошко настроек.

В окошке настроек оставим флажки только для тех полей, которые нам нужны в конечном документе. В поле «Выводить в …» оставим пункт «Табличный документ» (можно выбрать и «Текстовый документ», но табличный более универсальный). Нажимаем кнопку «ОК».
Наверное, каждый специалист по 1С сталкивался с ситуацией необходимости перенести данные из одной информационной базы в другую. В том случае, когда конфигурации разные, приходится писать правила конвертации данных. Данные правила создаются в конфигурации 1С «Конвертация данных».
Так же данные можно переносить при помощи . Во многих конфигурациях 1С 8.3 есть типовой функционал для настройки синхронизации данных между различными конфигурациями и бесшовная интеграция с 1С Документооборот.
Но когда данные необходимо перенести данные между абсолютно идентичными конфигурациями, можно упростить себе задачу и воспользоваться стандартной обработкой выгрузки и загрузки через XML. Обратите внимание, что такой способ, как и конвертация данных сопоставляет между собой объекты по уникальному идентификатору (GUID), а не по наименованию.
Скачать данную обработку можно на диске ИТС, либо по ссылкам:
Она является универсальной и подойдёт для любой конфигурации.
Рассмотрим пример выгрузки справочника «Номенклатура» из одной информационной базы 1С 8.3 Бухгалтерия 3.0 в другую. Обязательным условием будет отбор по родителю (группе) «Деревообработка».
Выгрузка данных из 1С в XML
Зайдите в ту информационную базу, откуда будут выгружаться данные (источник). Обязательно проверьте их, предусмотрев все возможные условия во избежание возникновения нежелательных последствий.
Откройте обработку выгрузки и загрузки данных XML (Ctrl+O).
Нас интересует вкладка «Выгрузка». Первым делом укажите имя файла, в который будут выгружены данные и путь для сохранения. В данном случае данные выгружаются «В файл на сервере».
В шапке обработки настраивается период, по которому будет осуществляться отбор. Так же, для периодических регистров можно указать способ применения отбора по периоду. В случае необходимости выгрузки движений вместе с документами, устанавливается соответствующий флаг. В данном случае мы перегружаем справочник, поэтому в шапке ничего настраивать не нужно.
Перейдем к выбору данных для выгрузки. В табличной части формы обработки отметьте флажками те объекты конфигурации, которые вам нужно перенести.
Колонка «Выгружать при необходимости» означает, необходимо ли перегружать данный объект, если на него ссылается реквизит перегружаемого нами справочника. Например, позиция перегружаемой вами номенклатуры имеет такую единицу измерения, которой нет в базе – приемнике. Если напротив справочника с единицами измерения будет установлен флаг в колонке «Выгружать при необходимости», создастся новая позиция. В противном случае в качестве значения реквизита будет надпись «<Объект не найден>» и его уникальный идентификатор.
В простом случае без отборов настройка перегрузки номенклатуры будет выглядеть следующим образом.

В данном примере нужно отобрать только ту номенклатуру, которая находится в папке «Деревообработка».
Аналогичная обработка для 8.2 позволяет в удобной форме устанавливать отборы для каждого объекта конфигурации. В 8.3, к сожалению, такого функционала нет. Одним из вариантов выхода в данной ситуации будет отбор необходимых позиций на вкладке «Дополнительные объекты для выгрузки».
Добавить объекты здесь можно как вручную (кнопка «Добавить»), так и запросом («Добавить запросом…»). При большом их количестве предпочтительнее второй вариант.

В данном случае запрос будет следующим. Заполните параметры, выполните запрос, проверив данные, и нажмите на кнопку «Выбрать результат».

После того, как вы указали все необходимые объекты и дополнительные элементы для выгрузки, нажмите на кнопку «Выгрузить данные». Они попадут в XML файл, имя и путь нахождения которого указывали ранее. Результаты данной операции отобразятся в сообщениях.

В данном примере необходимо было выгрузить только 3 позиции, но выгрузилось пять. Всё потому, что напротив справочника «Номенклатура» в колонке «Выгружать при необходимости» был установлен флаг. Вместе с нужными позициями перегрузились их родители.
Загрузка справочника из XML
После успешной выгрузки данных из конфигурации – источника в XML файл, откройте базу – приемник. Структура объектов и их реквизитов должны совпадать между собой. В данном случае перенос осуществляется между двумя типовыми конфигурациями 1С:Бухгалтерия 3.0.
Откройте обработку в базе – приемнике. Данная обработка используется как для выгрузки, так и для загрузки данных. Перейдите на вкладку «Загрузить» и укажите путь к XML файлу, в который ранее были выгружены данные. После этого нажмите на кнопку «Загрузить данные».

Результат загрузки отобразится в сообщениях. В нашем случае всё прошло успешно.

Справочник «Номенклатура» в базе – приемнике не был заполнен. Теперь в нем пять элементов: три номенклатурных позиции и две группы.

Не будет найден среди выгруженной номенклатуры, его поиск будет проведен непосредственно в 1С, с помощью онлайн вызова.
Однако к такому варианту следует прибегать только в случае необходимости, например, когда справочник номенклатуры очень большой и часто изменяется, так что его постоянная перевыгрузка становится трудно решаемой задачей.
Это связано с тем, что прямой поиск номенклатуры по штрихкоду в 1С будет проходить гораздо дольше, чем в заранее выгруженном справочнике, так как Mobile SMARTS имеет специальные оптимизированные алгоритмы для этой задачи. Рекомендуется провести выгрузку номенклатуры хотя бы при первом применении драйвера, и повторять выгрузку периодически, по мере накопления в ней изменений и по мере возможности.
Начиная с версии 2.7.1.49 появилась возможность умной частичной «довыгрузки» справочника номенклатуры , которая позволяет ускорить процесс обновления справочника.
Выгружаемые поля
На закладке Настройки выгрузки находится список полей номенклатуры, выгружаемые поля отмечены галочкой. Для задания поля ТСД, в которое должно выгружаться то или иное поле номенклатуры, нужно выбрать это поле в списке и нажать кнопку «Редактировать поле…»:
По умолчанию выгружаются следующие поля:
При выгрузке на ТСД поддерживаются следующие значения Поле ТСД:
- Наименование
- Артикул
- ЕдиницаИзмерения
- Штрихкод
- Описание
- Серия
- Качество
- Количество
Кладовщику нужно выгрузить список всей номенклатуры, у которой не установлена пометка удаления. Поля для выгрузки:
- Наименование.
- Артикул.
- Вид номенклатуры.
- Тип номенклатуры.
Вот так будет выглядеть таблица Excel после выгрузки:
Рассмотрим два способа решения: без программирования и с участием программиста.
Программируем
Чтобы выгрузить номенклатуру в XLS-файл сформируем запрос к базе данных для получения номенклатуры и поместим результат в табличную часть обработки выгрузки. Вот форма обработки:

По нажатию на кнопку "Заполнить" заполняется табличная часть "ДанныеВыгрузки" обработки, у которой добавлены соответствующие реквизиты. Обработчик этой кнопки имеет следующий программный код:
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос = Новый Запрос; Запрос. Текст = " ВЫБРАТЬ | Номенклатура. Ссылка КАК Номенклатура, | Номенклатура. Артикул, | Номенклатура. ВидНоменклатуры, | Номенклатура. ВидНоменклатуры. ТипНоменклатуры КАК ТипНоменклатуры |ИЗ | Справочник. Номенклатура КАК Номенклатура |ГДЕ | НЕ Номенклатура. ПометкаУдаления | И НЕ Номенклатура. ЭтоГруппа " ; ТаблицаДанных = Запрос. Выполнить () . Выгрузить() ; ДанныеВыгрузки. Загрузить(ТаблицаДанных) ; КонецПроцедурыЗдесь все должно быть понятно. Самое интересное начинается по нажатию на кнопку "Сохранить". Сначала вызывается диалог выбора пути для сохранения таблицы XLS. Затем, используя данные в табличной части обработки, заполняется табличный документ по созданному ранее макету. Макет, добавленный в обработку, следующий:

После сохранения, на диске буде файл таблицы Excel со списком выгруженной номенклатуры. Пример файла Вы могли видеть в начале статьи.
Пользователь может сам
На самом деле участи программиста для подобной задачи не нужно. Пользователь все сам может сделать без каких-либо хитростей.
Например, перейдя в список номенклатуры и выполнив команду "Все действия" -> "Вывести список" из списка номенклатуры, пользователь получит список номенклатуры в сформированном табличном документе.

После того, как табличный документ будет сформирован, нажав на кнопку "Сохранить" или через меню "Файл->Сохранить" пользователь может записать табличный документ в файл XLS указав его имя и конечный каталог.

Вот и все! Никакой обработки для выгрузки не нужно. Конечно, если у вас достаточно простой случай с выгрузкой данных.
Так все просто?
Действительно все просто, никаких внешних компонент подключать не нужно. К тому же, мы можем выполнить выгрузку таким способом не только в файлы формата таблиц Excel, но и другие форматы, поддерживаемые платформой.

Обработку с примером из статьи Вы можете скачать по ссылке .
При создании новой базы данных в 1С: Предприятие у администратора, как правило, возникает вопрос: можно ли заполнить справочник Номенклатура программно из табличного документа, не тратя время на заполнение вручную? Рассмотрим самый простой способ решения задачи.
Вам понадобится:
табличный файл с данными
обработка загрузки
база данных
Инструкция:
1
Открываем табличный файл с данными, например Excel или *.mxl. Он должен содержать, как минимум, наименования элементов справочника. Если есть какая-то другая информация, например, артикул и единицы измерения, ее тоже можно будет загрузить. Допустим, в нашем документе 3 колонки: наименование, полное наименование и артикул. Все элементы являются товаром, а не услугой и измеряются в штуках.
2
Обработку для загрузки можно найти на диске ИТС. Запускаем диск, заходим в раздел Технологическая поддержка, выбираем пункт 1С: Предприятие 8. Далее Универсальные отчеты и обработки -> Загрузка данных из табличного документа -> Описание и установка внешней обработки «Загрузка данных из табличного документа». Нажимаем ссылку «Копировать» и сохраняем обработку в выбранную папку.
3
В нашей базе данных открываем полученную обработку. В поле «Режим загрузки» по умолчанию стоит «Загрузка в справочник». В поле «Вид справочника» устанавливаем «Номенклатура». После чего нажимаем кнопку «Открыть файл…». В открывшемся окне находим табличный документ и выбираем его. Информация из файла отобразится в табличной части обработки.
4
Переходим на вкладку «Настройка». В поле «Первая строка данных табличного документа» ставим 1, если в нашем документе нет шапки, или 2, если шапка есть и данные начинаются со второй строки. Далее в пункте «Нумерация колонок» выбираем «Ручная нумерация колонок».
5
Снимаем все флажки с помощью кнопки слева от Нумерации колонок. Устанавливаем флажки в строках «Наименование», «Полное наименование» и «Артикул», режим загрузки оставляем «Искать», номера колонок ставим соответственно номерам столбцов в табличном документе. В нашем случае это 1, 2 и 3.
6
Если мы загружаем элементы в папку, ставим флажок в строке «Родитель», режим загрузки выбираем «Устанавливать» и в колонке «Значение по умолчанию» выбираем нужную нам группу справочника.
7
И, наконец, выберем единицы измерения и ставку НДС, иначе придется устанавливать их вручную для каждого элемента справочника. Установим флажки в строках «Базовая единица измерения» и «Ставка НДС», режим загрузки «Устанавливать», в поле «Значение по умолчанию» - «шт» и «18%» соответственно.
8
По окончании настройки переходим обратно, за закладку «Табличный документ» и нажимаем кнопку «Контроль заполнения». Если ошибок не выявлено, нажимаем «Загрузить». Загрузка завершена.

