как определить что документ создается копированием 1с
УФ: программное создание и копирование документов с использованием конструкций ДанныеФормыВЗначение, ЗначениеВДанныеФормы
Т.к. часто возникают вопросы по программному созданию/копированию/обработке объектов 1С:Предприятие в режиме «Управляемые формы», то решил скомпоновать в данной публикации примеры решения таких задач, с комментариями по каждому действию. Поначалу кажется все достаточно запутанно, но если по шагам все разложить и немного вникнуть, то всё должно встать на свои места.
При переходе с «обычных форм» на «управляемые формы» нужно понимать, что теперь имеем клиент-серверной вариант работы программы.
А это означает что то что мы могли ранее программно напрямую изменять объекты в «обычных формах» и видеть на экране результат наших действий, то в «управляемых формах» объект на сервере и объект на клиенте (видимый пользователю) разделены. Так же частично разделены функции и процедуры которые можно выполнять на сервере и на клиенте. Так например на сервере выполняются в основном сложные вычисления и функции связанные с изменениями в базе данных, а на клиенте выполняются не сложные расчеты и функции юзабилити.
ПРИМЕРЫ:
Ниже я приведу пример как создавать/копировать/изменять документы. Данный пример досконально разобран и позволит понять клиент-серверную архитектуру работы и распространить эти знания на другие объекты 1С (справочники, отчеты. ).
Задача была такая: есть справочник номенклатуры, в которые заведены блюда (общепит). Каждое блюдо имеет свою калькуляцию (состав продуктов). Калькуляции хранятся в периодическом регистре сведений. В форме элемента размещен динамический список с калькуляциями, принадлежащими открытому блюду (это могла быть любая другая таблица данных). Необходимо было добавить две кнопки «Создать калькуляцию» (новую) и «Скопировать калькуляцию» (активную из списка).
Для этого я создал соответствующие команды и разместил их на форме.
1. «Создать калькуляцию».
В данном варианте все просто: мы создаем на клиенте процедуру и все действия выполняем прямо на клиенте, т.к. ничего требующего вызова сервера не делаем. Создаем/получаем форму объекта, передаем в переменную ДанныеФормы Объект формы, выполняем элементарные действия с ДанныеФормы и открываем уже заполненную форму.
2. «Скопировать калькуляцию».
С данной операцией уже немного сложнее, часть процедур выполняется на клиенте, а часть на сервере.
Порядок действий таков: Мы на клиенте создаем форму нужного нам объекта и сразу открываем её (ОткрытьФорму. ). Далее как и ранее мы передаем в переменную ДанныеФормы Объект открытой формы.
Т.к. задача состоит в том чтобы скопировать уже существующий в базе документ (старую калькуляцию, которую выбрал пользователь в динамическом списке), то действия с данными ДБ можно производить только на сервере. Таким образом, мы получаем необходимые параметры из формы номенклатуры (в моем случае старую калькуляцию) и передаем через Структуру эти параметры в серверную процедуру без контекста вместе с переменной ДанныеФормы: СкопироватьОбъектДокументаНаСервере(ДанныеФормы, СтруктураДанных).
Уже на сервере мы с помощью функции ДанныеФормыВЗначение() преобразуем ДанныеФормы в привычный нам из «обычных форм» объект документа и работаем с ним с использованием серверных процедур. Копируем данные из другого документа, запускаем экспортные процедуры из модуля объекта, дозаполняем прочие реквизиты.
Функция ДанныеФормыВЗначение() требует указания соответствия (типа получаемого объекта): Тип(«ДокументОбъект.Калькуляция»).
Выше приведённые примеры решения задач, не являются единственными и в каждом индивидуальном случае могут быть оптимизированы или решены иным способом.
Думаю, начинающим познавать клиент-серверную архитектуру 1С пригодится данная статья )
Документ в 1С 8.3: настройка, проведение и формирование
Документы – это объекты конфигурации и метаданных в системе учета 1С:Предприятие 8.3. Они используются для хранения данных о событиях и операциях, которые происходили на предприятии. Это могут быть, например: документы на отгрузку, платежные поручения, выписки, приказы о приеме на работу и тому подобные. В данной статье будут рассматриваться формы этих документов, как они вводятся, формируются, а так же их параметры и изменения.
Структура документа в 1С
Продуманная система документооборота в 1С автоматические каждому новому документу присвоит порядковый номер, время и дату создания документа. Для того чтобы не позволить пользователям запутаться, в системе у каждого документа может быть только свой уникальный номер, без повторений.
Дата документа, то есть время – одна из ключевых характеристик в документах 1С. Благодаря этому можно легко узнать хронологический порядок создания документов и проследить всю цепочку по какому-то процессу.
В 1С:Бухгалтерия используются три вида документов: исходящие, входящие и внутренние. Для каждого документа прилагаются реквизиты, которые пользователь системы должен заполнить подробной информацией. Например, в документе типа «Заказ Поставщику» в обязательном порядке должно быть отражено наименования товара, склада, поставщика, а так же указан контрагент по операции и вид хозяйственной операции в системе.
Всем документам такого типа присущи эти характеристики, что позволяет соблюдать принципы ведения бухгалтерского учета. Каждый документ обязательно содержит свой набор информации. Она может быть однотипна по своей структуре, но различаться по количеству.
В большинстве случаев в документах 1С присутствует табличная часть, для удобства прописи однотипных данных. В качестве такие данных могут выступать, например: перечень отгружаемых или приобретаемых товаров, их количество и цены.
Дополнительные сведения документа
Для удобства работы в 1С пользователь может в любой документ добавлять дополнительные сведения. Для того чтобы сохранить порядок в документации, функциями добавления дополнительных сведений обладает только ограниченный круг пользователей с полными правами в системе. Как добавляются дополнительные сведения рассмотрим на примере документа «Заказ поставщику». Для этого сначала заполним настройки и далее заходим в пункт меню «Администрирование-Общие настройки».
В этом окне выберем вкладку «Дополнительные реквизиты и сведения» и поставим галочку в поле, которое так же называется. Затем переходим в меню «Администрирование-Формы-Дополнительные сведения».
В списке документов, открывшемся перед нами, мы можем задать дополнительные сведения. Например, для документа «Поступление (акты, накладные)» мы решили ввести дополнительные пункты. Находим нужный документ, выделяем его и кликаем на кнопку «Создать».
Откроется таблица, где создаются дополнительные сведения. Заполняем всё как необходимо. Укажем наименование дополнительного сведения и его тип значения. Тип значения для удобства может содержать различные варианты: договор, число, валюта, дата, договор и т. д.
Затем последуем на вкладку «Значения» и жмем на кнопку «Создать». Во всплывающем окне заполняем нужные пункты сведений.
Дополнительные сведения, которые создали, будут отображены в списке.
Жмем «Записать и закрыть». С этого момента в документах типа «Поступление (акты, накладные)» появляется возможность присоединить менеджера по закупкам, который занимается этим заказ.
Для проверки, что все отлично работает перейдем в «Покупки-Покупки-Поступление (акты, накладные)». Мы увидим список документов поступления. В верху списка находим значок «Дополнительные сведения», который появится после того, как создали и настроили дополнительные сведения.
Проведение документов в 1С
Важной особенностью документа является то, что возможна его запись и проведение. Если документ просто записывается, то он никак не влияет на учет других данных. Чтобы каждый документ влиял на общий учет предприятия и вносил изменения в общую картину, он имеет свойство проведения.
В каждом документе в верхней части есть кнопки типа «Провести и закрыть» или «Записать и закрыть». Например, документ «Заказ Поставщику» должен вносить изменения в состояние расчетов, текущих остатков на складе готовой продукции и заказов, так как у него есть свойство проведения. Для того, чтобы все работало как надо необходимо, чтобы у документа был статус «проведен».
Формы документов в 1С
Чтобы пользователю было удобно работать с системой, легко просматривать и изменять данные в документах, программа имеет несколько форм для одного и того же документа. 1С умеет генерировать все необходимые для документа формы. Разработчикам предоставляется возможность конфигурировать самостоятельно формы для документов, которые им необходимы. Увидеть все формы документа можно в конфигураторе системы. Для этого нужно зайти в него и в окне конфигурации выбрать интересующий объект. В раскрытой ветке документа будут отображены все формы документа.
Если необходимо просмотреть весь список документов или только определенный тип в 1С существует «Форма списка». В этих списках можно легко отобрать нужные документы, быстро изменить их или произвести поиск данных.
Макеты документов в 1С
Все документы в 1С сопровождаются макетами, которые будут содержать информацию внесенную в документ. Эти макеты используются для создания формы документа пригодной к печати
Макеты можно использовать не только для печати, но и чтобы просмотреть дополнительную информацию, которая имеет отношение к выбранному типу документа.
В них подробно отражена вся хозяйственная деятельность предприятия, связанная с налоговым учетом, покупками, продажами и другими операциями. Все документы в совокупности представляют собой единый учет компании.