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