|
Рс Непериодический не зависимый | ☑ | ||
---|---|---|---|---|
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
|
Спасибо все получилось!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |