Как из 1с выгрузить товарные накладные
Очень часто требуется получить данные из 1С 8.3 и сохранить информацию во внешний файл, иными словами, сделать выгрузку из 1С предприятия. Задача практически всегда выполнима без привлечения программистов 1С.
Рассмотрим ряд полезных советов, с помощью которых Вы сможет выгрузить данные из 1С во внешнюю информационную систему.
Способы выгрузки информации
В 1С есть несколько методов, с помощью которых Вы можете получить информацию без привлечения специалистов:
- Выгрузка базы из 1С 8.3 целиком — для последующей загрузки на другом компьютере
- Сохранение отчетов и печатных форм в Excel, Word или PDF
- Выгрузка таблиц из 1С
- Получение информации с помощью консоли запросов
Как выгрузить базу из 1с 8.3 целиком (в файл .dt)
Для этого понадобится зайти в режим конфигуратора, затем в главном меню выбрать пункт «Администрирование» — «Выгрузить информационную базу»:
Затем потребуется только указать название будущего файла и его расположение на диске.
Для последующей загрузки в другую базу нажмите на кнопку «Загрузить информационную базу» и выберите предварительно выгруженный файл.
Выгрузка из 1С в Excel отчетов и печатных форм
Этот способ универсальный и очень простой. Для этого достаточно при открытии печатной формы или отчета.
Например, открываем печатную форму ТОРГ 12, нажимаем ctrl+S (или в меню Файл – Сохранить как) и выбираем тип файла и его имя:
Для отчетов действует та же система – отчет выгружается в два клика:
Выгрузка таблиц из 1С 8.3
Часто встречаются такие банальные задачи, как «получить список платежек за текущий год», «выгрузить книгу покупок или продаж» или «выгрузить товары из накладной №256». Решить такие задачи достаточно просто.
Например, мне необходимо получить все поступления от контрагента «Вектор» с суммой более 1000. Откроем форму списка и установим нужные отборы в списке:
Далее, когда мы получили список документов, необходимо вызвать контекстное меню (правая кнопка на таблице или меню «Действия») и выбрать в списке команд «Вывести список»:
Система предложит вариант вывода – в табличный документ или текстовый, выберем табличный. Программа 1С выведет информацию в такой табличный документ, который, подобно отчетам, можно сохранить в нужный нам формат:
Подобные действия можно произвести практически для любой табличной части в 1С 8.2. Например, нам потребовалось выгрузить список товаров из поступления № МСК00003, не проблема. Делается это очень просто – открываем документ, вызываем контекстное меню и через пару кликов получаем нужную выгрузку в нужном формате:
Выгрузка в Excel журнала проводок из 1С:
Получение информации с помощью консоли запросов
Однако не вся информация может быть найдена в простой табличной части 1С 8.2. Иногда требуется собрать данные из нескольких источников данных, соединить их по некоторым полям.
Этот способ подходит для технически подкованных людей, которые знают основы языка запросов. Заключается он в том, чтобы получить результат запроса с помощью консоли запросов и сохранить его в нужный нам формат.
Например, требуется получить всех контрагентов-поставщиков и их телефонный номер. Для этого напишем следующий запрос:
Полученную таблицу можно также выгрузить в нужный формат файла:
Загрузить полученные данные можно в другую базу 1С с помощью «Универсальной загрузки из эксель«. Смотрите видеоинструкцию на примере номенклатуры:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
На вкладке Выгрузка будет доступна единственная вкладка Поступление товаров. На текущий момент других документов в Quick Resto из 1С загрузить нельзя. Чтобы добавить документы для выгрузки, нажмите Добавить. Выберите поступления товаров в 1С, которые необходимо загрузить в Quick Resto, и нажмите Выгрузить.
Как загрузить в 1С Управление нашей фирмой 8 (1С:УНФ) данные из приходной накладной поставщика в файле Excel с помощью штатной обработки, встроенной в типовую конфигурацию
Иногда в повседневной работе практически любого предприятия возникает необходимость загрузить данные в информационную базу 1С из таблицы Excel, например, в приходную накладную из расходной накладной, которую поставщик переслал по e-mail.
Автоматическая загрузка особенно актуальна, когда число элементов, которые необходимо вводить составляет десятки, сотни или даже тысячи, и ручной ввод такого объема данных является довольно трудоемкой работой.
В таких случаях многие заказывают соответствующие обработки у собственных штатных программистов, фирм-франчайзи или сторонних разработчиков, но это дополнительные расходы и время.
В типовой конфигурации «1С:Управление нашей фирмой» (1С:УНФ) есть встроенный механизм загрузки номенклатуры, количества и цен из Excel в табличную часть приходной накладной.
Данный вариант загрузки приходной накладной можно использовать в типовой конфигурации «Управление нашей фирмой» редакция 1.6, как в локальной версии, установленной на компьютере пользователя, так и в облачной версии 1С:УНФ.
Рассмотрим на примере процесс загрузки данных в документ «Приходная накладная» типовой конфигурации 1С:Управление нашей фирмы 8 редакции 1.6 (Интерфейс «Такси») из расходной накладной поставщика в формате excel (.xlsx).
- Приходная накладная поставщика в Excel .xlsx См.рис 1.
- Типовая конфигурация Управление нашей фирмой Ред.1.6, релиз 1.6.10.44.
- Необходимо загрузить в документ «Поступление товаров и услуг» наименования товаров, количество и цены.
Для того чтобы из Расходной накладной поставщика можно было загрузить данные в Приходную накладную вашей программы 1С:Управление нашей фирмы 8 предварительно необходимо подготовить форму файла для загрузки, удалив столбцы и строки не нужные для загрузки (оставляем наименования колонок).
Для возможности должны быть выполнены следующие условия:
- Все товары, которые будем загружать из расходной накладной поставщика, уже должны существовать в справочнике номенклатуры вашей информационной базы 1С:Управление нашей фирмы. Если в накладной есть новые позиции, которых ещё нет в программе, то перед загрузкой накладной необходимо их ввести вручную, или в автоматическом режиме. Инструкция по загрузке номенклатуры описана в предыдущей части серии статей «Загрузка в 1С из Excel. Часть 5. Загрузка справочника номенклатуры в «1С:Управление нашей фирмы» из прайс-листа в Excel».
- Идентификацию элементов в данном примере будем проводить по артикулам, т.к. идентификацию по «наименованию» считаем не самым надежным способом, в связи с тем, что трудно обеспечить 100% соответствие написания наименований в справочнике номенклатуры вашей программы 1С и в электронной форме расходной накладной вашего поставщика (учитывая сокращения, пробелы, знаки препинания, символы, служебную информацию и т.д.). Поэтому артикулы товаров в накладной должны соответствовать артикулам элементов справочника номенклатуры в вашей информационной базе 1С:Управление нашей фирмой 8.
- В справочнике номенклатуры вашей базы данных не должно быть дублирующих элементов с одинаковыми названиями/артикулами.
Запускаем 1С:Управление нашей фирмой в пользовательском режиме.
Заполняем реквизиты документа: Контрагент, Договор, Дата, Вид операции.
После этого нажимаем на кнопку «Загрузка данных из внешних источников» с зеленой стрелкой, рядом с кнопкой «Изменить» (см.рис.).
Будет предложено выбрать один из двух вариантов загрузки данных: Автоматический режим или Ручной режим. Указываем «Автоматический режим. Выбрать внешний файл. «.
Откроется стандартное окно проводника, с помощью которого выбираем наш подготовленный файл с данными для загрузки в приходную накладную в формате «.xlsx».
Нажимаем «Открыть». Если файл успешно прочитался, то в табличной части окна «Загрузка данных из внешних источников» мы увидим содержание файла.
Теперь необходимо указать какой тип данных для загрузки содержится в колоноках, для этого жмем на надпись «Не загружать» в верху каждой колонки и в открывшемся окне указываем, какой именно реквизит в табличной части приходной накладной необходимо заполнять данными из данной колонки. В нашем примере это «Артикул», «Количество и «Цена».
Когда колонки «Артикул», «Количество» и «Цена» будут сопоставлены нажимаем «Далее».
Откроется окно анализа сопоставления, в котором вы увидите, сколько элементов было обнаружено в базе (отмечены зеленым цветом) и сколько элементов не удалось сопоставить (выделены красным цветом).
Если все строки отмечены зеленым, а красным «0», то жмем «Загрузить данные в приложение».
Номенклатура, количество и цены загружаются в приходную накладную.
Проверяем правильность загруженной информации с расходной накладной поставщика и если все сходится, то проводим документ.
Если все Ок, то лайкаем статью в соцсетях и делимся ссылкой на форумах ))).
[expert_bq id=»1570″]Мы для примера загрузим небольшой прайс в котором содержится следующая информация наименование, артикул, единица измерения, два типа цен, штрих-код. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Такой способ представляется мне более естественным, поэтому по умолчанию я и назначил ИспользоватьЗаголовок = Ложь. Следует еще и учесть, что имена колонок в таблице значений 1С должны строго соответствовать правилам именования идентификаторов 1С (не содержать пробелы и т.д.)Методы настройки обмена данными между 1С и другими системами
- Приходная накладная поставщика в Excel .xlsx См.рис 1.
- Типовая конфигурация Управление нашей фирмой Ред.1.6, релиз 1.6.10.44.
- Необходимо загрузить в документ «Поступление товаров и услуг» наименования товаров, количество и цены.
Если в какой либо строке настройки стоит Режим загрузки “вычислять” или “устанавливать” то обработка не будет учитывать значение в колонке настроек “№ Колонки табличного документа” этой же строки настройки.
Работа с внешними наборами данных в СКД
Для использования в отчёте на СКД произвольной таблицы значений необходимо настроить соответствующим образом схему компоновки данных и прописать программный вывод отчёта.
1.2. На закладке «Наборы данных» добавляем набор данных — объект.
1.3. Добавляем необходимые поля набора данных (достаточно указать Поле) и указываем Имя объекта, содержащего данные.
1.4. Если в СКД есть другие наборы данных (например, Запрос), то создаём связи наборов данных на закладке «Связи наборов данных».
2.1. В модуле объекта отчёта создаём процедуру-обработчик ПриКомпоновкеРезультата.
2.2. В процедуре ПриКомпоновкеРезультата отключаем стандартную обработку.
2.3. Формируем таблицу значений произвольным образом. Имена колонок таблицы значений должны совпадать с полями набора данных в СКД (п.1.3).
2.6. Помещаем данные о расшифровке в соответствующую переменную.
2.8. Передаём в макет компоновки схему, настройки и данные расшифровки.
2.9. Выполняем компоновку с помощью процессора компоновки. Для этого выполняем метод процессора компоновки данных Инициализировать(). В качестве параметров передаём макет компоновки данных, внешние наборы данных (тип: Структура, ключ структуры должен совпадать с именем объекта в схеме компоновки данных (п.1.3), значение — сформированная таблица значений), данные расшифровки.
Помимо таблиц значений в качестве внешних наборов данных могут использоваться результаты запросов, табличные части.
Тип: Структура.
Ключ структуры соответствует имени внешнего набора данных. Значение структуры — внешнему набору данных.
Тип: ДанныеРасшифровкиКомпоновкиДанных.
Объект, в котором нужно заполнить данные расшифровки. Если не указан, то расшифровка заполняться не будет.
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь.
Пример использования внешних наборов данных в СКД (для УТ 10.3)
Комментарии
Спасибо огромное за статью и прикреплённый пример. Очень помогло в работе.
Спасибо — просто спасли. Только у меня Период не видит в модуле
положила все в модуль Объекта(база ЗиК 3), в СКД в Параметры добавила «Период» =стандартный период,НачалоПериода=&Период.ДатаНачала ; КонецПериода.. Не видит здесь Период и все..
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) экспорт
СтандартнаяОбработка = Ложь;
//ДанныеПечати = ПолучитьИзВременногоХранилища(Адр);
Запрос = Новый Запрос;
Запрос.Текст ;
//Запрос.УстановитьПараметр(«НачалоПериода», Период.ДатаНачала);
//Запрос.УстановитьПараметр(«КонецПериода», Период.ДатаОкончания);
НачалоПериода=Дата(«01.11.2016 00:00:00»); ;
Запрос.УстановитьПараметр(«НачалоПериода», НачалоПериода);
Запрос.УстановитьПараметр(«КонецПериода», КонецПериода);
Запрос.УстановитьПараметр(«СовмПроф», «Доплата за совм. проф. (4)»);
//Если СовмещСотрудник.Пустой() тогда
// //Сообщить(«В ЭТОЙ ГРУППЕ НЕТ КОНТРАГЕНТОВ » );
//конецесли;
Запрос = Новый Запрос;
Запрос.Текст ;
ффф= Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено ;
//Запрос.УстановитьПараметр(«НачалоПериода», Период.ДатаНачала);
//Запрос.УстановитьПараметр(«КонецПериода», Период.ДатаОкончания);
Запрос.УстановитьПараметр(«НачалоПериода», НачалоПериода);
Запрос.УстановитьПараметр(«КонецПериода»,КонецПериода);
ПланВидовРЕЗ= РезультатПакета[6].Выгрузить();
ПланВидовРЕЗ.сортировать(«ПланВидовРасчетаНаименование»);
СотрРез = РезультатПакета[9].Выгрузить();
ДанныеПечати = РезультатПакета[10].Выгрузить(); //окончательный итог Сотрудник
//начисл_Сотр_подр = РезультатПакета[9].Выгрузить();
//начисл_Сотр_подр.сортировать(«Группа»);
//РезультатЗапроса.сортировать(«Группа,СпрОтрВБух_ВидДеятельности,ВидДеятельностиНАШ»);
ДанныеПечати.сортировать(«Сотрудник»);
ДанныеПечати.Колонки.Добавить(«ПодразделенияРодитель», Новый ОписаниеТипов(«строка»));
ДанныеПечати.Колонки.Добавить(«ВидДеятельностиНаш», Новый ОписаниеТипов(«строка»));
Если МассивНайденныеСтроки.Количество() > 0 Тогда
Для Каждого Ст Из МассивНайденныеСтроки Цикл
Стр.ВидДеятельностиНаш = Ст.СовмещСпособОтражения;
Если Ст.СовмещПодразделениеКуда = NULL Тогда
Счет =»»;
СубСчет =»»;
ПодразделениеСпрОтр =»»;
ВидДеятельностиСпрОтр =»»;
резЗапр = 0;
//Из схемы возьмем настройки по умолчанию
Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
//Помещаем в переменную данные о расшифровке данных
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, Новый Структура(«ДанныеПечати», ДанныеПечати), ДанныеРасшифровки);
//Очищаем поле табличного документа
ДокументРезультат.Очистить();
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
В случае нахождения наименования номенклатуры в базе, она будет показана на закладке Все без знака «+» и повторно создаваться не будет. PDF
Загрузка из Excel в 1С — Благин Константин
В этой статье я расскажу как с помощью универсальной обработки “Загрузка данных из табличного документа” с диска ИТС загрузить данные в справочник номенклатура в конфигурацию Управление торговлей 10.3. Загрузка производится из файлов с расширением xls (формат excel 97-2003) в несколько этапов.
Использование COM-соединения, выгрузка в Excel через COM-объект Excel.Application
COM-соединение
Объект Excel.Application
У объекта Excel.Application существует ряд методов, которые нам могут пригодиться для реализации нижепоставленной задачи:
Постановка задачи
Итак, предположим, что в обработке 1С у нас имеется табличная часть, состоящая из следующих колонок:
Необходимо реализовать 2 функционала (сделать на форме 2 основные кнопки):
Алгоритм выгрузки/загрузки в MS Excel
- Выгружаем табличную часть в таблицу значений
- Создаём новый COM-объект Excel.Application
- Выбираем файл, открываем файл книги MS Excel
- Переходим на заданный лист книги
- Выгружаем данные в файл
- Закрываем книгу, выходим из COM-объекта.
- Создаём новый COM-объект Excel.Application
- Выбираем файл, открываем файл книги MS Excel
- Переходим на заданный лист книги
- Загружаем данные из файла в таблицу значений
- Закрываем книгу, выходим из COM-объекта
- Таблицу значений выгружаем в табличную часть.
Операция выгрузки и загрузки данных о номенклатуре происходит в заранее подготовленный шаблон MS Excel.
Пример кода 1С
Код 1С я постарался разделить на отдельные функции, чтобы, скопировав, с ними можно было работать где угодно. На форме обработки 1С были созданы 3 кнопки:
В итоге в реализации алгоритма получились следующие основные процедуры и функции 1С:
- ПолучитьExcel – Получает COM-объект MS Excel;
- ЗакрытьExcel – Закрывает использование COM-объекта MS Excel;
- ПолучитьЛистExcel – Получает лист книги Excel;
- ДобавитьТабличныйДокументВExcel – Добавляет табличный документ на лист Excel (нужно для выгрузки данных);
- ПрочитатьОбластьИзExcel – Читает область ячеек с листа Excel (нужно для загрузки данных);
- ШиринаЛистаExcel – Ширина листа Excel;
- ВысотаЛистаExcel – Высота листа Excel;
- ПреобразоватьТДвТЗ – Преобразует табличный документ в таблицу значений;
- ПреобразоватьТЗвТД – Преобразует таблицу значений в табличный документ;
Для начала приведу вспомогательную функцию для открытия/сохранения файла на диске:
Также в реализации алгоритма были задействованы следующие вспомогательные функции:
// Определяет высоту листа MS Excel. // // Параметры: // ЛистExcel — — Лист из файла MS Excel. // // Возвращаемое значение: // — Количество строк в таблице. // Функция ВысотаЛистаExcel(ЛистExcel) Экспорт ЕстьЗащита = ЛистExcel.ProtectContents; Возврат ?(ЕстьЗащита, ЛистExcel.UsedRange.Rows.Count, ЛистExcel.Cells.SpecialCells(11).Row); КонецФункции;
В реализации алгоритма был дополнительно использован объект COMSafeArray с типом VT_VARIANT. Этот COM-объект выступает в качестве двумерного массива, в котором удобно хранить значения ячеек. Также использование данного объекта повышает быстродействие операций чтения/записи для ячеек таблицы.
Целиком получившуюся обработку 1С, а также шаблон для загрузки/выгрузки можно скачать по ссылке ниже.
Указанные здесь процедуры и функции я постарался сделать универсальными. Они могут быть применены для широкого круга прикладных задач.
Как из 1с выгрузить товарные накладные
- Выгружаем табличную часть в таблицу значений
- Создаём новый COM-объект Excel.Application
- Выбираем файл, открываем файл книги MS Excel
- Переходим на заданный лист книги
- Выгружаем данные в файл
- Закрываем книгу, выходим из COM-объекта.
При использовании веб-сервиса нет потребности в предоставлении внешнему приложению доступа к информационной базе, что очень хорошо с точки зрения обеспечения безопасности данных. Внешнее приложение получает доступ к набору функций 1С, которые сами обрабатывают данные и предоставляют «наружу» конечный результат.