Доброго дня, коллеги!
На нашем сайте опубликована серия бесплатных статей из цикла “Первые шаги в разработке 1С”. Статьи действительно полезны и вызывают интерес у слушателей. Одна из них – Предопределенные элементы в «1С:Предприятие 8.3», в рамках которой слушатель задал вопрос и получил ответ совершенно “безвозмездно, то есть даром” :)
Вопрос
Ответ
Добрый день!
Проверьте для проблемных счетов, какие значения принимают свойства ИмяПредопределенныхДанных и Предопределенный. При помощи фрагмента кода из статьи можно изменить счет:
ОбъектДанных = Объект.СчетДляИзменения.ПолучитьОбъект(); //СчетДляИзменения - реквизит обработки ОбъектДанных.ИмяПредопределенныхДанных = ""; ОбъектДанных.Записать();
После этого можно будет удалить задвоившейся счет.
Комментарий слушателя
КодСчета=”10.03″; ОбъектДанных = ПланыСчетов.Хозрасчетный.НайтиПоКоду(КодСчета).ПолучитьОбъект();
Также нужно ещё отключать предопределенность у субконто
ОбъектДанных.ВидыСубконто[0].Предопределенное = ЛОЖЬ;
Комментарий тренера
Возможно, проблема со счетом 10.03 “Топливо” связана с новшествами, появившимся в релизе 3.0.74. В этой версии был реализован учет путевых листов, поэтому в конфигурации появились предопределенные счета 10.03.1 “Топливо на складе” и 10.03.2 “Топливо в баке”. А 10.03 – это теперь группа счетов.
Разработка расширений и технологии доработки конфигураций 1С без снятия с поддержки.
Интересно, в такой ситуации не могла помочь реструктуризация БД или проверка целостности через конфигуратор? Ведь возникновение в режиме предприятия предопределенности, когда в конфигураторе ее нет – это рассинхронизация, которая по идее лечится пересозданием таблицы… по метаданным, заданным в конфигураторе
Добрый день!
Провел эксперимент. Создал пустую базу, добавил в конфигурацию Справочник Справочник1. В нем создал предопределенный элемент Т1. Затем при помощи программного кода в пользовательском режиме создал еще один элемент с наименованием Т1, у которого свойство ИмяПредопределенныхДанных установил в значение Т1.
Реструктуризация таблиц информационной базы не помогла – остались оба предопределенных элемента.
А проверка логической целостности выдала вот такое сообщение и исправила проблему:
В таблице Reference31 обнаружены неуникальные записи со значениями полей:
PredefinedID = 0xB344B42AFBE3707146AC062AAF1D96AD (Т1)
Т1 (31:bd4a000c2987211911ea9e63f485245b)
Т1 (31:bd4a000c2987211911ea9e63f485245c) Установлена пометка удаления, снят признак предопределенности
Неуникальность записей устранена