Как создать ткп в 1с

Обновлено: 05.07.2024

В 1С Документооборот (рассматривается версия 2.1.25, но вопрос актуален и для других относительно свежих версий конфигурации) есть несколько возможностей построить процессы согласования (исполнения подписания и т.д.) для документов:

1. Использование простых процессов, вручную запускаемых пользователем из документа в нужном ему порядке.

2. Использование комплексных процессов - процессы, каждый этап которого может состоять из "простых" процессов.

Есть возможность составлять комплексные процессы в виде схемы и в виде таблицы.

Первый вариант, а также вариант с использованием комплексного процесса в виде таблицы здесь рассматривать не буду, так как они годятся в основном для несложных вариантов маршрутов. Максимальный функционал доступен при использовании схем комплексных процессов.

В процессе работы выявили для себя несколько минусов использования схем комплексных процессов:

1. Неудобный редактор:

- при копировании блоков данные внутри них очищаются (результат копирования на скриншоте)


- редактор может подвисать при перемещении или копирования большого количества блоков,

- соединяющие линии иногда ведут себя непредсказуемо


(линии на скриншоте выше не поддаются выравниванию)

- нельзя добавить несколько блоков завершения, из за этого линий на схеме может стать очень много и их нужно долго и утомительно "тянуть" до блока завершения.

2. Не работает автоматическая адресация по объектам адресации (из ролей исполнителей) , нужно помимо указания объекта адресации в роли, указывать еще дополнительно условие в блоке, где выбрана эта роль.

К примеру добавим роль с объектом адресации организация:


И внесем в нее двух исполнителей по организациям:


Для того чтобы исполнителем по документу был участник по определенной организации, блок в маршруте придется заполнить таким образом:

Создать условия маршрутизации по организациям


Для второй организации также потребуется условие. После этого нужно будет указать их в самом блоке:


А теперь предположим, что у нас таким организаций 10. Удобства добавляет вышеупомянутый пункт, что такой блок на схеме скопировать не получится, каждый раз придется заполнять вручную, за что отдельная "благодарность" разработчикам.

3. При использовании больших схем пользователю сложно разобраться по какому маршруту пойдет его документ.

4. Для замены исполнителя в маршруте приходится долго выискивать нужные строки внутри блоков , открывая каждый.

В итоге после запуска согласования документов через Документооборот на тех поддержку свалилось множество заявок от пользователей с просьбой помочь понять кто будет согласовывать их документ. Было принято решение оптимизировать этот механизм.

Было разработано следующее решение:

1. В шаблон комплексного процесса добавлена табличная часть Порядок участников со следующими полями:

- Этап (добавленный справочник, см. пункт 2)

Условие маршрутизации в данном случае дает максимальную гибкость отборов, но с другой стороны приходится вносить множество условий. Если ваши процессы проще, можно добавить в колонки другие отборы, например по организации или виду документа, принцип работы в данном случае не меняется.

Пример таблицы со множеством отборов:


2. При записи шаблона комплексного процесса для каждого блока, в котором выполняется действие (например согласование, исполнение и т.д.) добавляется элемент справочника Этапы процессов.



3. Был доработан механизм создания каждого этапа процесса.

4. Создан служебный элемент справочника Пользователи для выбора в схемах процессов в качестве исполнителя ("Робот ДО").

Принцип работы:

Создается шаблон процесса, в нем добавляются необходимые блоки - согласования, утверждения, обработки и т.д. После этого шаблон записывается. Для каждого блока создаются элементы справочника Этапы процессов, названия которого совпадают с названиями блоков. Во всех блоках всегда указываем исполнителем пользователя Робот ДО. Функционирует возможность в блоке указать порядок выполнения (по очереди, всем сразу).


Теперь в табличной части Порядок участников мы выбираем исполнителей (элементы справочника Полные роли или справочника Пользователи), а также условия, при которых исполнитель участвует в данном этапе.


Для обработки условий используется типовой справочник Условия маршрутизации, которые позволяет задавать практически любые условия по предмету согласования.

Для проверки выполняется ли условие используется типовая функция (общий модуль РаботаСУсловиямиМаршрутизации.ПроверитьПрименимостьУсловияМаршрутизацииКОбъекту).

После того как мы внесли всех участников процесса, задали им условия, можно использовать процесс для запуска согласования документов.

В шаблоне комплексного процесса можно указать назначения - виды документов, для которых возможен запуск этого процесса. По этому значению можно еще до запуска процесса определить по документу (если для вида этого документа задан всего один шаблон процесса), какие участники будут согласовывать этот документ - для этого нужно пройтись по таблице Порядок участников и вывести результат для пользователя, например, в таблицу на отдельной вкладке или выводить при помощи кнопки Показать участников.

Второй вариант вывести на форму создания нового комплексного процесса таблицу, в которую выводить Порядок участников отобрав те, которые проходят по условиям документа:


У нас используются обе эти возможности. Также добавлен вывод в отдельную колонку в документе текущих исполнителей роли, если в Порядок участников процесса внесена роль (см. скриншот выше).

В результате мы имеем следующие возможности:

  • Пользователь до запуска процесса может узнать его участников в удобном виде
  • Схемы процессов значительно упрощаются
  • Участников процессе легче администрировать
  • Весь процесс заполнения шаблона процесса можно переложить на менее квалифицированных пользователей (таблицу заполнять проще чем схему)

Интересно мнение сообщества на подобную схему работы, как и предложения по улучшению. Функционал используется в рабочей базе несколько месяцев, на матрицах процессов с сотнями строк исполнителей и условий. При наличии интереса могу описать полностью какие изменения в коде и куда внести, с какими сложностями столкнулись и вопросы производительности.

Анна Викулина

Многие компании, приобретая программное обеспечение фирмы 1С, не обращают внимания на такую замечательную возможность, как настройка ЭДО. А ведь этот функционал позволит сотрудникам предприятия обмениваться различными данными не только между собой, но и с контрагентами.

Документы, оформленные через ЭДО, имеют точно такую же юридическую силу, вне зависимости – дублируются ли они на бумажных носителях или нет. Это применимо не только к гражданским документам, но и к налоговой отчетности.

Преимущества ЭДО

Использования электронного документооборота, а в случае продуктов 1С такой документооборот осуществляется через сервис 1С-ЭДО, наряду с юридической силой, дает возможность:

  • Во много раз ускорить процесс обмена документами с контрагентами;
  • Минимизировать ошибки, расхождения и опечатки, исключив человеческий фактор;
  • Исключить штрафы и пени за несвоевременную подачу отчетности в контролирующие органы;
  • В десятки раз сократить затраты на распечатку и отправку бумажных документов;
  • Создать архив в цифровом формате с простым поиском, защитой информации и организацией доступа;
  • Работать с документами непосредственно из 1С;
  • Построить полностью контролируемую и прозрачную систему документооборота.

Электронный документооборот внедрен в учетную систему 1С в таких распространенных конфигурациях*, как:

  • 1С:Бухгалтерия 8
  • 1C:Управление нашей фирмой 8
  • 1C:Управление холдингом 8
  • 1С:Управление торговлей 8
  • 1С:Комплексная автоматизация 8
  • 1С:Бухгалтерия государственного учреждения 8
  • 1С:Управление производственным предприятием 8
  • 1C:ERP Управление предприятием 2
  • 1С:Розница 8
  • 1С:Клиент ЭДО 8

*редакцию конфигурации уточните у наших специалистов.

Самой популярной конфигурацией 1С на постсоветском пространстве является 1С:Бухгалтерия предприятия. Поэтому именно на ее примере мы дадим пошаговую инструкцию для настройки ЭДО. Однако отметим, что настройка ЭДО в ЕРП, 1С:УТ, КА, УНФ и 1С:Розница будет выполнятся по такому же алгоритму.

Подготовка к настройке ЭДО в 1С Бухгалтерия

Перед тем как начинать настройку 1С, требуется произвести определенные манипуляции, без которых настройка ЭДО не имеет смысла:

  • Обновить конфигурацию до последней доступной версии 1С;
  • Официально оформить договор с оператором связи на предмет обмена электронными данными (зачастую пользователи выбирают ту же компанию, через которую отправляют отчетность в налоговую и другие учреждения);
  • Подготовить логин и пароль интернет-поддержки компании 1С, обслуживающей предприятие;
  • Произвести установку крипто-про, чья настройка не вызовет проблем, или подготовить электронно-цифровую подпись на флешке.

Кроме того, если вы планируете пересылать документы внешним контрагентам, настройка ЭДО требует, чтобы были заполнены следующие поля:

  1. Наименование;
  2. ИНН;
  3. КПП;
  4. Адрес, согласно системе классификатора;
  5. Телефон;
  6. Код органа налоговой.

Существует автоматическая подгрузка данных по ИНН из базы данных ИФНС. Автоматическая настройка потребует занести ИНН и нажать «Заполнить по ИНН».

Процесс настройки ЭДО в 1С 8 версии

Открыв меню «Администрирование», нажимаем «Обмен электронными документами» и ставим отметки:

  • Электронные подписи;
  • Обмен электронными документами с контрагентами.

Кнопка открытия формы «Настройки электронной подписи и шифрования» активизируется. Переходим внутрь и нажимаем комбинацию «Добавить»->«Из установленных на ПК», чтобы выбрать настроенный сертификат. Выбираем сертификат для подписи из перечня, обнаруженного системой 1С.

Если на компьютере установлено ПО для шифрования(Crypto-Pro), то необходимо перейти на вкладку «Программы». Удостоверьтесь, что программа 1С нашла нужное ПО на ПК, а также что отсутствуют ошибки.

Если необходимого крипто-провайдера не хватает в списке, нажмите «Добавить» и заполните обязательные поля. После выбора нужного нам сертификата или ПО, нажмите функциональную кнопку «Закрыть».

Подключение к сервису из 1С

После этого для настройки ЭДО в системе 1С нужно подключиться к сервису ЭДО. Выберите команду «Подключиться к сервису 1С ЭДО» в том же разделе. Откроется удобный помощник, который потребует указать информацию:

  • Организация;
  • Сертификат;
  • Юридический адрес;
  • Код налогового органа.

Потребуется послать запрос на получение идентификатора участника документооборота, подписав его электронной подписью. После того, как вы увидите уведомление о регистрации в системе ЭДО, нажмите «Готово». ЭДО поддерживает функцию защиты электронной подписи специальным паролем. На этом настройка данного сервиса закончена.

Процесс подключения к сервису 1С Такском и его настройка ничем не отличаются от вышеописанного. Для организации ЭДО в 1С между компаниями также необходимо выслать приглашения.


Связь с другими компаниями через ЭДО

Для передачи контрагентам данных через 1С необходимо не только произвести настройку ЭДО у себя, но и выслать соглашение. Для этого в разделе «Администрирование» откройте «Обмен электронными документами» и нажмите на «Настройка ЭДО». Откроется форма, в который вы сможете ознакомиться с существующими соглашениями и узнать статус каждого из них. Чтобы добавить и осуществить настройку ЭДО для обмена данными из 1С, нажмите кнопку «Создать».

В данном окошке необходимо занести нужного контрагента и заполнить договор. Чуть ниже присутствует настройка того, какие документы из полного списка объектов вы будете передавать через ЭДО с заданным контрагентом. Чтобы исключить документ из ЭДО, уберите отметку на конкретной строке.

Когда контрагент примет приглашение, статус соглашения поменяется на «Присоединен». На этом настройка ЭДО в программе 1С для контрагента завершена. Также и контрагенты могут присылать вам приглашения для обмена данными.

Настройка роуминга

Если ваш контрагент подключен к оператору, с которым не предусмотрена автоматическая настройка роуминга, например – к Контуру.Диадок, то настроить роуминг потребуется вручную. Это трудоемкий и небыстрый процесс, который может занимать от 5 до 30 дней. Статус настройки проверяется тоже самостоятельно. Такой процесс настройки роуминга между рядом наиболее распространенных операторов крайне неудобен и серьезно усложняет ЭДО с контрагентами, особенно если контрагентов у вас много, и они часто меняются.

Специалисты компании WiseAdvice предлагают простое и удобное решение проблемы настройки роуминга – использование технологии WA:ЭДО. Технология позволяет работать с различными операторами без роуминга в едином интерфейсе. Благодаря глубокой интеграции с 1С работать с документами можно прямо из вашей программы 1С. Дополнительной интеграции не требуется. Предусмотрено подключение к уже готовому сервису или реализация индивидуального проекта на вашей территории. Технология предоставляет другие дополнительные возможности. Например, настройка маршрутов согласования и автоподписи документов, отправка исходящих через оператора, предлагающего самые дешевые тарифы и т.д.

Принимаем приглашение к ЭДО

Чтобы увидеть приглашения для ЭДО, которые вам прислали, необходимо зайти в раздел «Настройка ЭДО». В форме будет список соглашений.

Каждое соглашение со статусом подключения «Требуется согласие» необходимо принять. Для этого зайдите в соглашение двойным щелчком по строчке и нажмите на кнопку «Принять приглашение».

Если вы подтвердите свое согласие на обмен с данным контрагентом, то статус соглашения измениться на «Присоединен».

На этом настройка приглашения закончена, и вы можете обмениваться документами с контрагентами, с которыми заключены соглашения. Для этого в каждом указанном в соглашении документе появиться кнопка «ЭДО», содержащая основные функции. Возможности 1С позволяют задать в настройке автоматический обмен документами по определенному расписанию. При этом получение данных и их отправление настраиваются отдельно.

Рис.12 Автоматический обмен документами по определенному расписанию

Рис.12 Автоматический обмен документами по определенному расписанию

Чтобы ознакомиться с историей движения данных, вы можете открыть форму «Архив ЭДО» в разделе «Администрирование». Кроме непосредственно информации о передаче данных, в 1С доступны разнообразные отчеты, отражающие весь процесс электронного документооборота в необходимых разрезах.

Если у вас остались вопросы по настройке функционала ЭДО в «1С:Бухгалтерия» или других программах 1С (1С:ERP, 1С:КА, 1С:УНФ, 1С:УТ, 1С:Розница), обратитесь к нашим специалистам и получите консультации по программе 1С 8.3.

Перейдем во вкладку "Реквизиты". Для того, чтобы не запутаться при написании операции, а также, чтобы закрепить у себя в голове принципы работы этой вкладки - вам потребуется понять следующее:


1) Все реквизиты с данной вкладки соответствуют реквизитам в самом документе, при выборе данной операции (вкладка в любом документе называется "Бухгалтерская операция"

2) Если вы не видите сейчас часть реквизитов на вкладке бухгалтерская операция - не значит, что их нет. У нас существует понятие видимости реквизитов.

3) По сути, если вы сталкивались с понятием "Форма" в конфигураторе и так или иначе переделывали ее - структура данного раздела покажется вам очень знакомой.

4) Хоть эта вкладка и называется реквизиты, в дальнейшем, мы будем обращаться к ней как "Дополнительные реквизиты" (при описании структуры самой проводки). Пока этот факт вы можете не запоминать, но к этому пункту мы еще вернемся.


Структура страницы реквизитов достаточно проста. Для начала разберем кнопки:

1) Кнопка создать - содает реквизит

2) Кнопка создать группу - мы (пользователи) привыкли к тому, что группа - это чаще всего папка для организации рабочего пространства с минимумом функционала, так вот, здесь это вообще не так. В данном контексте группа может группировать реквизиты (и группы) для красивого отображения их на вкладке типовая операция. Например можно не просто поставить все реквизиты в одну строчку (вперемешку), а сделать настройки удобные для пользователя, подписать нужные разделы, разбить данные по колонкам и пр.

3) Кнопка проверить реквизиты - определяет есть ли ошибки в использовании реквизитов в типовой операции (например поспешив мы могли ошибиться в букве реквизита, в связи с этим типовая операция будет давать ошибку) можно считать это минимальной проверкой от разработчиков (очень жаль, что единственной)

4) Кнопка предварительный просмотр - позволяет нам увидеть вкладку "Бухгалтерская операция" не переключаясь на документ. Данный функционал помогает, как раз, когда вы реализовываете красивый пользовательский интерфейс.

Кнопки копирования-удаления-перемещения рассматривать не будем. Считаю их функционал понятным.


Давайте рассмотрим нашу рабочую область:

Колонка 1 - мы видим признак отбора (можно увидеть у какого реквизита стоит фильтр на реквизиты для пользователя)

Колонка 2 - признак предопределенности. На скриншоте его нет (потому что мы создали операцию копированием.

Колонка 3 "Заголовок" - название, которое видит пользователь. Когда мы смотрим на все то, что расположено на этой странице, мы должны акцентировать наше с вами внимание сугубо на реквизитах. Группы рассмотрим тогда, когда будем наводить порядок. Когда я смотрю на реквизиты, чаще всего, я думаю о том, что все они должны быть видны на форме (1С не делает реквизитов невидимыми), но иногда приходится делать поправку на предыдущих обслуживающих ребят.

Колонка 4 "Обязательный" - для скопированых операций она не работает. В операциях с поддержкой - в данной колонке ставится галочка при наличии заполненного поля "Проверка ввода" внутри реквизита значением "Выводить ошибку" (рассмотрим чуть далее)

Колонка 5 "Имя для формулы" - в кратце, это путь к реквизиту (как мы будем к нему обращаться при написании операции.

Колонка 6 "Тип реквизита" - собственно тип реквизита и есть (то какие значения сможет принимать наш реквизит, или еще проще - на какой справочник он ссылается, будет ли это число, или галочка (Булево) или вообще просто строка в которой пользователь напишет специфическое наименование чего-либо)


Теперь перейдем уже к созданию реквизитов.

Сначала разберем шапку:

Документ - к какому документу принадлежит типовая операция и соответственно наш реквизит

Типовая операция - Наша типовая операция

Группа элементов - в какую группу элементов он входит

Заголовок - подпись реквизита для пользователя (соответственно для нас тоже)

Имя для формулы - см. описание колонки 5 выше. Сгенерируется автоматически при написании заголовка. Важное уточнение - должен быть уникальным для всей типовой операции!

Первая страничка "Основные свойства":

Тип реквизита - см. описание колонки 6 выше.

Вид элемента - чаще всего это поле ввода, т.е. строка в которой мы либо пишем либо выбираем значение. Для реквизитов типа "Булево" или в простонародье "Галочка" будет выбор, если выберем "Поле ввода", то программа даст нам строчку с выбором "Да" или "Нет", если выберем "Поле флажка", то будет галочка.

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

Положение заголовка - определяет положение заголовка относительно нашего реквизита. Может быть слева-справа-вверу-внизу или вообще отсутствовать если выбрать "Нет". Положение "Авто" обычно равнозначно положению "Лево"

Только чтение - реквизит, который запретит пользователю изменять значение (например в данном документе есть реквизит типа "Виды движений НФА", который тянется в отчетность (через страшно неоднозначное поле "Характеристика движения", гадать на кофейной гуще которого будем чуть позже). Так как его должны ставить только те, кто понимает, как это должно тянуться - в данной операции этот реквизит проставлен в позиции "Только для чтения". То бишь, если вы хотите показать его пользователю и так, чтобы пользователь не смог изменить его руками - ставьте галочку)

Видимость - будет ли виден наш реквизит. Если вы не видите какой-то реквизит на вкладке "Бухгалтерская операция" или во вкладке предварительного просмотра - проверяйте наличие галочки в нем.

Значение по умолчанию - здесь можно задать стандартное значение, которое будет принимать реквизит в случае, если вы выберете данную операцию в списке. Если вы уже использовали данную операцию для проведения, то при установке данного реквизита - все остальные операции не изменятся автоматом. Вам придется их перевыбрать руками, либо прибегнуть к свойствам автоматической простановки реквизитов. (пример: мы сделали операцию для бухгалтера, который заносит поступления. Она утверждает, что у нее каждый день множество поступлений по КФО 4. Мы с вами знаем, что КФО 4 проставляется не в дополнительных реквизитах, поэтому его не имеет смысл засовывать в реквизиты, а вот лицевой счет или его раздел - самое милое дело. Если у нее чаще проходит КФО 4, то мы поставим раздел лицевого счета соответствующий ее разделу с КФО 4 в реквизит по умоланию. Как результат - каждый раз когда бухгалтер будет заносить документ - она не будет лишний раз выбирать этот раздел, только в том случае (как она утверждает крайне редком), когда что то приходит по другому КФО)

Продолжение прозаического отступления бухгалтерских флешбеков автора

(Бывали и другие случаи, когда бухгалтера ставили белиберду на отвали в реквизитах, которые не понимали, также значение по умолчанию помогло, в конце отчетного периода закрывались спокойнее и с меньшим количеством переделок, так как реквизиты всегда подставлялись автоматом, неквалифицированные бухгалтера не жахали туда все подряд. Для тех, кто считает, что людей на местах не плохо-бы сначала обучить - политика обучения не входила в планы главбуха в данной ситуации. Как результат - контракт был съеден чрезвычайно быстро. Если хотите поделиться опытом внедрения - прошу в комментарии)


Отбор элементов - если заполнить данный раздел, то вы установите фильтр реквизитов, которые сможет выбрать пользователь. Как пользоваться отборами, надеюсь, все знают. Для тех кто не очень - используйте реквизит "Ссылка" с видом сравнения "В списке" и подбирайте нужные вам позиции справочника. Для более изысканных решений, мы можем с вами обсудить эту тему позже.

Связи параметров выбора - данный реквизит может установить отбор в соответствии с реквизитом документа или другим дополнительным реквизитом. (например вы могли видеть, когда вы выбираете контрагента и при выборе договора - фильтруются все договора конкретно по данному контрагенту. Это как раз именно это поле.)

Связь по типу - данный реквизит лучше всего подходит для создания красивой универсальной структуры реквизитов для заполнения определенных счетов. Пытался описать функционал, не смог. В кратце, скорее всего вы видели типовые операции, где вы вводите счет и все субконто автоматически появляются снизу и всегда разных типов (но соответствующих субконто счета из плана счетов) вот этот реквизит как раз для этого.

Реквизиты форматирования. Работают везде одинаково:

Авто максимальная ширина - если снять эту галочку, то можно будет задать значение максимальной ширины

Растягивать по горизонтали - реквизит пытается заполнить все пространство отведенное ему. Значение "Авто" эквивалентно "Да"

Растягивать по вертикали - реквизит аналогичен предыдущему

Высота заголовка - высота заголовка в строчках

Реквизиты подсказки рассматривать не будем. Итак уже очень много всего. Как наводить красоту поговорим отдельно.

Вторая страничка "Функциональные опции":

Здесь можно установить видимость реквизита в зависимости от включенных настроек в конфигурации (не использовал, но если у вас есть интересные решения, связанные с этим разделом - прошу вас описать их в комментариях)


Теперь, в рамках реализации задачи, которую мы поставили в первой главе, я создам свой реквизит.

Как мы и говорили до этого, имя для формулы заполнилось автоматически.

Заголовок был выбран именно таким, так как лицевой счет будет выбираться только для КФО 4 и никакой другой лицевой счет туда не должен вставать (исключение, где в рамках одного лицевого счета ведутся 2 раздела с разными КФО).

Тип реквизита поставлен "Лицевые счета", почему не раздел лицевого счета, а именно лицевой счет - расскажу, как доберемся до написания типовой операции.

Проверку ввода не проверяю потому, что бывают ситуации, когда учреждение не принимает денежные обязательства, а зависимость от Булево 1С пока не умеет.

Только чтение не поставил потому, что не смотря на то, что лицевой счет может быть только таким, у учреждения может быть еще несколько лицевых счетов, поэтому не рискую.

Значение по умолчанию - заполнится тем лицевым, который у них отвечает за КФО 4

Связи параметров выбора - проставились автоматически. В данном случае это значение говорит, что если пользователь решит выбрать другой лицевой счет, их список ограничится лицевыми счетами организации выбранной в документе.
Ну и подсказка ввода - написал для примера. Если по каким то причинам не заполнится - бухгалтер увидит эту подсказку прямо в поле серым цветом.


Смотрю в предварительный просмотр и что я вижу - мои реквизиты красиво подписанные, текст описания как и положено для реквизитов слева (а не как для Булево справа), но вот стоят они не в том разделе. Просто перенесу мышкой их в раздел "Денежное обязательство"


И снова вроде все более-менее, но что-то не так. Все верно, настал момент разбора групп. Скажу сразу, я не хотел бы расписывать здесь всё касаемо форматирования - за меня это сделали уже специалисты ИТС.


Пока мы видим, что все очень похоже на реквизиты при создании реквизита типовой операции.

Имя для формулы - зачем оно существует в данном контексте не понятно, мы его не будем использовать. Скорее всего это отсылка к тому, что структура построения операций скопирована со структуры формы в конфигураторе 1С (там каждому элементу присваивается уникальное наименование, чтобы можно было к нему обращаться)

Отображение - будет работать если включите следующую опцию. Имеет несколько значений слабый-средний-сильный, выберите под себя и свой стиль.

Группировка - самый важный для нас реквизит, потому что показывает направление группировки. Вертикальная - все наши группы и реквизиты будут идти сверху вниз в столбик. Горизонтальная - все наши группы и реквизиты будут идти слева направо в строчку.

Этих данных нам будет достаточно, чтобы осуществить то, что мы хотим.

Я люблю, когда у меня все реквизиты упорядочены по колонкам и красиво расположены. Поэтому я бы хотел:

1) Сделать 2 колонки, одну с галочкой принимать обязательства а вторую с лицевыми счетами

2) Убрать раздел л/с и сделать его невидимым (потом убрать насовсем, если будет мешаться)


Создаю 2 группы (колонки) с одинаковыми настройками (наименование такое потому, что больше колонок не планируется)


Проверяю реквизиты в группе "Денежное обязательство", то, что нужно, две вертикальные колонки будут у нас сгруппированы в ней горизонтально (слева направо в строчку), но каждая колонка расставит реквизиты (сверху вниз в столбик).


И в завершение скрываю реквизит "Раздел л/с", то бишь снимаю с него галку видимости.


С изучением данного раздела предлагаю закончить. Следующим разделом мы с вами уже двинемся во вкладку "Проводки". Вкладку Источники данных пока рассматривать не будем, в связи с тем, что она жестко прописана в коде программы и имеет для нас сугубо платонический смысл на данный момент (если мы залезем в код и порезвимся - думаю, и в нее влезем).

В этой статье мы научимся создавать внешнюю печатную форму для "1С: Бухгалтерия предприятия 3.0". Причем создавать с нуля, не используя так называемые шаблоны. Вы сами научитесь создавать шаблоны внешних печатных форм.

Все это делается довольно просто))

И так, создадим новую обработку.

Мы будем создавать внешний счет на оплату покупателю, поэтому обработку так и назовем: «СчетНаОплатуВнешний».


Сохраним ее на жесткий диск.

Зайдем в модуль обработки, и создадим экспортную функцию СведенияОВнешнейОбработке.

Внутри этой функции создадим структуру ПараметрыРегистрации, которая будет содержать определенный список полей. Каждое поле мы разберем в отдельности.

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

Значением данной связки КлючИЗначение идет одна из строк:

  • «ДополнительнаяОбработка»
  • «ДополнительныйОтчет»
  • «ЗаполнениеОбъекта»
  • «Отчет»
  • «ПечатнаяФорма»
  • «СозданиеСвязанныхОбъектов»

В нашем случае должна быть строка "ПечатнаяФорма".

Следующий элемент структуры должен иметь ключ с названием Назначение.

В качестве значения данного элемента должен выступать массив, где перечислены будут все документы или справочники, в которых будет выходить данная печатная форма.

Они должны иметь тип строка, и быть в следующем формате:

Документ."НазваниеДокумента"

Справочник."НазваниеСправочника"

У нас этот массив будет возвращать отдельная функция ПолучитьНазначениеОбработки.

Допишем созданный последним элемент структуры.

Создадим новый элемент структуры, ключ которого будет называться «Наименование», а в значении будет содержаться наименование обработки, которое будет отображаться в справочнике "Дополнительные внешние печатные формы".

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

Следующий элемент имеет название «Информация», который содержит краткую информацию по обработке.

Следующий элемент имеет название «БезопасныйРежим», его необходим устанавливать в значение истина или ложь, в зависимости от того необходимо устанавливать или отключать безопасный режим во время выполнения обработки. Мы установим значение Истина.

И в последнем параметре необходимо добавить команды, которые будут поставляться обработкой. Для этого нам необходимо создать и заполнить таблицу команд. Разработаем функцию, которая создает и возвращает таблицу с определенным набором полей. Делать это будем в функции ПолучитьТаблицуКоманд.

Создадим функцию и таблицу значений внутри нее.

Теперь создадим пять колонок этой таблицы.

И первая колонка – Представление (тип строка).

Эта колонка – представление команды в пользовательском интерфейсе, т.е. то, что пользователь увидит при нажатии меню"Печать" в документе или справочнике.

Вторая колонка – Идентификатор.

Это может быть любая текстовая строка, уникальная в пределах данной обработки.

Третья колонка – Использование.

Параметр данной колонки типа строка, должен принимать одно из четырех значений –

  • ОткрытиеФормы – Открывает форму обработки.
  • ВызовКлиентскогоМетода – будет вызвана клиентская процедура из модуля формы обработки.
  • ВызовСерверногоМетода - будет вызвана серверная процедура из модуля обработки.
  • СценарийВБезопасномРежиме – тоже будет вызвана серверная процедура из модуля обработки в безопасном режиме.

Конкретно мы будем использовать вызов серверного метода.

Следующая колонка – показывать оповещение. Принимает значение истина или ложь, в зависимости от того надо показывать оповещение или нет.

И последняя колонка – модификатор. Это дополнительный модификатор команды. В нашем случае будет иметь название ПечатьXML.

Теперь создадим процедуру, которая будет заполнять данную таблицу значений.

В данном коде все понятно.

В функции СведенияОВнешнейОбработке создадим команду и заполним ее.

Создаем таблицу значений:

Теперь заполним ее.

Еще раз пройдемся по параметрам.

  • Первый параметр, непосредственно таблица команд вновь созданная.
  • Второй параметр, как будет отображаться команда пользователю на форме (документа, справочника).
  • Третий – уникальный идентификатор команды, запомните его, он нам еще пригодится!
  • Четвертый параметр – использование, что вызовет Ваша команда.
  • Пятый параметр – показывать оповещение, мы не будем это делать.
  • Шестой параметр – модификатор, в нашем случае он всегда один ПечатьXML.

Теперь передадим вновь созданную таблицу команд в структуру ПараметрыРегистрации.

И пусть наша функция СведенияОВнешнейОбработке возвращает данную структуру.

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

Теперь в модуле объекта создадим процедуру Печать. Это процедура с четырьмя параметрами: МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода.

И вот начинается самое интересное, теперь вам необходимо войти в аналогичную процедуру в менеджере объекта счет на оплату покупателю, или в обработке, которая, по сути, является менеджером печати.

Как узнать, где находится нужная нам функция?

Откроем модуль менеджера документа Счет на оплату покупателю.


И найдем процедуру ДобавитьКомандыПечати, которая заполняет список команд .

В этой процедуре найдем код, где добавляется команда для нужной нам печатной формы (список команд добавляется в таблицу значений КомандыПечати). И обратим внимание на свойство МенеджерПечати. Если этому свойству присваивается какое-нибудь значение - это путь к объекту метаданных, как правило к обработке, то значит при выводе нужной печатной формы будет отработан код в процедуре Печать, которая находится в модуле менеджере этого объекта (в обработке). А если это свойство в принципе не фигурирует при заполнении команды печати, то значит будет отработан код в процедуре Печать, которая находится в модуле менеджера нашего основного объекта (в нашем случае это документ СчетНаОплатуПокупателю)

Посмотрим на процедуру ДобавитьКомандыПечати в модуле менеджера документа "Счет на оплату покупателя".


Поскольку мы делаем внешнюю печатную форму счета на оплату, то нас интересует первое добавление в таблицу значений (см. свойство Представление), и мы видим, что в этом случае заполнено свойство МенеджерПечати, где указан объект Обработка.ПечатьСчетаНаОплату. Это значит, что нам нужно найти процедуру Печать в модуле менеджера обработки ПечатьСчетаНаОплату.

А если бы мы решили сделать внешнюю печатную форму договора счета на оплату (второе добавление в таблицу значений КомандыПечати), то нам нужно было бы найти процедуру Печать в модуле менеджера документа СчетНаОплатуПокупателя.

Откроем модуль менеджера обработки ПечатьСчетаНаОплату.


И раскроем процедуру Печать.


Нас интересует второе условие (где фигурирует строка "СчетЗаказ", см. идентификатор нужной команды в процедуре ДобавитьКомандыПечати модуля менеджера документа), скопируем это условие в процедуру Печать нашей внешней обработки.

Внимание! Копировать напрямую процедуру Печать из модуля менеджера (без разницы обработка это, документ или справочник) не следует. Поскольку у них отличается количество параметров, в последствие это приводит к ошибкам при работе.

Так же из модуля менеджера обработки скопируем процедуру СформироватьПечатнуюФорму.

В этом коде есть строка, где заполняется таблица сведений счета на оплату.

Эта таблица получается при помощи функции модуля менеджера объекта (в нашем случае это документ СчетНаОплатуПокупателю). Найдем эту функцию в модуле менеджера документа СчетНаОплатуПокупателю.


И скопируем её в модель нашей внешней обработки.

А сам код процедуры СформироватьПечатнуюФорму в модуле внешней обработки исправим, убрав все не нужное от туда.

Если мы сейчас сделаем проверку модуля внешней обработки, то выйдет две ошибки. Первая, что не определена переменная ПараметрыПечати в процедуре Печать, и, что не найдена функция ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в функции ПолучитьТаблицуСведенийСчетаНаОплату.

Создадим переменную ПараметрыПечати в процедуре Печать. Это будет простая структура.

А потом найдем функцию ПолучитьТекстЗапросаДляФормированияТаблицыСведенийСчетаНаОплату в модуле менеджера документа СчетНаОплатуПокупателю и скопируем её в модуль внешней обработки.


Должен получится следующий состав процедур и функций модуля внешней обработки (для удобства я разделил их на две области).


Еще раз делаем проверку модуля. Ошибок не обнаружено.

Продолжаем, теперь нам необходимо, что бы брался наш макет, и печатался по нашей команде.

Нас интересует процедура СформироватьПечатнуюФорму, а в ней мы уделим внимание методу ПечатьСчетаНаОплату общего модуля ПечатьТорговыхДокументов.


Очевидно, она непосредственно формирует табличный документ. Перейдем в этот общий модуль, и скопируем функцию ПечатьСчетаНаОплату в модуль нашей внешней обработки.


Делаем проверку модуля внешней обработки. Ругается на несуществующие методы ВывестиЗаголовокПредупреждение и НомерСчетаНаОплату.


Переходим в общий модуль, от куда мы взяли функцию ПечатьСчетаНаОплату, находим процедуру ВывестиЗаголовокПредупреждение , и копируем ее в модуль внешней обработки.


А функция НомерСчетаНаОплату в общем модуле ПечатьТорговыхДокументов экспортная, поэтому мы просто исправим код в процедуре ПечатьСчетаНаОплату, где используется проблемная функция, сделав вызов этой функции из вышеупомянутого общего модуля.

Проверяем еще раз ошибки. Все нормально.

Не забудем в процедуре СформироватьПечатнуюФорму убрать вызов метода ПечатьСчетаНаОплату из общего модуля.

Теперь зайдем в скопированную функцию ПечатьСчетаНаОплату, и посмотрим, где в ней подтягивается макет.


Находим данный макет в общих макетах и копируем его в макеты нашей обработки.


Исправляем выделенный код, где подтягивается макет, следующий образом.

Теперь зайдем в наш скопированный макет, и сделаем какое-нибудь изменение, чтобы вы видели, что команда подтянула именно макет из внешней обработки.


Вернемся обратно в процедуру Печать нашей внешней обработки.

И теперь осталась одна небольшая хитрость, без которой ваш внешний отчет не будет работать. Необходимо текст "СчетЗаказ" (это идентификатор типовой печатной формы).


Заменить на название идентификатора команды ("СчетНаОплатуВнешний").

Все, сохраняем данную обработку. И запускаем "1С: Предприятие" из конфигуратора.

Идем в администрирование. В дополнительные отчеты и обработки.

Нажимаем на кнопку "Добавить из файла" и выбираем нашу созданную обработку.

Читайте также: