Универсальная обработка "Пакетный ввод документов" предназначена для автоматизации ввода документов на основании табличных данных Excel или других подобных программ.
Обычно в таком случае под каждый конкретный случай пользователь заказывает программисту специальную обработку, программист по описанному техзаданию прописывает код загрузки данных из Excel и код создания новых документов. При этом ему приходится для каждой ситуации описывать связи между столбцами (колонками) таблицы и реквизитами документа. Кроме того, даже если из таблицы берется всего пара реквизитов, программисту все равно необходимо написать код для задания остальных реквизитов документа стандартными значениями. А ведь даже в таком простом документе как приходный кассовый ордер этих реквизитов свыше 40. Что уж говорить, без 2-3 часов работы программиста не обойтись, а это от 3 до 6 тыс. руб. для каждого конкретного случая. Бывают еще ситуации, когда программист поленится прописывать установку всех несущественных на его взгляд реквизитов документа в обработке и это может привести к тому что после того как вы зайдете в созданный этой обработкой документ и закроете его ничего не поменяв программа все равно выведет предложение сохранить документ потому что он был изменен. Это происходит потому, что при открытии документа заполняются некоторые стандартные реквизиты документа значениями по умолчанию и это могут быть как раз те реквизиты которые программист упустил из виду. Можно подумать, что особо страшного в этом ничего нет, ну нажать «да «и документ сохранится. Но если описанная ситуация произойдет не сразу после применения обработки, а допустим спустя месяц и за это время вы задним числом поменяете более старые документы, то после нажатия «да» документ может быть перепроведен с другими проводками, например, по зачету авансов между счетами 60.01 и 60.02.
Обработка Пакетный ввод документов предлагает другой более универсальный подход к решению задач по пакетному вводу документов на основании табличных данных. За основу здесь берется повторение ручных действий человека. А что человек делает, когда ему необходимо ввести много данных вручную? Правильно, он копирует с аналогичных документов и меняет отдельные реквизиты. «Аналогичные документы» в обработке называются шаблоны. Шаблоны настраиваются в отдельной таблице, которую можно сохранить. Структура колонок таблицы данных для загрузки также настраивается в отдельной таблице, где можно указать имя колонки, имя реквизита значение, которого нужно заменить данными из колонки, вид реквизита: реквизит документа или реквизит табличной части и другие параметры.
Обработка стабильно работает на релизе 3.0.64.28 конфигурации 1С бухгалтерия 8.3, но должна без проблем работать на всех релизах конфигурации, так как на экспортные процедуры общих модулей не ссылается.
версия 1.4 от 14.07.2020: добавлены поля для заполнения номера документа, даты и номера входящей счет-фактуры.
Номер документа будет заполнен только если он уникален, иначе выйдет стандартное сообщение об ошибке программы и номер не будет заполнен.
Дата и номер входящей счет-фактуры будут заполнены для поступлений товаров и услуг шаблон которых имеет счет-фактуру полученную.
Сравнение версий
Дополнение от 26.11.2018 - Обработка была протестирована на УТ11. Выдавала ошибку в одном месте:
Если ТипЗнч(ДокОбъект)=Тип("ДокументОбъект.КорректировкаДолга") Тогда так как в УТ11 документа Корректировка долга нет
Поменял на Если СтрНайти(Метаданные.НайтиПоТипу(ТипЗнч(ДокОбъект)).ПолноеИмя(),"КоректировкаДолга")>0 Тогда Это выражение не обращается явно к типу а просто ищет в строке с полным именем типа документа подстроку КорректировкаДолга. Если не найдет то ничего страшного, пойдет дальше и ошибку выдавать не будет.
В остальном все работает на УТ11, так как обработка универсальная и работает на всех управляемых формах. Если кого-то заинтересует пишите в комментариях, сделаю версию для толстого клиента 1с 8.2
Версия 1.1 от 02.12.2018.
1. Добавил возможность изменения дополнительных сведений и дополнительных реквизитов документов (дополнительные реквизиты только в УТ). Соответствующие опции теперь появляются при выборе вида реквизита.
2. В настройках колонок добавил флажок "создавать новые элементы". Если тип значения реквизита - справочник, поиск осуществляется по наименованию и вводимое значение не найдено в справочнике, то при установленном флажке "создавать новые элементы" будет создан новый элемент справочника.
3. В настройках колонок сгруппировал некоторые колонки вертикально, чтобы вся таблица помещалась в ширину на экране (при разрешении 1920*1080)
4. Исправил мелкие баги
Версия 1.2 от 20.12.2018.
1. В настройках шаблонов добавлено поле счет-фактура. Это поле активно только для если документ шаблона реализация товаров и услуг. При установленном флажке во время загрузки документов по этому шаблону на основании документа будет дополнительно создана счет-фактура
2. Добавлена возможность многострочного ввода документов. Если в поле шаблон ввести текст "<>" то по этой строке не будут вводиться новые документы, а данные из колонок с видом "Реквизит табличной части" будут добавляться в табличные части документов из предыдущей строки. Например в следующей таблице будет создано 2 документа: в первом будет 3 строки, во втором 2 строки. Многострочный ввод документов имеет смысл использовать для ввода табличных частей документов. Если кроме реквизитов табличной части нужно изменить реквизиты самих документов, их нужно задать в первой строке блока (там где шаблон не "<>")
3. В связи с добавлением возможности многострочного ввода полностью переработан программный код отвечающий за ввод документов. Теперь данные из таблицы сначала собираются в структуру изменяемых реквизитов, а затем на основе разбора структуры реквизитов создаются документы и изменяются реквизиты. Это позволило сделать программный код более кратким, простым, логичным и понятным для отладки. Удалось избежать использование оператора "Выполнить", который в отдельных случаях мог вызывать ошибку. Также новый программный код работает быстрее, так как данные записываются в базу только один раз.
Версия 1.3 от 23.12.2018.
1. Исправлена ошибка выходившая при выборе реквизита поиска. Ошибка появилась в предыдущей версии и была вызвана тем,что при переработке программного кода был оптимизирован код некоторых функций, а вызов функции в одном месте не был скорректирован.
2. Добавлена возможность ввода периодических реквизитов. Периодические реквизиты это реквизиты которые хранятся в регистрах сведений и по которым в этих регистрах сведений хранится история изменений. В самом документе и в его табличных частях значения периодических реквизитов не хранятся, поэтому в предыдущих версиях не было возможности их вводить.