Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИСиТ. Методичка.doc
Скачиваний:
25
Добавлен:
04.11.2018
Размер:
745.47 Кб
Скачать

5.4. Хранение данных по взаиморасчетам с контрагентами

С контрагентами будут вестись разные торговые операции, и, соответственно, платить поставщикам за отгруженный товар, а от покупателей получать деньги за проданный. Для ввода данных по хозяйственным операциям в 1С служит такой объект метаданных, как "Документ". Документами мы сможем вводить данные по приходу/перемещению/отгрузу товара, приходу/расходу денег, но хранить текущее состояние остатков на складе и состояние взаимозадолженности с контрагентами в документах нельзя. Эту информацию можно хранить в справочнике, если добавить соответствующие поля, но это крайне неэффективно и не удобно. Для такой цели в 1С есть специальный механизм. Этот механизм использует объект метаданных "Регистр" — в оперативном учете (для Бухгалтерии - "ПланСчетов", для Расчета - "Журнал расчетов").

Необходимо сконструировать регистр взаиморасчетов. У него будет только два измерения: "Контрагент" и "Договор" и один ресурс: "Сумма". Регистр будет типа регистр остатков. Если сумма будет меньше нуля/ контрагент должен нам, если больше — мы должны контрагенту. Завести один реквизит - "ФлагДвижения" - типа число, который будет принимать следующие значения при изменении состояния регистра:

1 — изменение долга за поставленный нам товар;

2 — изменение долга за проданный нами товар;

3 — изменение долга оплатой за поставленный нам товар;

4 — изменение долга оплатой за проданный нами товар.

Идентификатор: Взаиморасчеты

Тип: Остатки

Периодичность: -

Измерения

Идентификатор

Комментарий

Тип значения

Дополнительно

Контрагент

с кем мы ведем дела

С.Контрагенты

Д

Договор

по какому договору

С.Договора

Д, И

Ресурсы

Идентификатор

Комментарий

Тип значения

Дополнительно

Сумма

Сумма долга

Число 15.2

Реквизиты

Идентификатор

Комментарий

Тип значения

Дополнительно

ФлагДвижения

тип движения

Число 1.0

+

Здесь:

Д - отбор движений;

И - отбор итогов;

+ - не отрицательный;

Движения по регистру будут следующие:

Приход — приход товара (общей суммой) либо денег;

Расход - отгруз товара (общей суммой) либо выплата денег.

  1. Создать новый регистр.

  2. Идентификатор - "Взаиморасчеты", Комментарий "Регистр взаиморасчетов с контрагентами". Измерения, ресурсы, реквизиты - по таблице. Тип регистра — остатки, быстрая обработка движений - по желанию.

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

В любом документе в 1С есть два поля, присутствующих всегда. Это "ДатаДок" - дата документа и "НомерДок" - номер документа. 1С позволяет завести несколько полей, которые будут присутствовать во всех документах. Это "Общие реквизиты" документа. Заведем один такой общий реквизит - "Комментарий" текстового типа длиной не более 100 символов.

  1. Войти в ветвь "Документы" дерева метаданных.

  2. Установить курсор на раздел "Общие реквизиты".

  3. Ввести новый общий реквизит.

  4. Идентификатор - "Комментарий", тип - Строка, длина - 100.

Структура документа "Приход денег": кроме полей с датой, номером и комментарием, понадобится указание — кто платит деньги? — "Контрагент", на каком основании он платит деньги? - "Договор", сколько денег он платит? - "Сумма". Типы полей "Контрагент" и "Договор" - соответствующие справочники. Поле "Сумма" - число 9.2. Создать этот документ.

  1. Идентификатор - "ПриходДенег", Синоним - "Приход денег". Комментарий — "приход денег от контрагента".

  2. Документ будет проводиться - да, при записи документ будет перепроводиться - да.

  3. Документ будет принадлежать журналу - да, Создать новый журнал - "ДвижениеДенег"; Журнал - список документов определенного/определенных видов. Имеет экранную форму.

  4. И документ, и журнал вставить в экранное меню.

  5. Открылось окно свойств документа.

  6. В перечень реквизитов шапки занести реквизиты - "Контрагент", "Договор", "Сумма". Табличной (многострочной) части в этом /документе нет.

  7. Нумератор не назначен, Периодичность — год: Периодичность - это свойство, которое означает насколько часто будет появляться документ с номером 1.

  8. Автоматическая нумерация строк — нет (строк не будет).

  9. Оперативный учет - ДА. Этим показывается, что движение осуществляется по регистрам.

  10. Создать форму документа.

  11. Вставить поле с текстом, где указать название документа.

  12. Расставить элементы экранной формы документа поудобнее.

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

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

  15. В модуле формы написать следующую процедуру:

Перем СтКонтрагент;

// Это мы добавили переменную, область действия которой

// весь модуль формы документа

Процедура ПриОткрытии()

// Это предопределенная процедура, запускается при возникновении

// события — открытие формы документа

// Она сформировалась автоматически, как мы указали в визарде соз

дания

// документов

ПриЗаписиПерепроводить(1);

Это означает, что если мы проведенный документ изменили, то при

попытке его сохранения программа попытается его перепровести

СтКонтрагент=Контрагент;.

II Инициализируем переменную СтКонтрагент значением реквизита

Контрагент

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

//--------------------------------------------------

Процедура Контрагенте Если КонтрагентоСтКонтрагент Тогда // В

поле Контрагент содержимое изменилось Договор-"';

// Очищаем поле Договор СтКонтрагент-Контрагент;

// Инициализируем переменную СтКонтрагент новым значением

// реквизита Контрагент

КонецЕсли;

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

  1. Закрыть форму.

  2. Открыть Модуль документа.

  3. Переписать процедуру ОбработкаПроведения:

Процедура ОбработкаПроведения()

// Предопределенная процедура, запускающая механизмы регистра

ции движений

Если Контрагент.Выбран()=0 Тогда

II ВыбранО - метод, возвращающий состояние поля ввода = 1, если

поле

// заполнено и 0 если нет Предупреждение("Контрагент не выбран");

// Вызовем на экран информационное окно с сообщением НеПрово

дитьДокумент();

// Указываем, что документ заполнен неправильно - он не должен

быть проведен

КонецЕсли;

Если Договор.Выбран()=0 Тогда Предупреждение("Договор не вы

бран"); НеПроводитьДокумент(); КонецЕсли;

Если Договор.Да гаДоговора>ДатаДок Тогда // Договор еще не был

заключен на дату документа Предупреждение("Неверная дата дого

вора"); НеПроводитьДокумент(); КонецЕсли;

// Теперь будем заполнять поля регистра "Взаиморасчеты"

Регистр.Взаиморасчеты.Контрагент = Контрагент;

Регистр. Взаиморасчеты. До говор = Договор:

Регистр.Взаиморасчеты.Сумма = Сумма;

// Движение — поступление денег за продаваемый нами товар

// ФлагДвижения — 4

Регистр. Взаиморасчеты. ФлагДвижения = 4;

// Наш долг возрос либо долг контрагента уменьшился — на регистр

//пишем сумму приходом

Регистр.Взаиморасчеты. ДвижениеПриходВыполнить();

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

  1. Закрыть модуль документа.

  2. Закрыть окно свойств документа.

  3. Перейти к редактированию журнала.

  4. Войти в редактирование журнала "ДвижениеДенег".

  5. Добавить новую графу.

  6. Идентификатор - "Сумма".

  7. В возможных значениях отметить Документ.ПриходДенег.Шапка.Сумма.

  8. В выбранных значениях появилось указание на поле документа "Приход денег" "Сумма".

  9. Войти в форму списка журнала.

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

  11. Закрыть форму списка журнала и окно свойств журнала.

  12. Сохранить конфигурацию.

Теперь попробуйте набрать несколько документов в системе 1С-Предприятие и попробуйте провести их.

Для того чтобы корректно работать с документами в системе 1С Предприятие, необходимо установить точку актуальности итогов, для чего необходимо:

  1. Открыть 1С Предприятие;

  2. Через меню "Операции" команда "Управление оперативными итогами";

  3. Поставить дату актуальности итогов на 01.10.2003;

  4. Нажать [Установить];

  5. Появился вопрос "Изменить Точку Актуальности итогов";

  6. Ответить [Да];

  7. Появилось сообщение, что изменение точки актуальности завершено. Подтвердить получение сообщения;

  8. Выйти из окна управления итогами.

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

  1. Поставить курсор на документ;

  2. Меню "Действия", команда "Движения документа". Появилось окошко. В нем галочка стоит на строке с надписью "Взаиморасчеты". Это означает, что движение было только по этому регистру. Здесь есть еще строчка — "Реквизиты справочников". Документ при проведении может менять значения периодических реквизитов справочников! (Если, конечно, это прописать в процедуре ОбработкаПроведения).

  3. Выбрать эту строку. Появилось окно "Движения регистров Взаиморасчеты (Например: Приход денег 1 (02.10.2003))".