Класс Документы и Журналы документов
Стандартные реквизиты: Номер документа и Дата документа.
Заполнение реквизита значением по умолчанию. В свойствах реквизита есть параметр Значение заполнения. Для простых типов оно заполняется вручную. Для типов СправочникСсылка список значений берется из предопределенных данных справочника.
Ввод на основании: В разделе настройки "Ввод на основании" добавляется документ, который является основой для ввода и в модуле объекта создается процедура ОбработкаОснования.
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
//{{__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПрибытиеВГараж") Тогда
// Заполнение шапки
Автомобиль = ДанныеЗаполнения.Автомобиль;
Гараж = ДанныеЗаполнения.Гараж;
КонецЕсли;
//}}__КОНСТРУКТОР_ВВОД_НА_ОСНОВАНИИ
КонецПроцедуры
Обработка событий формы. Управление отображением и событиями платформы
Обработка табличной части документа:
&НаКлиенте
Процедура ПересчитатьИтоговуюСумму()
ТабЧасть = Объект.ПереченьТоваров;
ФиналСумма = 0;
Для каждого Товар из ТабЧасть Цикл
ФиналСумма = ФиналСумма + Товар.Сумма;
КонецЦикла;
Объект.СуммаПоДокументу = ФиналСумма;
КонецПроцедуры
&НаКлиенте
Процедура ПереченьТоваровКоличествоПриИзменении(Элемент)
СтрТабЧасти = Элементы.ПереченьТоваров.ТекущиеДанные;
СтрТабЧасти.Сумма = СтрТабЧасти.Цена * СтрТабЧасти.Количество;
ПересчитатьИтоговуюСумму();
КонецПроцедуры
&НаКлиенте
Процедура ПереченьТоваровЦенаПриИзменении(Элемент)
СтрТабЧасти = Элементы.ПереченьТоваров.ТекущиеДанные;
СтрТабЧасти.Сумма = СтрТабЧасти.Цена * СтрТабЧасти.Количество;
ПересчитатьИтоговуюСумму();
КонецПроцедуры
Добавление данных в табличную часть Есть справочники Канцелярия и НаборыВыдачиКанцелярии и документ ВыдачаКанцелярии. Нужно добавить опцию заполнения табличной части документа стандартными наборами. В документе нет реквизита НаборыВыдачиКанцелярии, так как наборы могут меняться, в документ может быть добавлено несколько наборов, но само название набора не важно, а фактически важен добавленный состав. На форму был добавлен реквизит СтандартныеНаборыВыдачи и кнопка Добавить набор.
&НаСервере
Процедура ПолучитьСоставНабора()
ТекСоставНабора = СтандартныеНаборыВыдачи.СоставНабора;
Для Каждого ЭлемНабора из ТекСоставНабора цикл
НовыйЭлем = Объект.ТаблицаВыдачиКанцелярии.Добавить();
НовыйЭлем.НазваниеПредмета = ЭлемНабора.Канцелярия;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьНабор(Команда)
ПолучитьСоставНабора();
КонецПроцедуры
Дополнительные опции:
- Нумераторы - отвечают за сквозную нумерацию для разных документов, сначала создается нумератор, затем в разделе Нумерация нужных документов указывается нумератор.
- Последовательности - отвечают за контроль целостности данных при изменении проведенного документа. Например, при изменении документа в уже закрытом периоде. Нужно разобраться.
Журналы документов
Не создают дополнительных данных. Только для визуального объединения разных документов в одном списке.
В разделе Данные в Регистрируемые документы добавляются нужные документы, в разделе Графы - поля из документов.