Skip to main content

Класс Документы и Журналы документов

Стандартные реквизиты: Номер документа и Дата документа.

Заполнение реквизита значением по умолчанию. В свойствах реквизита есть параметр Значение заполнения. Для простых типов оно заполняется вручную. Для типов СправочникСсылка список значений берется из предопределенных данных  справочника.

Ввод на основании: В разделе настройки "Ввод на основании" добавляется документ, который является основой для ввода и в модуле объекта создается процедура ОбработкаОснования.  

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

Обработка событий формы. Управление отображением и событиями платформы

Обработка табличной части документа:

&НаКлиенте
Процедура ПересчитатьИтоговуюСумму() 
	ТабЧасть = Объект.ПереченьТоваров;
	ФиналСумма = 0; 	
	Для каждого Товар из ТабЧасть Цикл
		ФиналСумма = ФиналСумма + Товар.Сумма;
	КонецЦикла;
    Объект.СуммаПоДокументу = ФиналСумма;
КонецПроцедуры

&НаКлиенте
Процедура ПереченьТоваровКоличествоПриИзменении(Элемент)
	СтрТабЧасти = Элементы.ПереченьТоваров.ТекущиеДанные;
	СтрТабЧасти.Сумма = СтрТабЧасти.Цена * СтрТабЧасти.Количество;
	ПересчитатьИтоговуюСумму();
КонецПроцедуры

&НаКлиенте
Процедура ПереченьТоваровЦенаПриИзменении(Элемент)
	СтрТабЧасти = Элементы.ПереченьТоваров.ТекущиеДанные;
	СтрТабЧасти.Сумма = СтрТабЧасти.Цена * СтрТабЧасти.Количество;
	ПересчитатьИтоговуюСумму();
КонецПроцедуры

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

1c_documents_add_columns_in_table.JPG

&НаСервере
Процедура ПолучитьСоставНабора()
	ТекСоставНабора = СтандартныеНаборыВыдачи.СоставНабора;  
	Для Каждого ЭлемНабора из ТекСоставНабора цикл
		НовыйЭлем = Объект.ТаблицаВыдачиКанцелярии.Добавить();
		НовыйЭлем.НазваниеПредмета = ЭлемНабора.Канцелярия;
	КонецЦикла;                                            
КонецПроцедуры

&НаКлиенте
Процедура ДобавитьНабор(Команда)
	ПолучитьСоставНабора();
КонецПроцедуры

Создание документа

&НаКлиенте
Процедура СоздатьНовыйДокумент(Команда)
        Если СоздатьНовыйДокументНаСервере() = 0 Тогда
                Сообщить("Не удалось создать новый документ");
        КонецЕсли;
КонецПроцедуры

&НаСервере
Функция СоздатьНовыйДокументНаСервере()
        НоваяРасходнаяНакладная=ДокРасходнаяНакладная.СоздатьДокумент();
        НоваяРасходнаяНакладная.Дата=  ТекущаяДата();
        НоваяРасходнаяНакладная.Фирма =Справочники.Фирмы.ОсновнаяФирма;
        НоваяРасходнаяНакладная.Контрагент=Справочники.Контрагенты.НайтиПоКоду("000000001");
        НоваяРасходнаяНакладная.Склад=Справочники.Склады.ОсновнойСклад;
        СтрокаТЧ=НоваяРасходнаяНакладная.ТЧТовары.Добавить();
        СтрокаТЧ.Товар=Справочники.Номенклатура.НайтиПоКоду("000000002");
        СтрокаТЧ.Цена=СтрокаТЧ.Товар.РозничнаяЦена;
        СтрокаТЧ.Количество= 2;
        СтрокаТЧ.Сумма=СтрокаТЧ.Цена*СтрокаТЧ.Количество;
   
        Попытка
                НоваяРасходнаяНакладная.Записать();
                Возврат 1;
        Исключение
                Возврат 0;
        КонецПопытки;
КонецФункции  

Дополнительные опции:

  • Нумераторы - отвечают за сквозную нумерацию для разных документов, сначала создается нумератор, затем в разделе Нумерация нужных документов указывается нумератор.
  • Последовательности - отвечают за контроль целостности данных при изменении проведенного документа. Например, при изменении документа в уже закрытом периоде. Нужно разобраться.

Журналы документов

Не создают дополнительных данных. Только для визуального объединения разных документов в одном списке. 
В разделе Данные в Регистрируемые документы добавляются нужные документы, в разделе Графы - поля из документов.