4.1 Создать документ в соответствии с приведенными выше рекомендациями. Обратить внимание на правильное назначение типа реквизиту "СтатьяЗатрат": «ПеречислениеСсылка.СтатьиЗатрат». Построить движения при помощи конструктора (содержание проводки – напр.: «Учтены затраты»). Обратите внимание, что в сформированной процедуре «ОбработкаПроведения» отсутствует цикл обхода табличной части документа (т.е., документ всегда формирует только одну проводку):
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр Основной
Движение = Движения.Основной.Добавить();
Движение.СчетДт = ПланыСчетов.Основной.Затраты;
Движение.СчетКт = ПланыСчетов.Основной.Поставщики;
Движение.Период = Дата;
Движение.Сумма = Сумма;
Движение.Содержание = "Учтены затраты";
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.СтатьиЗатрат] = СтатьяЗатрат;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Поставщики] = Поставщик;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
4.2 Создать форму документа. Поскольку по условиям задачи, затраты по статье "Материалы" должны всегда проводиться "через склад" (т. е., документами "ПоступлениеМатериалов" и "ПередачаМатериаловВПроизводство"), необходимо предусмотреть контроль того, что статья затрат, выбранная пользователем в данном документе не является статьей "Материалы". Контроль может быть реализован различными способами (например, документ данного вида со статьей "Материалы" не будет записываться или не будет проводиться), однако наиболее удобным с точки зрения пользователя будет вывод предупреждения о том, что данная статья не может выбираться в документе, непосредственно после выбора такой статьи. Для реализации такого контроля необходимо создать обработчик события «ПриИзменении» (см. п. 1.6) для поля ввода «СтатьяЗатрат». Обработчик должен иметь примерно следующий вид:
Процедура СтатьяЗатратПриИзменении(Элемент)
Если СтатьяЗатрат = Перечисления.СтатьиЗатрат.Материалы Тогда
Предупреждение("Эта статья не может быть выбрана!");
СтатьяЗатрат = 0;
КонецЕсли;
КонецПроцедуры
В случае равенства значения, выбранного в реквизите "СтатьяЗатрат" значению Перечисления.СтатьиЗатрат. Материалы пользователю будет выдано соответствующее предупреждение, а с помощью строки СтатьяЗатрат=0; поле ввода будет тут же очищено.
4.3 Добавить пункт для документа в меню "Документы", протестировать разработанный документ. При тестировании документа обратить внимание на работу реализованного механизма контроля.
5. Разработка документа "Оплата поставщику".
Данный документ должен формировать проводки по схеме: "Д60,Поставщики К50". Один документ отражает факт оплаты одному поставщику. Таким образом, документ будет иметь всего два реквизита: «Поставщик» и «Сумма». Каких-либо особенностей документ не имеет.
5.1 Разработать документ и протестировать его работу.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.