Шаг 323 - Перед проведением сохраняем реквизиты

Так как форме была произведена установка реквизитов и в таблице может находиться несколько одинаковых основных средств необходимо провести установку реквизитов справочника.

.........
	ВыбратьСтроки();
	Пока ПолучитьСтроку() = 1 Цикл
		Если РежимПроведения <> 1 Тогда
			СпрОС = СоздатьОбъект("Справочник.ОсновныеСредства");
			Если СпрОС.НайтиЭлемент(ОсновноеСредство) = 0 Тогда
				Сообщение = "В стороке №" + НомерСтроки + " не задано основное средство.";
				глОшибкаПроведения(Контекст, Сообщение);
				СтатусВозврата(0); 
				Возврат;
			КонецЕсли;
     
			СпрОС.Группа = Группа;
			СпрОС.ПодлежитАмортизации = ПодлежитАмортизации;
			СпрОС.СпособНачисленияАмортизации = СпособНачисленияАмортизации;
			СпрОС.ОбщийОбъемПродукцииРабот = ОбщийОбъемПродукцииРабот;
			СпрОС.ШифрПоЕНАОФ = ШифрПоЕНАОФ;
			СпрОС.МетодНачисленияАмортизации = МетодНачисленияАмортизации;
			СпрОС.ПервоначальнаяСтоимость = БалансоваяСтоимость;
			СпрОС.ДатаВводаВЭксплуатацию = ДатаДок;
			СпрОС.АмортизационнаяГруппа = АмортизационнаяГруппа;
			СпрОС.ПервоначальнаяСтоимостьН = ПервоначальнаяСтоимостьН;

			Если ПустоеЗначение(СпрОС.ПрочиеСведения) = 1 Тогда
				СпрОС.ПрочиеСведения = ПрочиеСведения;
			КонецЕсли;
			СпрОС.Записать();
		КонецЕсли;
          
		УстановитьРеквизитСправочника(ОсновноеСредство, "Подразделение", Подразделение, ДатаДок);
		УстановитьРеквизитСправочника(ОсновноеСредство, "МОЛ", МОЛ, ДатаДок);
		УстановитьРеквизитСправочника(ОсновноеСредство, "НачислятьАмортизацию", НачислятьАмортизацию, ДатаДок);
		УстановитьРеквизитСправочника(ОсновноеСредство, "КоэффициентАмортизации", КоэффициентАмортизации, ДатаДок);
		УстановитьРеквизитСправочника(ОсновноеСредство, "СрокПолезногоИспользования", СрокПолезногоИспользования, ДатаДок);
		УстановитьРеквизитСправочника(ОсновноеСредство, "Состояние", Перечисление.СостоянияОС.В_Эксплуатации, ДатаДок);

		Если СписатьНаЗатраты = 0 Тогда
			УстановитьРеквизитСправочника(ОсновноеСредство, "СчетЗатрат", СчетЗатрат, ДатаДок);
			УстановитьРеквизитСправочника(ОсновноеСредство, "Субконто1", Субконто1, ДатаДок, СчетЗатрат.ВидСубконто(1));
			УстановитьРеквизитСправочника(ОсновноеСредство, "Субконто2", Субконто2, ДатаДок, СчетЗатрат.ВидСубконто(2));
			УстановитьРеквизитСправочника(ОсновноеСредство, "Субконто3", Субконто3, ДатаДок, СчетЗатрат.ВидСубконто(3));
		КонецЕсли;

		Если ПринятьК_НалоговомуУчету < 3 Тогда
			УстановитьРеквизитСправочника(ОсновноеСредство, "СрокПолезногоИспользованияН", СрокПолезногоИспользованияН, ДатаДок);
			УстановитьРеквизитСправочника(ОсновноеСредство, "СпециальныйКоэффициент", СпециальныйКоэффициент, ДатаДок);
			УстановитьРеквизитСправочника(ОсновноеСредство, "СчетЗатратН", СчетЗатратН, ДатаДок);
			УстановитьРеквизитСправочника(ОсновноеСредство, "СубконтоН1", СубконтоН1, ДатаДок, СчетЗатратН.ВидСубконто(1));
			УстановитьРеквизитСправочника(ОсновноеСредство, "СубконтоН2", СубконтоН2, ДатаДок, СчетЗатратН.ВидСубконто(2));
			УстановитьРеквизитСправочника(ОсновноеСредство, "СубконтоН3", СубконтоН3, ДатаДок, СчетЗатратН.ВидСубконто(3));
		КонецЕсли;
......

Основа установки реквизитов функция:

УстановитьРеквизитСправочника
Записать значение периодического реквизита справочника с привязкой к документу.

Синтаксис:

УстановитьРеквизитСправочника(<ЭлементСправочника>, <НазваниеРеквизита>,
	<3начение>, <ДатаУстановки>, <ИмяТипа>, <Длина>, <Точность>)

Англоязычный синоним:

SetRefField

Параметры:
<ЭлементСправочника> - Выражение, задающее элемент справочника, в котором требуется записать новое значение периодического реквизита.
<НазваниеРеквизита> - Строковое выражение — название периодического реквизита справочника (как он назван в конфигураторе) в котором требуется записать новое значение периодического реквизита.
<3начение> - Новое значение периодического реквизита.
<ДатаУстановки> - Выражение типа дата, на которую требуется установить новое значение периодического реквизита. Этот параметр имеет смысл только для не оперативных документов и позволяет установить значение на другую дату чем дата документа, но тогда с пустым временем.
<ИмяТипа> - Необязательный параметр. Строковое выражение — название типа данных (или Вид субконто).
<Длина> - Необязательный параметр. Число — длина числового или строкового значения.
<Точность> - Необязательный параметр. Число знаков после десятичной точки для числового значения.

Описание:
Метод УстановитьРеквизитСправочника записывает новое значение периодического реквизита справочника с привязкой к документу. Использование Данного метода позволяет вносить изменения в справочники с привязкой к проведению документа. Это значит, что при удалении или редактировании или отказе от проведения документа все сделанные им изменения в справочнике будут корректно отменены. Средства языка позволяют выбирать такие движеиия справочника по документу или определять документ, который произвел изменения в справочнике (см. Работа с объектом Периодический).

Параметры <ИмяТипа>, <Длина> и <Точность> следует указывать при установке значения периодического реквизита справочника имеющего неопределенный тип.

Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. Системные предопределенные процедуры).

Но это еще не все. В самом конце Вы видите, что происходит установка налоговых реквизитов для налогового учета, тут нужно немного отвлечься, чтобы посмотреть, что такое налоговый учет.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 07.11.2002