Как связать документы в 1с
Наконец-то мы перешли на платформу 1С 8.3.20 и смогли отказаться от режима совместимости в 1С ЕРП. Это позволило нам окончательно закрыть вопрос о перемещении ВСЕХ добавленных объектов из самой конфигурации в её расширение. Одним из камней преткновения на пути к переезду, был вопрос работы типового отчета "связанные документы". Ну что же, давайте вместе его решим.
Как вы догадались по названию темы, стандартный отчет "Связанные документы" (Структура подчиненности) требует доработки, поскольку он не видит документы из расширения.
Это и логично, ведь формирование отчета построено на анализе типового объекта конфигурации "КритерииОтбора.СвязанныеДокументы".
Если попытаться решить задачу в лоб - пробросить в расширение типовой критерий отбора "СвязанныеДокументы", то в расширение за ним подтянутся почти все объекты конфигурации и их реквизиты, указанные в критерии отбора. А это почти все документы из типовой конфигурации. Такой подход превратит ваше компактное и изящное расширение конфигурации в нагромождение копий объектов из типовой конфигурации.
Сразу понятно, такое решение не по фэншую. Будем решать задачу по-другому.
Задача:
Есть документ в расширении конфигурации "ИТ_ЗаданиеНаТранспортировку" и в нем есть поле "ДокументОснование", ссылающееся на типовой документ "ЗаказПокупателя". Нужно отразить документ из расширения конфигурации в типовом отчете "Связанные документы".
Условие:
И в новом документе "ИТ_ЗаданиеНаТранспортировку", и в типовом документе "ЗаказПокупателя" должен использоваться типовой отчет "Связанные документы", вызываемый через "СтандартныеПодсистемы.ПодключаемыеКоманды".
Решение:
В расширение ранее уже проброшен документ "ЗаказПокупателя", так как нам нужно было указать тип ссылки в поле "ДокументОснование".
Мы не будем добавлять в расширение типовой критерий отбора "СвязанныеДокументы", вместо этого создаём новый критерий отбора в расширении с названием "ИТ_СвязанныеДокументы" (1) .
В разделе "Данные" заполняем тип данных нового критерия отбора теми объектами, которые должны добавляться к стандартному отчету "Связанные документы"
В разделе "Состав" проставляем флажок у реквизита "ДокументОснование" .
Не забываем пробросить в расширение конфигурации типовую роль "ПросмотрСвязанныеДокументы" и в нашем критерии отбора проставляем право на использование для этой роли.
С критерием отбора покончено.
Но стандартный отчет "Связанные документы" пока нас не замечает. Углубляемся в конфигурацию и понимаем, что все действия по выводу отчета производятся в общей форме "СвязанныеДокументы".
Для того, чтобы "научить" общую форму видеть наш критерий отбора из расширения конфигурации, мы пробрасываем в расширение одну процедуру и одну функцию в режиме "ИзменениеИКонтроль" из модуля формы "ОбщаяФорма.СвязанныеДокументы".
Вносим исправления в код.
Процедура "ВывестиРодительскиеОбъекты" большая, всю ее в статью добавлять не буду. В ней нужно изменить в двух местах условия, которые заставляют отчет пропускать документы, не входящие в критерии отбора:
Функция "ОбъектыПоКритериюОтбора" наоборот - маленькая. Дорабатываем ее, как указано ниже. Код сделан более читаемым в ущерб компактности.
И в принципе, отчет "Связанные документы" уже будет работать с вашими документами из расширения конфигурации.
Однако, нужно провести еще одну доработку.
Если вы используете подключаемые команды из стандартных подсистем (2) в формах документов/списков документов из расширения, вы заметите, что вожделенный отчет "Связанные документы" не появляется в ваших интерфейсах. Типовая кнопка "Структура подчиненности", которая формирует отчет "Связанные документы", просто принудительно скрывается от нас, если документ отсутствует в индексах связанных объектов.
Давайте просто поправим действия с кнопкой "СтруктураПодчиненности".
Находим типовой общий модуль "СтруктураПодчиненностиСлужебный" (3) и пробрасываем из него в расширение конфигурации функцию "ИндексТиповСвязанныхОбъектов".
Вносим в функцию изменения:
Теперь два оба критерия отбора, из основной конфигурации и из расширения, попадают в типовой отчет "Связанные документы".
(1) Префикс "ИТ_" в идентификаторах и префикс "(ИТ) " в синонимах является обязательным для новых объектов в соответствии с политикой внедрений 1С, принятой в нашей компании.
(2) Добавление подключаемых команд из стандартных подсистем на ваши формы документов - это отдельная большая тема, и в данной статье умышленно опущена.
(3) Мне не понятно, почему компания 1С не реализовала функционал добавления новых объектов в специальном модуле "СтруктураПодчиненностиПереопределяемый". Вместо добавления новых, они реализовали функционал по переименованию объектов.
Вариант 1. Создание документов на основании других документов.
На командной панели карточки каждого документа есть команда «Создать на основании». С ее помощью можно создавать другие внутренние, входящие и исходящие документы на основании уже существующих, автоматически устанавливая связь между ними.
При записи такого документа, созданного на основании внутреннего, программа предложит установить между ними связь.
Исходящий документ удобно создавать как ответ на входящий документ. Это можно сделать при помощи меню «Создать на основании» в карточке входящего документа. При этом поля нового исходящего документа автоматически заполнятся данными из входящего документа. Между документами будет автоматически установлена связь, которая отобразится на закладке «Связи» карточек этих документов.
Вариант 2. Установка связи вручную.
Для установки связи вручную следует нажать кнопку «Добавить» на закладке «Связи» в карточке документа. При этом откроется помощник создания связи, который позволит выбрать нужный документ, указать тип связи и вписать комментарий (по желанию).
После выбора документа следует нажать кнопку «Далее» либо дважды щелкнуть по выбранной строке. Помощник создания связи перейдет на следующий шаг – выбор типа связи.
В окне выбора типа связи расположены следующие поля:
■ Что связать – предмет, из которого создается новая связь;
■ С чем связать – предмет, который выбран для создания связи;
■ Тип связи – список возможных типов связи между выбранными предметами;
■ Комментарий – примечания к создаваемой связи.
Необходимо выбрать тип связи из списка возможных (по умолчанию выбрана первая строка), вписать комментарий (если это необходимо) и нажать «Создать связь».
Созданная связь будет показана на закладке «Связи» карточки документа.
На закладке «Связи» видны не только связанные документы, но и их файлы. То есть, не открывая карточку связанного документа, можно ознакомиться с его файлами, сохранить их на диск или напечатать.
Дата публикации 10.07.2020
Использован релиз 3.0.78
В "1С:Бухгалтерии 8" можно ввести цепочку связанных между собой документов. Для этого следует выделить в журнале документ, по которому требуется вывести цепочку связанных с ним документов и открыть список по кнопке .
Рассмотрим на примере документа "Счета покупателям".
- Раздел: Продажи – Счет на оплату.
- Выделите в списке документ, по которому нужна цепочка связанных документов (рис. 1).
- Откройте список связанных документов по кнопке или по кнопке "Еще" выберите команду "Связанные документы" (рис. 2).
Типовой механизм "Создания на основании" в 1С Документооборот обеспечивает лишь базовую потребность ввода документов на основании. Например типовой механизм не позволяет создать документ с видом документа, у которого нет ни одного введенного шаблона документа (т.е. прийдется создать пустой и выбрать вид документа). С другой же стороны, если общее количество шаблонов по видам внутренних документов превышает 50 штук - выбор нужного шаблона из типовой формы создания на основании "внутреннего документа" может занимать драгоценное время и быть не оптимальным.
Обработка "создания связанных документов" выполняет поиск по "настройкам связи" (версия №1 - с обязательными связями, версия №2 - и обязательные и необязательные виды связей) определенных для вида текущего документа (а также группой/папкой или родителем вида).
Процесс отбора "настроек связи" представлен на рисунке ниже.
Здесь для условий обработки удовлетворяют 3 настройки связей выделенные красным, но для каждого из трех видов документов найденных по настройкам связей может быть введено несколько шаблонов документов, например для вида Дополнительное соглашение были введены 3 шаблона документов
Кроме того у вида внутреннего документа "Договор поставки" также добавлено 2 шаблона: "договор поставки автошин" и "договор поставки цемента".
Обработка "создания связанных документов" также позволяет разрешить ввод документа по шаблону "Доп соглашение к договору поставки цемента" только на основании документа созданного по шаблону "Договор поставки цемента". Для этого необходимо добавить общий для всех видов внутренних документов дополнительный реквизит и назвать его "ВводитсяНаОсновании" (дополнительный реквизит в механизмах обработки ищется в ПВХ ДополнительныеРеквизитыИСведения по реквизиту "Заголовок", поэтому важно именно так и без пробелов).
Тип реквизита необходимо задать составным:
- Виды внутренних документов,
- Виды входящих документов,
- Виды исходящих документов,
- Шаблоны внутренных документов,
- Шаблоны входящих документов,
- Шаблоны исходящих документов.
Видимость у дополнительного реквизита можно убрать наложив например такое условие(он понадобится нам для заполнения только на форме определенного шаблона вида внутреннего документа):
Использование этого дополнительного реквизита в шаблонах вида документа "Дополнительное соглашение"
Кроме типового функционала заполнения документа на основании также реализовано:
- заполнение доп. реквизитов (свойств), определенных как общие для документа основания и для вида создаваемого документа
- предварительное заполнение связи (отобразится на вкладке связи после записи нового документа тем самым предотвращает появление диалога установки связи - при открытии формы на вкладке связей записей не будет, но после записи документа она появится)
Может быть полезно в следующих ситуациях:
- Необходимо ограничить доступные виды документов для создания на основании определенного вида документов (при большом количестве, сложной структуре и/или иерархии видов документов в типовом окне) (скрыть типовую команду создания на основании можно несколькими способами, например расширением или копированием настроек пользователей)
- Необходимо упростить ввод документа на основании - если будет определена всего одна настройка связи (для данного вида документа) сразу будет создан документ указанный в настройке связи документ
- Необходимо для определенных шаблонов одного вида документа разрешить ввод на основании только определенных шаблонов другого вида документа.
Обработка была протестирована на версиях 1С Документооборот КОРП 2.1.7, 2.1.11, 2.1.12.
Критерии отбора 1С – это объект метаданных, позволяющий осуществить отбор информации в базе 1С по заданным условиям. Это, своего рода, предопределенные правила, по которым в пользовательском режиме в списках осуществляется отбор информации по какому-либо значению. Например, установив отбор по контрагенту, можно найти любые документы (или справочники), в которых фигурирует указанный контрагент.
Отбор в журнале по полю «Контрагент»:
Рис.1 Отбор в журнале по полю «Контрагент»
Этот прием используется и при формировании структуры подчиненности, которую можно увидеть, воспользовавшись кнопкой на панели инструментов «Перейти к иерархическому списку связанных документов».
Рис.2 Иерархический список связанных документов
Разберем, что представляют собой связанные критерии отбора 1С на примере 1С:Бухгалтерия предприятия версии 3.0.
Откроем программу в режиме «Конфигуратор» и, сделав это, найдем в дереве метаданных нужный раздел критериев.
Рис.3 Нужный раздел критериев
Настройки
В «Данных» задается «Тип» – это тип значения для отбора, по которому и будет осуществляться поиск. К примеру, «ДокументыПоКонтрагенту» имеет тип СправочникСсылка.Контрагенты, а «ДокументыСотрудников», имеют тип СправочникСсылка.ФизическиеЛица.
Рис.4 Настройки
Рис.5 Продолжение настроек
При этом можно задать любой тип из стандартных или определить объект из дерева конфигурации, указав любую ссылку.
Рис.6 Выбор типа
Мы указываем тот тип, по которому будет производиться отбор. Преимущество критерия отбора заключается в том, что он может использовать также реквизиты табличных частей. Так, например, мы можем выбрать все документы с определенной номенклатурой в табличной части.
На закладке «Состав» отображаются те элементы, в которых содержатся данные указанного типа. В этом окне необходимо установить галочки для тех элементов, по которым будет осуществляться отбор. Только после определения этого списка, критерий отбора будет выполнять свою функцию.
Рис.7 Закладка «Состав»
Критериев отбора можно создавать множество, но для работы с ними нужно создавать формы, которые можно размещать и на панели инструментов, и в пользовательском меню. Критерии будут доступны по кнопке «Еще» во всех отмеченных объектах.
Рис.8 Критериев отбора можно создавать множество
Пример создания критерия отбора
Создадим «ДокументыПоНоменклатуре», нажав правой кнопкой мышки и выбрав команду «Добавить».
Рис.9 Создадим «ДокументыПоНоменклатуре»
На «Данных» укажем для него тип «СправочникСсылка.Номенклатура».
Рис.10 Тип «СправочникСсылка.Номенклатура»
На закладке «Состав» пересмотрим все документы и в нужных нам установим галочку «Номенклатура», т.е. это тот элемент, по которому у нас определен отбор. Например, если нам достаточно формировать отбор только по счетам, то мы можем указать только этот вид документа.
Рис.11 Проставление галочки «Номенклатура»
Чтобы в режиме «1С:Предприятие» наше новшество работало, его необходимо включить в интерфейс пользователя, где мы хотим его видеть. Найдем в дереве метаданных справочник «Номенклатура», откроем ее форму элемента. На закладке «Командный интерфейс», прокрутив вниз, в разделе «Перейти» мы видим строку «Документы по номенклатуре (Объект.Ссылка)». Установим там галочку.
Рис.12 «Документы по номенклатуре (Объект.Ссылка)»
Далее выполняем команду «Обновить конфигурацию базу данных» (пункт меню «Конфигурация») и проверяем наш результат. Откроем любой элемент справочника «Номенклатура» и, нажав на гиперссылку «Еще», мы увидим пункт «Документы по номенклатуре».
Рис.13 Пункт «Документы по номенклатуре»
Нажимаем на эту ссылку и получаем список документов, где была задействована эта позиция.
Рис.14 Список документов, где была задействована эта позиция
Таким образом, программа формирует запрос поиска, используя данные тех таблиц, которые указаны в критерии отбора, имеющие реквизит заданного типа, по которому осуществляется отбор (в нашем примере элемент справочника «Номенклатура»). Критерий отбора позволяет динамически произвести отбор, отображая все найденные данные, указанные в критерии отбора, что нельзя получить ни в других отборах, ни используя список, так как поиск осуществляется из разных таблиц. Чтобы выборка была эффективной, не надо задавать слишком много критериев отбора, иначе не будет смысла в таком отборе.
Связанные документы
По такому же принципу в программах 1С реализована возможность создавать документы на основании других. Между ними образуется связь, и пользователь может увидеть связанные документы, нажав на кнопку на панели инструментов «Перейти к иерархическому списку связанных документов».
Рис.15 Перейти к иерархическому списку связанных документов
Рис.16 Иерархический список связанных документов
Для того чтобы эту связь увидел пользователь, в настройках критерия отбора «СвязанныеДокументы» (на закладке «Данные») определяется список возможных связанных документов, а в «Составе» – тех, которые могут служить основанием для других документов.
Рис.17 Закладка «Данные»
Рис.18 Закладка «Состав»
Механизм критериев дает связанные элементы и отображает их список для пользователя. При этом, описав критерии выборки, автоматом создаются все нужные запросы и индексы. Это облегчает возможность создания любого критерия отбора для реализации автоматической выборки по заданным параметрам, но если у вас остались вопросы, обращайтесь к нашим специалистам по обслуживанию программ 1С, написав нам на сайте или позвонив по телефону. Мы с радостью вам поможем!
Читайте также: