В практической работе бухгалтера и оператора 1С часто возникает задача быстрого ввода документов. Если ваш контрагент прислал накладную или спецификацию в электронном виде, ручной перенос десятков или сотен позиций номенклатуры превращается в рутину. Логичным решением кажется использование кнопки «Загрузить из файла». Однако, открыв документ Реализация (акты, накладные, УПД) в программе «1С:Бухгалтерия 8» (ред. 3.0), вы обнаружите, что такой кнопки в интерфейсе попросту нет.
В этой статье мы подробно разберем, почему разработчики фирмы «1С» приняли такое решение, проанализируем внутреннюю логику программы и рассмотрим пять проверенных способов, как все-таки импортировать данные и создать документ реализации из файла без ручного ввода.
Для начала разберем методологию учета в 1С. Документ РеализацияТоваровУслуг по своей сути является исходящим первичным документом. Это означает, что именно ваша организация выступает инициатором сделки, продает товары или услуги и формирует первичный документ в своей базе данных. Выгрузка этого документа в XML-файл (через меню Еще — ЭДО — Выгрузить документ в файл) предназначена для передачи его покупателю.
Покупатель, получив этот файл, загружает его в свою базу 1С. Но для него это приобретение ценностей, поэтому он загружает файл в документ Поступление (акты, накладные, УПД). Там кнопка «Загрузить из файла» присутствует по умолчанию, так как для покупателя документ является входящим.
Тем не менее бывают ситуации, когда менеджеру или бухгалтеру нужно загрузить именно документ продажи (например, если спецификация согласована в Excel, заказ пришел из внешней CRM-системы или нужно продублировать реализацию из другой базы). Рассмотрим, как решить эту задачу.
Это самый современный и удобный встроенный инструмент в «1С:Бухгалтерии 3.0». Он позволяет преобразовывать сканы, фотографии, PDF-файлы, а также электронные документы Excel и Word в готовые документы 1С.
Выясним, как воспользоваться этим инструментом для создания реализации:
Этот способ идеален, так как не требует никаких доработок конфигурации и работает «из коробки» на всех современных релизах.
Если контрагент прислал вам заказ или спецификацию в формате Excel (XLS, XLSX), мы можем использовать стандартный механизм заполнения табличной части через промежуточный документ — Счет на оплату покупателю.
Разберем этот процесс по шагам:
Счет на оплату покупателю.Этот метод отлично подходит для работы с Excel-файлами любой структуры без привлечения программистов.
Если вам необходимо загружать данные напрямую в документ реализации, минуя создание счетов, можно воспользоваться универсальной обработкой от фирмы «1С».
Рассмотрим подробнее работу с этим инструментом:
ЗагрузкаДанныхИзТабличногоДокумента.epf с портала ИТС или диска 1С:ИТС).Реализация товаров и услуг (его нужно создать пустым и записать заранее). В поле «Табличная часть» выберем значение Товары.Если перед вами стоит задача, описанная автором на форуме — загружать файлы формата XML, выгруженные из другой базы 1С через механизм ЭДО, то лучшим решением будет использование механизма расширений конфигурации. Это позволяет добавить нужную кнопку без снятия базы с поддержки.
Программист 1С может написать небольшое расширение, которое добавит команду Загрузить из XML в форму документа Реализация. Посмотрим на пример программного кода, который реализует парсинг входящего XML-файла и заполнение документа:
&НаСервере
Процедура ЗагрузитьРеализациюИзФайлаНаСервере(ИмяФайла, ДокументСсылка)
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
ДокументОбъект.Товары.Очистить();
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайла);
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "СтрокаНоменклатуры" Тогда
НоваяСтрока = ДокументОбъект.Товары.Добавить();
КодТовара = ЧтениеXML.ПолучитьАтрибут("Код");
НайденнаяНоменклатура = Справочники.Номенклатура.НайтиПоКоду(КодТовара);
Если ЗначениеЗаполнено(НайденнаяНоменклатура) Тогда
НоваяСтрока.Номенклатура = НайденнаяНоменклатура;
Иначе
// Логика создания новой номенклатуры или запись в лог ошибок
КонецЕсли;
НоваяСтрока.Количество = Число(ЧтениеXML.ПолучитьАтрибут("Количество"));
НоваяСтрока.Цена = Число(ЧтениеXML.ПолучитьАтрибут("Цена"));
НоваяСтрока.Сумма = НоваяСтрока.Количество * НоваяСтрока.Цена;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры
Подключить такое расширение может администратор системы через меню Администрирование — Печатные формы, отчеты и обработки — Расширения.
Если вам нужно переносить документы между разными базами 1С без сложной настройки полноценного ЭДО с электронными подписями, воспользуйтесь встроенным механизмом 1С:Share (в новых версиях программы он называется «1С:Документ без ЭДО» или «Электронный документ без подписи»).
Алгоритм работы выглядит следующим образом:
Мы проанализировали проблему отсутствия кнопки загрузки в реализации и нашли несколько путей ее решения. Выбор конкретного метода зависит от формата вашего файла: