- •Содержание
- •1 Справочник контрагентов
- •2 Справочник договоров с контрагентами
- •3 Работа со справочниками контрагентов и договоров
- •3.1 Справочник сортов
- •3.2 Хранение данных по взаиморасчетам с контрагентами
- •4 Документ Приход денег
- •4.1 Работа с документом
- •5 Отчет по долгам
- •6 Документ Выплата денег
- •Заключение
- •Литература
4 Документ Приход денег
У нас есть контрагенты и договора с ними, у нас есть место (регистр), где мы можем хранить информацию по взаиморасчетам с ними. Теперь нам нужен документ, который позволит вводить эти взаиморасчеты. Первым нашим документом будет документ "Приход денег".
В любом документе в 1С есть два поля, присутствующих всегда. Это "ДатаДок" – дата документа и "НомерДок" – номер документа. 1С позволяет завести еще, сколько надо полей, которые будут присутствовать во всех документах. Это "Общие реквизиты" документа. Заведем один такой общий реквизит – "Комментарий" текстового типа длиной не более 100 символов. Назначение его ясно из названия.
Входим в ветвь "Документы" дерева метаданных;
Устанавливаем курсор на раздел "Общие реквизиты";
Вводим новый общий реквизит;
Идентификатор – "Комментарий", тип – Строка, длина – 100.
Обговорим теперь структуру нашего документа "Приход денег". Кроме полей с датой, номером и комментарием нам, разумеется, понадобится указание – кто нам эти деньги платит? – "Контрагент", на каком основании он платит нам эти деньги? – "Договор", сколько денег он нам платит? – "Сумма". Типы полей "Контрагент" и "Договор" - соответствующие справочники. Поле "Сумма" будет у нас число. Создадим этот документ.
Вводим новый документ;
Идентификатор – "ПриходДенег", синоним – "Приход денег", комментарий – "приход денег от контрагента";
Документ будет проводиться – да, при записи документ будет перепроводиться – да;
Здесь необходимо дать пояснение, что такое проведение документа. Проведение документа – это внесение соответствующих изменений в механизмы хранения данных (в регистры, планы счетов, журналы расчетов). Документ, у которого стоит указание на возможность проведения, может находиться в трех состояниях – не существует (наиболее частое), записан – данные сохранены, проведен – данные сохранены и учтены в механизме хранения данных (если этот механизм не указан, документ все равно считается проведенным) – т. е. совершил какое-то движение в учете.
4. Документ будет принадлежать журналу – да, Создать новый журнал – "ДвижениеДенег";
Журнал – список документов определенного/определенных видов. Имеет экранную форму.
И документ, и журнал вставим в экранное меню;
Открылось окно свойств документа;
В перечень реквизитов шапки занесем наши реквизиты – "Контрагент", "Договор", "Сумма". Табличной (многострочной) части в этом документе нет, нумератор – не назначен, периодичность – год;
Периодичность – это как часто будет появляться документ с номером 1.
Автоматическая нумерация строк – нет (у нас строк не будет), оперативный учет – ДА;
Этим мы покажем, что движение осуществляется по регистрам.
Создадим форму документа, вставим поле с текстом, где мы укажем название документа, расставим элементы экранной формы документа поудобнее;
В свойствах поля договор на закладке "Дополнительно" в поле "связан с" пишем "Контрагент" (рисунок 1);
Рисунок 1 – Свойства поля ввода «Договор»
Справочник "Договора" у нас подчиненный, и мы в форме документа указываем, что договора мы будем брать, принадлежащие ранее указанному контрагенту.
Мы желаем, чтобы при выборе другого контрагента, поле договор очищалось;
В свойствах поля ввода "Контрагент" на закладке "Дополнительно" пишем формулу Контрагент();
В модуле формы пишем следующую процедуру: Перем СтКонтрагент; // Это мы добавили переменную, область действия которой // весь модуль формы документа //----------------------------------------------- Процедура ПриОткрытии() // Это предопределенная процедура, запускается при возникновении // события – открытие формы документа // Она сформировалась автоматически, как мы указали в визарде создания // документов ПриЗаписиПерепроводить(1); // Это означает, что если мы проведенный документ изменили, то при // попытке его сохранения программа попытается его перепровести СтКонтрагент=Контрагент; // Инициализируем переменную СтКонтрагент значением реквизита Контрагент КонецПроцедуры //----------------------------------------------- Процедура Контрагент() Если Контрагент<>СтКонтрагент Тогда // В поле Контрагент содержимое изменилось Договор=""; // Очищаем поле Договор СтКонтрагент=Контрагент; // Инициализируем переменную СтКонтрагент новым значением // реквизита Контрагент КонецЕсли; КонецПроцедуры
Закроем форму;
Откроем Модуль документа;
Мы видим текст: // ******************** Процедура ОбработкаПроведения() //Здесь следует написать алгоритм проведения документа КонецПроцедуры
Модуль документа служит для задания правил внесения изменений в механизмы хранения данных.
20. Перепишем процедуру ОбработкаПроведения: Процедура ОбработкаПроведения() // Предопределенная процедура, запускающая механизмы регистрации движений Если Контрагент.Выбран()=0 Тогда // Выбран() – метод, возвращающий состояние поля ввода = 1, если поле // заполнено и 0 если нет Предупреждение("Контрагент не выбран"); // Вызовем на экран информационное окно с сообщением НеПроводитьДокумент(); // Указываем, что документ заполнен неправильно – он не должен быть проведен КонецЕсли; Если Договор.Выбран()=0 Тогда Предупреждение("Договор не выбран"); НеПроводитьДокумент(); КонецЕсли; Если Договор.ДатаДоговора>ДатаДок Тогда // Договор еще не был заключен на дату документа Предупреждение("Неверная дата договора"); НеПроводитьДокумент(); КонецЕсли; // Теперь будем заполнять поля регистра "Взаиморасчеты" Регистр.Взаиморасчеты.Контрагент = Контрагент; Регистр.Взаиморасчеты.Договор = Договор; Регистр.Взаиморасчеты.Сумма = Сумма; // Движение – поступление денег за продаваемый нами товар // ФлагДвижения = 4 Регистр.Взаиморасчеты.ФлагДвижения = 4; // Наш долг возрос, либо долг контрагента уменьшился – на регистр // пишем сумму приходом Регистр.Взаиморасчеты.ДвижениеПриходВыполнить(); КонецПроцедуры
Закрываем модуль документа;
Закроем окно свойств документа;
Переходим к редактированию журнала. Находим журнал "ДвижениеДенег";
Входим в редактирование журнала;
Добавим новую графу, идентификатор – "Сумма", в возможных значениях отметим Документ.ПриходДенег.Шапка.Сумма, в выбранных значениях появилось указание на поле документа "Приход денег" "Сумма";
Входим в форму списка журнала;
Разместим графы журнала, как будет удобнее, и поменяем им ширину, чтобы все было видно;
Закроем форму списка журнала и окно свойств журнала;
Сохраним конфигурацию.