Набор записей, принадлежащий менеджеру записи должен содержать ровно 1 запись
Здравствуйте.
Работаем в ERP 2.4.7.107.
В какой-то момент появилась ошибка при открытии кадровых документах (Набор записей, принадлежащий менеджеру записи должен содержать ровно 1 запись). Нашла РС, в котором задублированы записи, это "НастройкиУчетаВремени". У регистра только ресурсы, измерений нет. Запросом к регистру вижу 2 одинаковые записи. При открытии самого регистра в режиме предприятия ошибка, вручную удалить не могу. Программно изменить или удалить одну запись не могу, та же ошибка. ТИИ не помогает.
Подскажите какие еще есть варианты убрать дубли?!
Работаем в ERP 2.4.7.107.
В какой-то момент появилась ошибка при открытии кадровых документах (Набор записей, принадлежащий менеджеру записи должен содержать ровно 1 запись). Нашла РС, в котором задублированы записи, это "НастройкиУчетаВремени". У регистра только ресурсы, измерений нет. Запросом к регистру вижу 2 одинаковые записи. При открытии самого регистра в режиме предприятия ошибка, вручную удалить не могу. Программно изменить или удалить одну запись не могу, та же ошибка. ТИИ не помогает.
Подскажите какие еще есть варианты убрать дубли?!
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4)Если у регистра нет измерений, то работать с ним нужно только через МенеджерЗаписи.
Придется сформировать ТЗ, содержащую ВСЕ записи, которые должны в итоге быть в регистре и записать каждую запись.
Т.е. алгоритм такой:
1. Получаем ТЗ из регистра. Именно ТЗ, а не выборку.
2. Убиваем все записи в регистре.
3. Добавляем каждую запись в регистр из ТЗ в п.1
Придется сформировать ТЗ, содержащую ВСЕ записи, которые должны в итоге быть в регистре и записать каждую запись.
Т.е. алгоритм такой:
1. Получаем ТЗ из регистра. Именно ТЗ, а не выборку.
2. Убиваем все записи в регистре.
3. Добавляем каждую запись в регистр из ТЗ в п.1
(5) в пункте 2 выходит ошибка
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| НастройкиУчетаВремени.УчитыватьНочныеЧасы КАК УчитыватьНочныеЧасы,
| НастройкиУчетаВремени.УчитыватьВечерниеЧасы КАК УчитыватьВечерниеЧасы,
| НастройкиУчетаВремени.ИспользоватьНесколькоВидовПлановогоВремени КАК ИспользоватьНесколькоВидовПлановогоВремени,
| НастройкиУчетаВремени.УчитыватьВремяНаКормлениеРебенка КАК УчитыватьВремяНаКормлениеРебенка,
| НастройкиУчетаВремени.ПроверятьСоответствиеФактическогоВремениПлановому КАК ПроверятьСоответствиеФактическогоВремениПлановому,
| НастройкиУчетаВремени.ОтражатьЧасыВДеньНачалаСмены КАК ОтражатьЧасыВДеньНачалаСмены,
| НастройкиУчетаВремени.ИспользоватьРежимыРаботы КАК ИспользоватьРежимыРаботы,
| НастройкиУчетаВремени.ИспользоватьСменыРаботы КАК ИспользоватьСменыРаботы
|ИЗ
| РегистрСведений.НастройкиУчетаВремени КАК НастройкиУчетаВремени";
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
НД = РегистрыСведений.НастройкиУчетаВремени.СоздатьМенеджерЗаписи();
НД.Записать();
Показать
Вот исправление.
Для Каждого Рег Из Метаданные.РегистрыСведений Цикл
Если Рег.Измерения.Количество() = 0 Тогда
НаборЗаписей = РегистрыСведений[Рег.Имя].СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() = 2 Тогда
ТЗ = НаборЗаписей.Выгрузить();
Свертка = ",";
Для Каждого Колонка Из ТЗ.Колонки Цикл
Свертка = Свертка + "," + Колонка.Имя;
КонецЦикла;
ТЗ.Свернуть(СтрЗаменить(Свертка, ",,", ""));
Если ТЗ.Количество() = 1 Тогда
Сообщить(Рег.Имя);
НаборЗаписей.Загрузить(ТЗ);
НаборЗаписей.ОбменДанными.Загрузка = Истина;
НаборЗаписей.Записать(Истина);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот