хуй

antipodarok


Антиподарок

аренда подъемников


Previous Entry Share Next Entry
Добавить записи в регистр сведений, подчиненный регистратору
хуй
antipodarok
Как добавить записи в регистр сведений, подчиненный регистратору?

Если регистр сведений подчинен регистратору, то для добавления записей в него необходимо создать набор записей этого регистра с установленным отбором по нужному регистратору, заполнить этот набор записей и записать его (листинг 3.100):

Листинг 3.100. Добавление записей в регистр, подчиненный регистратору (замещение)

НаборЗаписей = РегистрыСведений.ЛимитыВозвратнойТары.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Период = ВыбранныйРегистратор.Дата;
НоваяЗапись.Номенклатура = ВыбраннаяНоменклатура;
НоваяЗапись.ДоговорКонтрагента = ВыбранныйДоговор;
НоваяЗапись.ЛимитПоставщика = 50;
НаборЗаписей.Записать();




По умолчанию запись выполняется с замещением, т. е. существующие записи этого регистратора в регистре сведений будут удалены.

Для того чтобы добавить записи к существующим записям регистратора, необходимо указывать значение Ложь параметра метода Записать() набора записей. При этом необходимо позаботиться о том, чтобы значения измерений добавляемых записей были уникальны для записей данного регистратора в регистре сведений, иначе запись выполнена не будет (листинг 3.101):

Листинг 3.101. Добавление записей в регистр, подчиненный регистратору

НаборЗаписей = РегистрыСведений.ЛимитыВозвратнойТары.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Период = ВыбранныйРегистратор.Дата;
НоваяЗапись.Номенклатура = ВыбраннаяНоменклатура;
НоваяЗапись.ДоговорКонтрагента = ВыбранныйДоговор;
НоваяЗапись.ЛимитПокупателю = 25;
НаборЗаписей.Записать(Ложь);

Менеджер записи

Процедура ПереопределитьЦеныНажатие(Элемент)
// Подготовить менеджер записи
Запись = РегистрыСведений.ПерсонифицированныйПрайс.СоздатьМенеджерЗаписи();
// Получить данные записей, соответствующих условиям
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ПерсонифицированныйПрайс.Период,
| ПерсонифицированныйПрайс.Покупатель,
| ПерсонифицированныйПрайс.Номенклатура,
| ПерсонифицированныйПрайс.Цена
|ИЗ
| РегистрСведений.ПерсонифицированныйПрайс КАК ПерсонифицированныйПрайс
|ГДЕ
| ПерсонифицированныйПрайс.Номенклатура.Наименование ПОДОБНО ""%принтер%"" И ПерсонифицированныйПрайс.Цена < 300";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл

// Установить ключевые поля менеджера записи
Запись.Период = Выборка.Период;
Запись.Покупатель = Выборка.Покупатель;
Запись.Номенклатура = Выборка.Номенклатура;

// Прочитать запись из базы данных
Запись.Прочитать();

// Убедиться, что запись все еще есть в базе данных
Если Запись.Выбран() Тогда

  // Переопределить покупателя
  Запись.Покупатель = ВыделенныйПокупатель; 
  // Установить новую цену
  Запись.Цена = Выборка.Цена * 1.2;
  // Записать модифицированную запись в базу данных
  Запись.Записать();
КонецЕсли;
КонецЦикла;
КонецПроцедуры


?

Log in