Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 16:24

Добавить запись в периодический регистр сведений

Автор nataliya_vl, 04 ноя 2017, 19:14

0 Пользователей и 1 гость просматривают эту тему.

nataliya_vl

Регистр с периодичностью секунда, независимый. Измерения - источникДО и ккт (определяет какие платежи на какую ККТ печатать), реквизит "доступен" булево. Цель - создать запись с реквизитом "доступен=ложь", если ошибку ККТ не удалось идентифицировать.
НаборЗаписей = РегистрыСведений.ДО.СоздатьНаборЗаписей();           
      НаборЗаписей.Отбор.ИсточникДО.Установить(выборка.источникДО);
      НаборЗаписей.Отбор.ККТ.Установить(ккт);
      НаборЗаписей.Прочитать();
      новаязапись=наборзаписей.добавить();
      новаязапись.период=текущаядата();
      новаязапись.источникДО=выборка.источникДО;
      новаязапись.ккт=ккт;
      новаязапись.доступен=ложь;
      новаязапись.описание="Отключение ККТ по ошибке: " +текстошибки;
      наборзаписей.записать(ложь);

В результате получаю ошибку "Запись с такими ключевыми полями существует". При этом через интерфейс такую запись можно сделать.
В наборе записей на момент записи -2 строки, ИсточникДО и ККТ одинаковы, период - разный.
Как сделать правильно?

alex0402

Цитата: nataliya_vl от 04 ноя 2017, 19:14НаборЗаписей.Прочитать();
здесь считываются записи из базы.
Цитата: nataliya_vl от 04 ноя 2017, 19:14наборзаписей.записать(ложь);
здесь добавляются записи считанные ранее и не перезаписываются существующие!!!
Прочитать здесь лишнее...
Спасибо за Сказать спасибо

nataliya_vl

Да, действительно, без "прочитать" работает. Получается, и отбор можно было не устанавливать?

ilyay

Правильнее использовать для добавления МенеджерЗаписи в этом случае.

А если набор записей, тогда нужно в качестве отбора устанавливать еще и период, т.е. сохранить ТекущаяДата() в переменную и ее установить в качестве значения отбора и в качестве значения реквизита.


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск