Home » Без рубрики » Урок 5: Работа с документами
google




Урок 5: Работа с документами

Задачи:

  • Создание документов произвольной структуры
  • Понимание механизма «Ввод на основании»
  • Базовые навыки работы с Критериями отбора

Движение Денежных Средств (ДДС)

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

  • Составной тип данных (указываем флажком подходящие типы данных, в каждом реквизите хранящем контрагента придется указывать все возможные типы данных)
  • Определяемый тип (отдельный объект метаданных, позволяет создать набор из типов под одним наименованием)

Создадим новые объекты метаданных:

  • Справочник.ЮридическиеЛица
    • ИНН (Строка, 20)
    • Адрес (Строка, 250)
  • Справочник.ФизическиеЛица
    • ДокументУдостоверенияЛичности (Справочник.ВидыДокументовУдостоверяющихЛичность)
    • ИНН (Строка, 20)
    • НомерДокумента (Строка, 50)
    • Адрес (Строка, 250)
  • Справочник.БанковскиеСчета
    • Реквизиты
      • Код (20)
      • Банк (Строка, 50)
    • Владельцы
      • Справочник.ФизическиеЛица
      • Справочник.ЮридическиеЛица
      • Справочник.Организации
    • Нумерация
      • Автонумерация — снять галочку
  • Перечисление.ВидыДДС
    • Поступление
    • Выбытие

Для решения задачи выбора контрагента в блоке ДДС выберем вариант Определяемый тип. Создадим определяемый тип, настроим как на примере

l6_cfg1

Для отражения банковских операций создадим новый документ «СтрокаБанковскойВыписки»
Структура:

  • Организация (Справочник.Организации)
  • Контрагент (ОпределяемыйТип.Контрагенты)
  • СчетОрганизации (Справочник.БанковскиеСчета)
  • СчетКонтрагента (Справочник.БанковскиеСчета)
  • ВидДвижения (Перечисление.ВидыДДС)
  • Сумма (Число 10,2)
  • Комментарий (Строка, 50)

Настроим связь между счетами и организацией\контрагентом. Рассматривалось в уроке 4. Напомню как это делается: СчетОрганизации — Свойства — Связи параметров выбора — Организация (двойник клик в левом списке) — Имя — Отбор.Владелец, СчетКонтрагента — Свойства — Связи параметров выбора — Контрагент (двойник клик в левом списке) — Имя — Отбор.Владелец.

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

Принимаем изменения, входим в режим 1С Предприятие, создаем Юридическое и Физическое лицо, документ СтрокаБанковскойВыписки, заполняем как на примере:

l6_ent1

l6_ent2

l6_ent3

В конфигураторе приведем форму в более приличный вид

l6_cfg2

Организация заполнения документа «СтрокаБанковскойВыписки»

Автоматическое заполнение Организации, Банковского счета.

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

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

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

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

Заполнение «СчетОрганизации» при выборе организации

У реквизита формы «Организация» создадим обработчик события «ПриИзменении». Мы рассматриваем вариант Управляемых форм, поэтому следует учитывать вызов процедур на сервере и клиенте. Выбираем вариант на Клиенте и на Сервере. Добавляем обработку изменения и получаем в итоге код модуля

Запускаем 1С Предприятие, смотрим что получилось

l6_ent4

Организация заполнилась, а «Счет организации» остался пустым. Но мы ведь написали что изменении Организации подставлять основной банковский счет. Следует понимать, что События отрабатывают действия выполненные пользователем, а не программные. Для заполнения счета доработаем процедуру ПриСозданииНаСервере, вызовем в ней обработчик события «ОрганизацияПриИзмененииНаСервере()»

Проверяем что получилось

l6_ent5

Контроль заполнения

Бывают случаи когда необходимо сделать реквизит обязательным для заполнения, платформа 1С Предприятие 8 позволяет это сделать без программирования (рассматриваем случай что поле всегда должно быть заполнено, без учета возможных вариантов с учетом Если заполнено поле1, тогда должно быть заполнено поле2). Для запрета пустого значения устанавливаем свойство «Выдавать ошибку» = «Выдавать ошибку». Сделаем запрет на пустые значения для реквизитов «ВидДвижения», «Сумма».

l6_ent6

Автоматическое заполнение из данных заполнения

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

Установим автоматическое заполнение поля «ВидДвижения» равный «Поступление»: Свойства реквизита «ВидДвижения» — Заполнять из данных заполнения — Да, Значение заполнения — Поступление.

Ввод на основании

Механизм используется для автоматического заполнения данными нового документа на основании данных другого документа. Например, требуется на основании поступления ТМЦ на склад сделать оплату поставщику. Механизм ввода на основании действует для документов, справочников и ряда других объектов метаданных.

Сделаем возможность ввода на основании документа «ПоступлениеТМЦ» документа «СтрокаБанковскойВыписки».

Переходим на вкладку «Ввод на основании» у документа «СтрокаБанковскойВыписки», в списке «Вводится на основании» выбираем «ПоступлениеТМЦ». Сейчас в документе «ПоступлениеТМЦ» не указывается ни организация, ни контрагент, исправим это (создадим необходимые реквизиты), так же создадим реквизит Основание у Документ.СтрокаБанковскойВыписки, чтобы можно было понять на основании какого документа была оплата (Основание, Документ.ПоступлениеТМЦ). В режиме 1С предприятие заполним созданные реквизиты. Вернется на вкладку ввод на основании документа «СтрокаБанковскойВыписки», нажимаем на кнопку «Конструктор ввода на основании», нажимаем «Заполнить выражения». Платформа автоматически заполнит поля исходят из типа и наименования документов. Доработаем модуль заполнения.

Запускаем 1С Предприятие, смотрим что получилось:

l6_ent7

КритерииОтбора

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

  • Создаем новый Критерий отбора: Общие — Критерии отбора — Добавить.
  • Имя: ДокументыНаОснованииПоступления
  • Подсистемы: ВзаимодействияСКонтрагентами
  • Данные — Тип — ДокументСсылка.ПоступлениеТМЦ
  • Состав — Документы — СтрокаБанковскойВыписки — Основание (ставим галочку)
  • Формы — создадим форму по умолчанию

Подкорректируем форму документа «ПоступлениеТМЦ»: Командный интерфейс — Панель навигации — Перейти — Документы на основании поступления — Видимость (ставим галочку)
Переходим в 1С Предприятие и видим

l6_ent8

l6_ent9

Банковская выписка за период

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

Структура обработки:

  • Шапка
    • ДатаНачала (Дата время)
    • ДатаКонца (Дата время)
  • Табличная часть
    • ДокументыДДС
    • ВидДвижения (Перечисление.ВидыДДС)
    • СтрокаВыписки (Документ.СтрокаБанковскойВыписки)
    • Контрагент (ОпределяемыйТип.Контрагенты)
    • Сумма (Число, 10,2)

l6_cfg5

Создадим команды формы: ПолучитьДокументы, СоздатьСтрокуВыписки и их обработчики.

Скачать урок


Posted on by Ушаков Сергей
Categories: Без рубрики



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

Войти с помощью: 

Рубрики
  • Рубрик нет
Google




Социальные сети


Я в Twitter
Яндекс.Поиск
Поиск обычный
Счетчики
Рейтинг@Mail.ru Яндекс.Метрика