1с создать документ программно и открыть форму. Документ может находится в трех состояниях

Содержание
  1. Создание и настройка видов документов в 1С Документооборот
  2. Как оптимизировать работу с программой?
  3. Почему нас выбирают?
  4. Документы 1С – Общее описание
  5. Установка времени документа
  6. Возможность проведения
  7. Стандартные реквизиты документа
  8. Хранение документов в информационной базе
  9. Нумерация документов
  10. Проведение документов
  11. Права доступа на документы
  12. Табличная часть документа
  13. Заключение
  14. Функция ОткрытьФорму()
  15. Вариант синтаксиса 1: По имени
  16. Параметры
  17. Описание варианта 1
  18. Вариант синтаксиса 2: По форме
  19. Описание варианта 2
  20. Доступность
  21. Пример использования
  22. Объекты 1С «Документы»
  23. Состояния документа 1С:
  24. Структура документа в 1С
  25. Пример программного получения момента времени:
  26. Реквизиты и табличные части документа 1С
  27. Проведение документа 1С
  28. Конструктор движений документов 1С
  29. Конструктор движений позволяет:
  30. Формы документа 1С
  31. Форма документа 1С
  32. Программное открытие форм в управляемом приложении 1С
  33. 1. Как открыть форму объекта в управляемом приложении, если есть ссылка на него
  34. 2. Как открыть форму выбора и получить потом выбранное значение
  35. 3. Как открыть форму существующего объекта
  36. 4. Как открыть форму нового объекта
  37. 5. Как открыть форму нового объекта и заполнить ее на основании чего-либо
  38. 6. Как открыть форму и задать на ней отбор
  39. 7. Как открыть форму записи регистра сведений

Создание и настройка видов документов в 1С Документооборот

1с создать документ программно и открыть форму. Документ может находится в трех состояниях

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

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

Настройка видов документов доступна в разделе «Нормативно-справочная информация» по ссылке «Виды документов».

Виды документов разделены на три группы вкладками «Внутренние документы», «Входящие документы» и «Исходящие документы». Для удобства использования виды документов можно разделять на группы. Чтобы создать новый вид документа, нажимаем «Создать».

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

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

Рассмотрим подробнее каждый из доступных реквизитов:

  • «Использовать срок исполнения» — если этот вид документа подразумевает исполнение, (как, например, приказ) то могут понадобиться данные по срокам, которые можно будет увидеть в карточке документа, не открывая приложенный к документу файл.
  • «Использовать гриф утверждения» — при включенной опции, документам такого вида будет доступен статус «Утвержден». Проставляется статус в результате отправки «На утверждение» ответственному должностному лицу.
  • «Использовать подписание должностным лицом» — при включенной опции, документам будет доступен статус «Подписан», а также будет проставляться должностное лицо, подписавшее этот документ. Проставляется данный статус в результате отправки «На подписание» ответственному должностному лицу, либо вручную в документе.
  • «Вести учет по номенклатуре дел» — если в организации используется ведение учета документов по номенклатуре дел, то включаем данную опцию, заполняем номенклатуру дел, а в документах будет обязательна к указанию номенклатура дел.
  • «Вести учет по организациям» — в документах будет доступен выбор организации к которой относится документ.
  • «Вести учет по контрагентам» — в документах будет доступен выбор контрагента.
  • «Вести учет сторон» — включает выбор сторон: указание контрагента, его роли, выбор лица, подписавшего данный документ со стороны контрагента, а также проставление аналогичных данных со стороны нашей организации.
  • «Вести учет по адресатам» — в документах будет выбираться адресат.
  • «Учитывать срок действия» — в документе будет указываться срок действия. Актуально для договоров.
  • «Учитывать сумму документа» — включает проставление суммы документа.
  • «Вести учет товаров и услуг» — добавляет табличную часть товаров и услуг в документ.
  • «Вести учет по статьям ДДС» — включает проставление статей ДДС в документе.
  • «Учитывать недействующие документы» — если установлен, то документы данного вида могут быть отменены или расторгнуты. При установке в карточке документа появляется флаг «Не действует» и ссылка на документ, который делает его не действующим.
  • «Является договором» — включает сразу несколько опций, необходимых для учета договоров: «Вести учет по контрагентам», «Учитывать срок действия», «Учитывать сумму документа», «Учитывать недействующие документы» и сбрасывается признак «Является комплектом документов».
  • «Является комплектом документов» — признак означает, что документы с этим видом являются комплектами других документов и файлов. Установить его можно при условии что не установлен ни один из признаков: Является договором, Вести учет по номенклатуре дел, Учитывать срок действия, Учитывать недействующие документы.
  • «Обязателен файл скан-копии оригинала» — в списке файлов появляется столбец, в котором можно указать, что данный файл является скан-копией оригинала. Если данный флажок не будет проставлен ни одному из прикрепленных файлов, то при попытке регистрации система предупредит, что скан-копия не прикреплена к документу.
  • «Обязательно указание ответственного» — включение проверки на заполнение реквизита «Ответственный».
  • «Использовать этапы обработки документов» — для документов будет доступна таблица с указанием этапов обработки документа. При прохождении определенного этапа, пользователь проставляет отметку о выполнении этапа, заполняется дата выполнения. Эта опция удобна для отслеживания документов, находящихся на определенном этапе обработки.
  • «Автоматически вести состав участников рабочей группы» — в случае если пользователь отсутствует в рабочей группе документа, но ему отправили задачу на согласование документа (или исполнение и т.д.), то система автоматически добавит данного пользователя в рабочую группу документа.
  • «Заполнение рабочей группы является обязательным» — для документов соответствующего вида рабочая группа заполняется автоматически при записи вида документа.
  • «Подписывать резолюции электронной подписью» — включает использование электронной подписи при проставлении резолюции.

Для добавления дополнительных свойств перейдем по ссылке «Набор дополнительных свойств документов данного вида».

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

Для добавления нового дополнительного свойства нажимаем правой кнопкой мыши, выбираем «Добавить» — «Новый».

Задаем наименование реквизита, указываем «Тип значения» путем выбора из списка. Если «Тип значения» оставить «Дополнительное значение», то на вкладке «Значения» можно задать список доступных для выбора значений.

Настройки нумерации доступны на вкладке «Нумерация» раздела «Вид документа». Нумераторы для документов настраиваются отдельно, в форме настройки вида документа можно выбрать один из созданных вариантов нумерации.

На вкладке «Шаблон документа» можно задать значения реквизитов документа по умолчанию. На вкладке «Настройки» можно настроить доступность шаблона и установить некоторые запреты.

На вкладке «Реквизиты документа» доступны значения реквизитов по умолчанию. Можно задать правило присвоения наименования документа по введенным реквизитам, выбрать организацию, которая будет проставляться в данном виде документов по умолчанию.

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

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

После нажатия в поле «Настройка заполнения» откроется окно, в котором будет предложено выбрать реквизиты документа, а также в каком количестве мест их нужно вставить в шаблоне файла. Когда все необходимые реквизиты выбраны, нажимаем «Готово».

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

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

На вкладке «Согласующие» можно установить список согласующих, в «Категориях» можно проставить категории, к которым по умолчанию будет относиться данный документ. Следующая вкладка — рабочая группа.

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

Как оптимизировать работу с программой?

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

Для того, чтобы обновления происходили без проблем, а на все вопросы вы могли получать ответы, предлагаем обратиться за сопровождением 1С к профессионалам, в компанию «ПРОГРАММЫ 93».

Почему нас выбирают?

ООО «ПРОГРАММЫ 93» — это компания с большим штатом сотрудников, в который входят не только специалисты 1С, но и бухгалтера, юристы и множество других экспертов смежных областей. Вы больше не зависите от одного сотрудника и вам не нужно тратить деньги на приглашенных специалистов для решения каждой задачи.

Мы рады предложить вам:

  • внедрение и настройку 1С Документооборот;
  • доработку программы под ваши нужды;
  • поддержку продуктов 1С;
  • интеграцию программы с сайтом;
  • внедрение других продуктов 1С;
  • сопровождение бухгалтерского и налогового учета.

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

Источник: https://1c.programs93.ru/articles/sozdanie-vidov-dokumentov-v-1s-dokumentooborot-poshagovaja-instrukcija/

Документы 1С – Общее описание

1с создать документ программно и открыть форму. Документ может находится в трех состояниях

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

Жизнедеятельность любого предприятия не представляется возможным без регистрации различного рода событий, возникающих очень часто. Называются эти события – хозяйственные операции. Регистрацией хозяйственной операции в 1С служит документ.

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

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

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

В этом случае просто происходит фиксирование какой-то информации в виде электронного документа.

Итак у нас есть документ бумажный и документ электронный. Между ними необходимо произвести аналогию. При оформлении бумажного документа обязательным условием является наличие в нем номера и даты. Аналогично и электронный документ должен содержать номер и дату. По этим полям мы может найти нужный нам документ. Поэтому номер и дата являются ключевыми свойствами.

Рассмотрим ключевое свойство “Дата”. В версии 7.7 оно называлось “ДатаДок”, в версии же 8 оно стало называться просто “Дата”. Это очень важное свойство документа.

Почему это так? Рассмотрим ситуацию с торговой организацией, в которой осуществляется регистрация факта поступления товара и его продажи.

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

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

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

Очень часто такой идентификации документа на временной оси оказывается недостаточно.

Представим ситуацию, когда на склад поступает 100 единиц товара 1-го числа месяца. Далее 2-го числа этого же месяца в 23:59:59 происходит его продажа, в количестве 80 единиц. Документ проводится без проблем, потому как товара хватает. Допустим, что также 2-го числа в 23:59:59 этот же товар еще кто-то тоже продает в количестве 50 единиц. Этот документ также проведется без проблем, потому как на время 23:59:59 этот товар есть. Хотя фактически у нас, по итогу проведения второго документа образуется отрицательный остаток в 30 единиц товара.

Чтобы таких ситуаций не возникало к дате и времени прибавляется еще и позиция документа, а именно его ссылка. Эта идентификация документа по дате и времени + ссылка называется момент времени. И при проведении второго документа система выдаст сообщение о нехватке 30 единиц товара и не позволит провести документ.

Как же получить момент времени? А получается он методом “МоментВремени”, принадлежащий классу “ДокументОбъект”. При этом возвращается тип данных “МоментВремени”.

Этот тип данных необходимо передавать в запросы, получающие остаток товара, в качестве параметра.

Пример получения момента времени:

&НаКлиенте Процедура ПолучитьМоментВремени(Команда) ПолучитьМоментВремениНаСервере(Объект.Ссылка); КонецПроцедуры &НаСервере Процедура ПолучитьМоментВремениНаСервере(Ссылка) Если Ссылка.Пустая() Тогда Сообщить(“Документ не записан!”); Возврат; КонецЕсли; ДокументОбъект = Ссылка.ПолучитьОбъект(); МоментВремени = ДокументОбъект.МоментВремени(); Сообщить(МоментВремени); КонецПроцедуры // ПолучитьМоментВремениНаСервере()

Установка времени документа

Разберем, каким образом система устанавливается отметку времени для вновь вводимых документов. При создании документа, по умолчанию присваивается текущая системная дата с нулевым временем, а при записи устанавливается текущая отметка времени.

При оперативном проведении есть следующий нюанс. Если его дата равна текущей, время будет принимать значение текущего времени. Если бы документ проводился неоперативно, то только в момент его ввода присваивалась текущая отметка времени, а дальше она оставалась бы неизменной. Если же документ вводится не текущим числом, то первоначально присваивается нулевая отметка времени, а при записи присваивается самая последняя отметка за этот день. То есть система ищет последний введенный документ за этот день смотрит его время, увеличивает его на секунду и присваивает его нашему документу. Если создать документ на дату, в которой не вводился ни один документ данного вида (например поступление товаров), но были введены документы другого вида (например списание товаров), то система возьмет самую последнюю дату документа другого вида, прибавит к ней секунду и присвоит нашему документу. Если же создать документ с датой, в которой не вводился ни один документ, ни одного вида, то платформа присвоит ему время 12:00:00. И еще ситуация. Представим себе, что у нас в базе есть документ с отметкой времени 23:59:59 и если прибавить еще одну секунду это уже будут следующие сутки. Поэтому система оставляет такое же время, то есть 23:59:59. Описанная выше система установки времени документа является лишь значением устанавливаемым по умолчанию. Но есть возможность переопределить такое поведение. Откроем в конфигураторе форму документа и обратимся к ее свойствам. В свойствах мы увидим поле “АвтоВремя”. Если мы в этом свойстве ничего не меняем, то формирование времени документа происходит так как это было описано выше. Но можно указать время: текущее или в начало дня, всегда первым, всегда последним и не использовать.

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

Возможность проведения

Документ может иметь три состояния: создан, помечен на удаление и проведен. Проведенный документ может менять финансовое состояние предприятия, менять количество товаров на складе и т. д.

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

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

Стандартные реквизиты документа

Помимо тех реквизитов, которые разработчик добавляет в документ, есть еще стандартный набор реквизитов, внедренные в документ уже на уровне платформы. Это: ссылка, номер, дата, пометка удаления, проведен. Найти их можно на закладке “Данные”, кнопка “Стандартные реквизиты”.

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

Документ может находится в трех состояниях:

  • Не помечен на удаление и не проведен;
  • Не помечен на удаление и проведен;
  • Помечен на удаление и не проведен.

Как уже отмечалось ранее, разработчик может самостоятельно добавлять необходимые реквизиты, а также табличные части. Каждая табличная часть имеет один стандартный реквизит – “НомерСтроки”.

Хранение документов в информационной базе

В базе, каждый вид документов, хранятся в отдельной таблице. Эта таблица содержит в себе все реквизиты документа. Табличные части же хранятся в отдельных таблицах. Связь с таблицей документов производится по реквизиту “Ссылка”.

Нумерация документов

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

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

Префикс устанавливается в модуле объекта документа, в процедуре “ПриУстановкеНовогоНомера”.

Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс) // Вставить содержимое обработчика. КонецПроцедуры

Также на вкладке “Нумерация” мы можем задать периодичность документа.

Возможные значения:

  • Непериодический;
  • В пределах года;
  • В пределах квартала;
  • В пределах месяца;

  • В пределах дня.

Обычно выбирают значение “в пределах года”, это означает, что в новом году нумерация документов начнется сначала.

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

Его необходимо указывать в поле “Нумератор”.

Проведение документов

Немного о проведении документов. Для системы означает, что документ проведен если булевский флаг “Проведен” у документа установлен в “Истина”.

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

То есть он может формировать движения по регистрам, основываясь на которые формируются отчеты.

Когда происходит интерактивное или программное проведение срабатывается выполнение процедуры “ОбработкаПроведения()”, которая находится в модуле объекта документа.

Процедура ОбработкаПроведения(Отказ, РежимПроведения) // Вставить содержимое обработчика. КонецПроцедуры

Данная процедура имеет два параметра: отказ и режим. Если выставить параметру отказ значение “Истина”, то проведение не будет выполнено.

Параметр “Режим” устанавливает режим проведения документа – оперативное или неоперативное.

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

То, в какие регистры документ будет делать движения задается на вкладке “Движения”.

Пример процедуры обработки проведения

Процедура ОбработкаПроведения(Отказ, РежимПроведения) //__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения // будут утеряны!!! // регистр ТоварыНаСкладе Приход Движения.ТоварыНаСкладе.Записывать = Истина; Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.ТоварыНаСкладе.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Товар = ТекСтрокаТовары.Товар; Движение.Количество = ТекСтрокаТовары.Количество; КонецЦикла; //__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры

Права доступа на документы

В системе 1С существуют различные виды доступа. Это анализ интерактивных действий и анализ программных действий.

Что такое интерактивные действия? Это действия совершаемые непосредственно пользователем: нажатие кнопок, галок и т. д. Программные же действия совершаются каким-либо алгоритмом, о их совершении пользователь может и не догадываться.

Права доступа к документу настраиваются на закладке “Права”. Здесь мы видим несколько разделов, это раздел где отображаются роли, раздел непосредственно прав, и раздел “Ограничения доступа к данным” (его мы не будем рассматривать, он необходим при использовании так называемого механизма RLS).

Раздел “Роли” отображает все роли заведенные в информационной базе, для которых в разделе “Права” мы как раз и устанавливаем права доступа.

Возможные виды прав доступа:

  • чтение (программно), просмотр (интерактивно);
  • добавление (программно), интерактивное добавление (интерактивно);
  • изменение (программно), редактирование (интерактивно);
  • удаление (программно), интерактивное удаление (интерактивно);
  • проведение (программно), интерактивное проведение (интерактивно);
  • отмена проведения (программно), интерактивная отмена проведения (интерактивно);

Интерактивный вид доступа содержит еще такие права как: интерактивная пометка на удаление, интерактивное снятие пометки на удаление, интерактивное удаление помеченных, интерактивное проведение неоперативное, интерактивное изменение проведенных, ввод по строке.

Табличная часть документа

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

Заключение

Надеюсь данная статья дала вам некоторое понимание о том, что же такое документы 1С, какую они имеют структуру и как с ними работать в конфигураторе. Отмечу, что все вышеописанное дает лишь общее понятие о таком объекте как документ и не описывает все многочисленные тонкости работы с ним.

Вы еще не читали? Вам это будет интересно…

Источник: http://1c-programist.ru/stati/dokumenty-1s-obschee-opisanie.html

Функция ОткрытьФорму()

1с создать документ программно и открыть форму. Документ может находится в трех состояниях

Открывает произвольную форму

Функция ОткрытьФорму() имеет несколько вариантов синтаксиса:

Вариант синтаксиса 1: По имени

Функция ОткрытьФорму() имеет следующий синтаксис:

Форма ОткрытьФорму(ИмяФормы, [Параметры], [Владелец], [Уникальность], [Окно], [НавигационнаяСсылка], [ОповещениеОЗакрытии], [РежимОткрытияОкна])

А также альтернативный англоязычный синтаксис:

Form OpenForm(Name, [Params], [Owner], [Unique], [Window], [NavLink], [ClosingNotification], [OpeningMode])

Параметры

Описание параметров процедуры ОткрытьФорму():

Имя параметраТипОписание
ИмяФормыСтрока
Имя формы, образованное как полный путь к объекту Форма в дереве метаданных (например, «Справочник.Номенклатура.Форма.ФормаОбъекта», «ОбщаяФорма.ФормаПредупреждения») или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, «Справочник.Номенклатура.ФормаОбъекта»). Поддерживаются следующие формы по умолчанию:
  • ФормаОбъекта (ObjectForm) — форма объекта по умолчанию;
  • ФормаГруппы (FolderForm) — форма группы по умолчанию;
  • ФормаЗаписи (RecordForm) — форма записи регистра по умолчанию;
  • ФормаСписка (ListForm) — форма списка по умолчанию;
  • ФормаВыбора (ChoiceForm) — форма выбора по умолчанию;
  • ФормаВыбораГруппы (FolderChoiceForm) — форма выбора группы по умолчанию;
  • ФормаКонстант (ConstantsForm) — форма констант по умолчанию;
  • Форма (Form) — форма отчета и обработки по умолчанию;
  • ФормаНастроек (SettingsForm) — форма настроек отчета по умолчанию;
  • ФормаЗагрузки (LoadForm) — форма загрузки настроек;
  • ФормаСохранения (SaveForm) — форма сохранения настроек;
Параметры (необязательный)Структура
Параметры формы. Ключ структуры — имя параметра, а значение — значение параметра формы
Владелец (необязательный)ВладелецФормы
Форма или элемент управления формы.
Уникальность (необязательный)Произвольный
Ключ уникальности формы. В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма
Окно (необязательный)ОкноКлиентскогоПриложения
Окно приложения, в котором будет открыта форма. Окном может быть только основное окно приложения или вспомогательное окно формы.Применимо только для управляемой формы.
НавигационнаяСсылка (необязательный)Строка; Неопределено
Если содержит значение, отличное от Неопределено, то это значение присваивается свойству НавигационнаяСсылка формы, полученной в результате вызова данного метода, и свойство АвтоНавигационнаяСсылка этой формы устанавливается в Ложь. Значение по умолчанию: Неопределено.Применимо только для управляемой формы.
ОповещениеОЗакрытии (необязательный)ОписаниеОповещения
Содержит описание процедуры, расположенной в текущем или в общем модуле, которая будет вызвана при закрытии открываемой формы
РежимОткрытияОкна (необязательный)РежимОткрытияОкнаФормы
Указывает режим открытия окна управляемой формы. Используется только в управляемом приложении. Варианты значений:
  • БлокироватьВеcьИнтерфейс — Блокировать весь интерфейс. При этом блокируется работа всех остальных открытых окон приложения, включая главное окно
  • БлокироватьОкноВладельца — Блокировать только форму-владельца, переданного в параметре ВладелецФормы. Новое окно открывается поверх окна-владельца
  • Независимый — Независимое окно (обычный режим открытия формы). В интерфейсе «В отдельных окнах» открывается отдельное окно, а в интерфейсах «В закладках» или «Такси» форма открывается в рабочей области основного окна
Жирным шрифтом выделены обязательные параметры

Описание варианта 1

Функция ОткрытьФорму() открывает форму по имени. Перед открытием осуществляется поиск ранее открытой формы того же типа и совпадающими параметрами: значениям ключевых параметров формы, владельца формы, пользовательского ключа уникальности. Для форм ФормаОбъекта, ФормаЗаписи, ФормаНабораЗаписей, ФормаКонстант при поиске ранее открытых форм, владелец не учитывается.

Вариант синтаксиса 2: По форме

Функция ОткрытьФорму() имеет следующий синтаксис:

Форма ОткрытьФорму(Форма, [Окно])

А также альтернативный англоязычный синтаксис:

Form OpenForm(Form, [Window])

Описание варианта 2

Функция ОткрытьФорму() открывает форму, полученную ранее функциями ОткрытьФорму() или ПолучитьФорму()

Доступность

Тонкий клиент, веб-клиент, мобильный клиент, толстый клиент, мобильное приложение(клиент).

Пример использования

Пример кода с использованием процедуры ОткрытьФорму():

Источник: https://www.about1c.ru/v83/driven-forms/function-open-form

Объекты 1С «Документы»

1с создать документ программно и открыть форму. Документ может находится в трех состояниях

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

Каждый созданный документ в конфигурации создается для отражения своего типа операции (например, поступление товаров, списание товаров и т.д.).

Документы могут:

  1. проводиться;
  2. просто записываться.

Состояния документа 1С:

  • не помечен на удаление и не проведен;
  • не помечен на удаление и проведен;
  • помечен на удаление и не проведен.

Объект встроенного языка «Момент времени» содержит дату проведения документа и ссылку на него, что позволяет однозначно идентифицировать положение документа на временной оси. 

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

Структура документа в 1С

Каждый документ 1С содержит:

  1. номер;
  2. дату и время (позволяют установить строгую временную последовательность совершения операций);
  3. набор реквизитов (набор информации, которая является одинаковой для всех документов этого конкретного вида);
  4. табличные части (набор информации, которая одинакова по своей структуре, но различна по количеству, для разных документов этого конкретного вида);

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

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

Пример программного получения момента времени:

&НаКлиенте Процедура ПолучитьМоментВремени(Команда) ПолучитьМоментВремениНаСервере(Объект.Ссылка); КонецПроцедуры &НаСервере Процедура ПолучитьМоментВремениНаСервере(Ссылка) Если Ссылка.Пустая() Тогда Сообщить(“Документ не записан!”); Возврат; КонецЕсли; ДокументОбъект = Ссылка.ПолучитьОбъект(); МоментВремени = ДокументОбъект.

МоментВремени(); Сообщить(МоментВремени); КонецПроцедуры

Процедура ПолучитьМоментВремени(Команда) ПолучитьМоментВремениНаСервере(Объект.Ссылка); Процедура ПолучитьМоментВремениНаСервере(Ссылка) Если Ссылка.Пустая() Тогда Сообщить(“Документ не записан!”); ДокументОбъект = Ссылка.ПолучитьОбъект(); МоментВремени = ДокументОбъект.МоментВремени();

Возможные значения свойства «Периодичность»:

  • Непериодический;
  • В пределах года (как правило, означает, что в новом году нумерация документов начнется сначала);
  • В пределах квартала;
  • В пределах месяца;
  • В пределах дня.

Реквизиты и табличные части документа 1С

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

Например, для документа «Поступление товаров и услуг» это может быть информация о поставщике товаров (контрагенте), складе, на который приходуются товары и т.п.

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

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

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

Для хранения подобных данных служат табличные части документа.

Система 1С поддерживает:

  • режим автоматической нумерации документов (автоматической генерации номера для нового документа);
  • осуществление контроля уникальности номеров документов, не разрешая создавать документы с одинаковыми номерами (флаг «Автонумерация» на вкладке «Нумерация»);
  • автоматический режим, при котором уникальность номеров и автоматическая нумерация могут выполняться в пределах определенного периода (день, месяц, квартал, год). Например, если периодичность установлена год, то с нового года система опять начнет нумерацию указанных документов с 1.

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

Проведение документа 1С

Важным свойством документа является возможность его проведения:

  • если документ проводится, то он может изменить состояние тех или иных учитываемых данных, и как правило, при проведении создает записи в регистрах сведений, регистрах накопления, регистрах бухгалтерии, регистрах расчета, тем самым внося изменения в учет организации;
  • если же документ не является «проводимым», значит, что событие, которое он отражает, не влияет на состояние учета, который ведется в данном прикладном решении (документы, у которых запрещено проведение, обычно используются как печатные формы, например: счет, доверенность и т.д.).

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

Когда происходит интерактивное или программное проведение срабатывает процедура «ОбработкаПроведения()», которая находится в модуле объекта документа.

Процедура ОбработкаПроведения(Отказ, РежимПроведения) // Содержимое обработчика (движения в регистры, прописываются разработчиком) КонецПроцедуры

Процедура ОбработкаПроведения(Отказ, РежимПроведения) // Содержимое обработчика (движения в регистры, прописываются разработчиком)

Данная процедура имеет два параметра:

  • Если выставить параметру «Отказ» значение «Истина», то проведение не будет выполнено;
  • Параметр «Режим» устанавливает режим проведения документа — оперативное или неоперативное.

То, в какие регистры документ будет делать движения задается на вкладке «Движения».

Отсюда http://v8.1c.ru

Например, документ «Поступление товаров и услуг» при своем проведении может вносить изменения:

  • в состояние расчетов с поставщиками;
  • в учет остатков товаров;
  • в состояние заказов покупателей;
  • другие учетные данные.

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

Конструктор движений документов 1С

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

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

Конструктор может быть вызван из окна редактирования документа.

Конструктор движений позволяет:

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

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

Процедура ОбработкаПроведения(Отказ, РежимПроведения) //__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения // будут утеряны!!! // регистр ТоварыНаСкладе Приход Движения.ТоварыНаСкладе.Записывать = Истина; Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.ТоварыНаСкладе.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Товар = ТекСтрокаТовары.Товар; Движение.Количество = ТекСтрокаТовары.Количество; КонецЦикла; //__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры

Процедура ОбработкаПроведения(Отказ, РежимПроведения) //__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения // регистр ТоварыНаСкладе Приход Движения.ТоварыНаСкладе.Записывать = Истина; Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.ТоварыНаСкладе.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Товар = ТекСтрокаТовары.Товар; Движение.Количество = ТекСтрокаТовары.Количество; //__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

Формы документа 1С

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

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

Форма документа 1С

Форма документа 1С предназначена для просмотра и изменения данных отдельных документов.

Как правило, она представляет данные в удобном для восприятия и редактирования виде.

Источник: https://flagman.top/about-business/ehkzamen-1s/obekty-1s-dokumenty

Программное открытие форм в управляемом приложении 1С

1с создать документ программно и открыть форму. Документ может находится в трех состояниях

Программное открытие форм в управляемом приложении 1С значительно отличается от их открытия в обычном приложении. Рассмотрим для начала старый метод. Он заключается в получении формы и ее последующем открытии в обычном или модальном режиме (при открытии в модальном режиме форма блокирует работу программы).

ПолучитьФорму(“Документ.ПоступлениеТоваровУслуг.ФормаДокумента”).Открыть()

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

Форма=ПолучитьФорму(“Документ.ПоступлениеТоваровУслуг.ФормаДокумента”);
//Тут выполняем действия с формой
Форма.Открыть();

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

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

1. Как открыть форму объекта в управляемом приложении, если есть ссылка на него

В этом случае все предельно просто.

СпрСсылка=Справочники.Номенклатура.НайтиПоКоду(“000000001”);
ОткрытьЗначение(СпрСсылка);

2. Как открыть форму выбора и получить потом выбранное значение

Для этого существует функция ВвестиЗначение(). У функции 3 параметра:

  • Переменная, в которую будет записано выбранное значение;
  • Подсказка, которая будет отображена в окне выбора;
  • Описание типов выбираемых значений. Может быть несколько типов, тогда перед выбором конкретного значения будет предложено выбрать тип.

В результате выполнения функции откроется форма выбора по умолчанию для объекта указанного типа.

Перем Значение;
Массив=новый массив;
Массив.Добавить(Тип(“СправочникСсылка.Номенклатура”));
Массив.Добавить(Тип(“СправочникСсылка.Контрагенты”));

ОписаниеТипов=новый ОписаниеТипов(Массив);

Рез=ВвестиЗначение(Значение, “Подсказка”, ОписаниеТипов);

Предыдущие способы позволяли открывать только формы, установленные для объектов по умолчанию (форму объекта или форму выбора). Если нужно открыть произвольную форму, то можно воспользоваться функцией ОткрытьФорму().

Эта функция имеет довольно много параметров. Рассмотрим некоторые из них:

  • Имя формы — тут можно выбрать либо одну из стандартных форм объекта, например, ФормаВыбора или ФормаСписка. Или конкретную, созданную разработчиками форму.
  • Параметры — позволяет передать в форму в виде структуры некоторые параметры перед ее открытием, тем самым определив выводимые данные. Параметры могут представлять собой любые данные, которые можно передавать с клиента на сервер. Переданные при открытии формы параметры можно обработать в процедуре ПриСозданииНаСервере()  у открываемой формы.
  • Режим открытия формы — имеет 3 варианта: независимый, блокировать весь интерфейс, блокировать форму владельца.

Рассмотрим, как применяется функция ОткрытьФорму() в различных ситуациях.

3. Как открыть форму существующего объекта

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

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Параметр.Вставить(“Ключ”, НайтиС());
ОткрытьФорму(“Справочник.Контрагенты.ФормаОбъекта”,Параметр);
КонецПроцедуры

&НаСервере

Функция НайтиС();
Возврат Справочники.Контрагенты.НайтиПоРеквизиту (“ИНН”, “745107734623”)
КонецФункции

4. Как открыть форму нового объекта

Тут подойдет просто функция ОткрытьФорму() без всяких параметров.

&НаКлиенте
Процедура Команда1(Команда)
ОткрытьФорму(“Справочник.Контрагенты.ФормаОбъекта”);
КонецПроцедуры

5. Как открыть форму нового объекта и заполнить ее на основании чего-либо

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

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Параметр.Вставить(“Основание”, СсылкаНаСчетПокупателю);
ОткрытьФорму(“Документ.РеализацияТоваровУслуг.ФормаОбъекта”, Параметр);
КонецПроцедуры

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

6. Как открыть форму и задать на ней отбор

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

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

Например, откроем форму списка справочника НомераГТД и сделаем там отбор по владельцу — элементу справочника Номенклатура.

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;

Отбор=новый Структура;

Отбор.Вставить(“Владелец”, СсылкаНаНоменклатуру);

Параметр.Вставить(“Отбор”, Отбор);

ОткрытьФорму(“Справочник.НомераГТД.ФормаСписка”, Параметр);

КонецПроцедуры

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

Для этого понадобится ключ записи регистра сведений.

Ключ записи — это значения всех измерений и период (если регистр периодический). То есть ключ записи — это параметры, по которым можно однозначно идентифицировать запись.

Алгоритм открытия следующий:

  1. Заносим в структуру данные ключа записи с необходимыми значениями.
  2. Помещаем полученную структуру в массив.
  3. Из массива создаем ключ записи.
  4. Передаем в открываемую форму параметр Ключ с ключом записи из п.3 в качестве значения.

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;

ПараметрыКлюча=новый Структура;

ПараметрыКлюча.Вставить(“Номенклатура”, СсылкаНаНоменклатуру);
ПараметрыКлюча.Вставить(“ТипЦены”, СсылкаНаТипЦен);
ПараметрыКлюча.Вставить(“Период”, Дата);

МассивКлюча = Новый Массив;

МассивКлюча.Добавить(ПараметрыКлюча);

КлючЗаписи = Новый(“РегистрСведенийКлючЗаписи.ЦеныНоменклатуры”, МассивКлюча);

Параметр.Вставить(“Ключ”, КлючЗаписи);

ОткрытьФорму(“РегистрСведений.ЦеныНоменклатуры.ФормаЗаписи”, Параметр);

КонецПроцедуры

Источник: http://chel1C.ru/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5-%D1%84%D0%BE%D1%80%D0%BC-1%D1%81/

Закон
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: