Имя: Пароль:
1C
1С v8
Рс Непериодический не зависимый
0 KonstantinK90
 
30.11.15
10:55
Всем привет! В чем ошибка не могу понять помогите разобраться. Есть обработка которая делает записи в РС. РС пустой. Вот код
Для Каждого Стр Из ТабличнаяЧасть1 Цикл
            Если Стр.Создать Тогда
                 //ТекСтрока = ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока;
Если Не ЗначениеЗаполнено(стр.Договор_Номер) Тогда
       Сообщить("Запись строки №-" + Стр.НомерСтроки + " не возможно т.к не заполненно поле 'Создать_Номер'");
       Иначе
       НаборЗаписей = РегистрыСведений.уатДокументыТС.СоздатьНаборЗаписей();
Если Не Стр.ТС.Наименование = "" Тогда
       НаборЗаписей.Отбор.ТС.Установить(Стр.ТС);
       НаборЗаписей.Отбор.ВидДокумента.Установить(Стр.ВидДокумента);
       //НаборЗаписей.Прочитать();
       НоваяЗапись = НаборЗаписей.Добавить();
       НоваяЗапись.ВидДокумента = Стр.ВидДокумента;
       НоваяЗапись.ТС           = Стр.ТС;
       НоваяЗапись.ДатаВыдачи   = Стр.ДатаОт_;
       НоваяЗапись.ДатаОкончания= Стр.Дата_До_;
      
       НоваяЗапись.Номер        = Стр.Договор_Номер;
       НоваяЗапись.Серия        = Стр.Серия_;
       НоваяЗапись.ДоговорКонтрагента=Стр.Договор_;
       НоваяЗапись.Период       = ТекущаяДата();
       НоваяЗапись.Категория    = Стр.Категория;
      
КонецЕсли;
Попытка  
    НаборЗаписей.Записать(Истина);
Исключение ОбщегоНазначения.СообщитьОбОшибке(ОписаниеОшибки());
       КонецПопытки;
            КонецЕсли;
          КонецЕсли;
            КонецЦикла;
создает все нормально
Делаю второй шаг меняю вид документа в табличной части и нажимаю создать по сути должно появится по 2 записи полностью единтичны только с разным видом документа. А он у меня перетирает все
1 Горогуля
 
30.11.15
10:56
НаборЗаписей.Записать(Истина) перетирает все
//всё не читал
2 KonstantinK90
 
30.11.15
11:06
не понял!
3 Лефмихалыч
 
30.11.15
11:07
(2) очень плохо
4 Лефмихалыч
 
30.11.15
11:08
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>)
Записать (Write)
Синтаксис:

Записать(<Замещать>)
Параметры:

<Замещать> (необязательный)

Тип: Булево.
Определяет режим замещения существующей записи в соответствии с текущими установками отбора. Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям.
Значение по умолчанию: Истина.
Описание:

Записывает набор записей в базу данных. В зависимости от переданного параметра, может быть выполнено добавление записей или их замещение.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Для регистров сведений, подчиненных регистратору, при вызове с параметром <Замещать> равным Ложь после записи в информационную базу набор записей очищается (удаляются записи из набора).
5 Горогуля
 
30.11.15
11:08
>по сути должно появится по 2 записи
по какой такой сути?
6 АдинС
 
30.11.15
11:13
ТС отбор устанавливает в наборе записей  по виду документа...   посмотри отладчиком в наборе отбор по виду документа действительно установлен?
7 aleks_default
 
30.11.15
11:13
(0) Набор ты записываешь всегда, а заполняешь его только когда Не Стр.ТС.Наименование = ""
8 ЛисИзЛеса
 
30.11.15
11:17
НаборЗаписей.Записать(Истина);
вынеси за цикл
как впрочем и
НаборЗаписей = РегистрыСведений.уатДокументыТС.СоздатьНаборЗаписей();
9 KonstantinK90
 
30.11.15
11:20
Спасибо сейчас по пробую!
10 АдинС
 
30.11.15
11:28
(8) Если вынести за цикл, то набор будет записывать с последним установленным отбором, нужно инициализацию набора и его запись поставить внутри условия

Если Не Стр.ТС.Наименование = "" Тогда
11 KonstantinK90
 
30.11.15
11:35
Спасибо все получилось!