Многие пользователи и разработчики сталкиваются с ситуацией, когда стандартная обработка «Загрузка данных из табличного документа» не позволяет корректно создать документ Операция. Давайте разберемся, почему так происходит и какие существуют пути решения данной задачи.
Основная сложность заключается в том, что документ Операция — это не простой документ с табличной частью «Товары» или «Услуги». Это регистратор, который напрямую формирует записи в регистре бухгалтерии Хозрасчетный. Стандартный механизм «Загрузки из табличного документа» рассчитан на простое сопоставление полей файла с реквизитами справочников или табличных частей документов. В случае с Операцией системе необходимо не просто заполнить поля, а создать объект, выполнить его запись и корректно сформировать движения по дебету и кредиту с учетом аналитики (субконто).
Если в вашей организации есть штатный программист, создание специализированной обработки является наиболее надежным и гибким способом. Процесс разработки можно разделить на следующие этапы:
ДокументОбъект.ОперацияБух: В коде обработки мы создаем новый объект и заполняем его основные реквизиты.Хозрасчетный (или Проводки) и программно добавляем строки, заполняя счета, валюты и аналитику.Примерная логика заполнения проводок в коде выглядит следующим образом:
Операция = Документы.ОперацияБух.СоздатьДокумент();
Операция.Дата = ТекущаяДата();
Операция.Организация = ВыбраннаяОрганизация;
// Заполнение проводок
Проводка = Операция.Хозрасчетный.Добавить();
Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.01");
Проводка.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51");
Проводка.Сумма = 1000.00;
Операция.Записать(РежимЗаписиДокумента.Запись);
В сообществе 1С существует множество готовых универсальных обработок, предназначенных для загрузки данных из XLS или XLSX. Их преимущество заключается в наличии готового пользовательского интерфейса для настройки соответствий колонок файла и реквизитов объекта.
При выборе готового решения рекомендуем обратить внимание на следующие возможности:
Для сложных случаев, когда данные в Excel структурированы нестандартно (например, объединенные ячейки или сложная группировка), используйте методы платформы для чтения файла:
Разберем использование объекта ТабличныйДокумент для чтения файла:
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать("C:\ПутьКФайлу\Данные.xlsx");
Для НомерСтроки = 2 По ТабДок.ВысотаТаблицы Цикл
СчетДтКод = ТабДок.Область(НомерСтроки, 1).Текст;
Сумма = ТабДок.Область(НомерСтроки, 3).Текст;
// Дальнейшая обработка данных
КонецЦикла;
Этот метод позволяет вам полностью контролировать процесс парсинга данных, превращая каждую строку файла в полноценную проводку бухгалтерского учета.
Проанализировав ситуацию, можно сделать вывод: не стоит пытаться «победить» стандартную типовую загрузку, так как она не предназначена для автоматизации бухгалтерских записей. Мы рекомендуем либо воспользоваться готовым универсальным инструментом, который уже умеет работать с регистром бухгалтерии, либо написать небольшую собственную обработку. Это сэкономит время бухгалтерам и обеспечит корректность учета в 1С:Бухгалтерии 3.0.