Имя: Пароль:
1C
 
ОШИБКА: В данной транзакции уже происходили ошибки!
0 jakov
 
23.03.07
15:24
В чем может быть трабла???
При попытке создания нового контрагента, возникает такая ошибки (при записи в БД), при этом если контрагент существует, то его правка, удаление и т.п. ошибок не вызывает....
Пользователь имеет роль, у которой в справочник Контрагентов полный доступ.

Спасбо
1 ТелепатБот
 
гуру
23.03.07
15:24
2 jakov
 
23.03.07
16:11
Неужели никто не сталкивался????
3 France
 
23.03.07
16:11
а что там в ПриЗаписи?
4 jakov
 
23.03.07
16:13
Где это можно уточнить???
5 jakov
 
23.03.07
16:15
Процедура ПриЗаписи(Отказ)
   
   Если НЕ ОбменДанными.Загрузка Тогда
       
       Если НЕ ЗначениеНеЗаполнено(ГоловнойКонтрагент) И ГоловнойКонтрагент <> Ссылка Тогда

           Если Не ЗначениеНеЗаполнено(ГоловнойКонтрагент.ГоловнойКонтрагент) И ГоловнойКонтрагент.ГоловнойКонтрагент <> ГоловнойКонтрагент Тогда
               СообщитьОбОшибке("Контрагент "+СокрЛП(ГоловнойКонтрагент)+" не может быть выбран головным,
                               |так как для него уже был назначен головной контрагент "+СокрЛП(ГоловнойКонтрагент.ГоловнойКонтрагент)+"!");
               Отказ = Истина;
               Возврат;
           Иначе

               // надо проверить, что если указываем головного контрагента, то этот элемент уже не был установлен
               // в качестве головного у другого контрагента.
               ВыборкаПоГоловномуКонтрагенту = ПолучитьКонтрагентовПоЗаданномуГоловномуКонтрагенту(Ссылка).Выбрать();
               Если ВыборкаПоГоловномуКонтрагенту.Количество() <> 0 Тогда

                   СообщениеОНевозможностиЗаписи = "Контрагент "+СокрЛП(ЭтотОбъект)+" не может иметь головного контрагента!
                                                   |Этот контрагент уже установлен головным для: ";
                   Пока ВыборкаПоГоловномуКонтрагенту.Следующий() Цикл
                       СообщениеОНевозможностиЗаписи = СообщениеОНевозможностиЗаписи + Символы.ПС + СокрЛП(ВыборкаПоГоловномуКонтрагенту.Контрагент);
                   КонецЦикла;

                   СообщитьОбОшибке(СообщениеОНевозможностиЗаписи);
                   Отказ = Истина;
                   Возврат;

               КонецЕсли;

           КонецЕсли;

       КонецЕсли;
   
       Если НЕ ЗначениеНеЗаполнено(мОснование) Тогда
           НаборЗаписей = РегистрыСведений.СобственныеКонтрагенты.СоздатьНаборЗаписей();
           ЗаписьРегистра = НаборЗаписей.Добавить();
           ЗаписьРегистра.Контрагент = Ссылка;
           ЗаписьРегистра.ВидСвязи   = Перечисления.ВидыСобственныхКонтрагентов.Организация;
           ЗаписьРегистра.Объект     = мОснование;
           НаборЗаписей.Записать(Ложь);
           мОснование = "";
       КонецЕсли;
       
       ЗаполнитьНаборПравамиДоступаУнаследованымиОтРодителя(мПраваДоступаПользователей, Родитель, Ссылка);
       
       НеобходимоПереписыватьПодчиненных = ПроверитьНеобходимостьПереписыватьПраваДоступаДляПодчиненныхЭлементов(Ссылка, мПраваДоступаПользователей);
       
       ЗаписатьПраваДоступаКОбъекту(мПраваДоступаПользователей, Ссылка, Отказ);
       
       Если НеобходимоПереписыватьПодчиненных И НЕ Отказ Тогда
           УстановитьПраваДоступаДляПодчиненныхЭлементов(Ссылка, ЭтотОбъект.Метаданные().Имя, Отказ);
       КонецЕсли;
       
   КонецЕсли;
   
КонецПроцедуры
6 jakov
 
23.03.07
16:20
Вот еще что важно, все это делалось след образом:
- создалась пустая (тестовая) БД конфигурация из шаблона, в которую была перенесена рабочая БД.
- в тестовой БД, создана новая роль, отлажена конфа - все работает
- конфа была перенесена в рабочую БД, где стала возникать ошибка.
7 dimoff
 
23.03.07
16:22
Когда в транзакции происходит больше одной ошибки в вызываемых функциях и процедурах - пишется подобное сообщение. Зайди в отладчик и погуляй по процедуре через F11
8 jakov
 
23.03.07
16:31
спасибо, попробую... однако ставлю "Полные права", все нормально работает.... не могу локализовать ошибку пока
9 France
 
23.03.07
16:36
возможно дело в том, что при записи в регистр сведений запись откатывается с ошибкой.. и этой ошибки достаточно, чтобы неудачно завершилась запись элемента справочника... так что, порой, что там с записью в регистр сведений.
10 jakov
 
23.03.07
16:56
Еще раз пасиб...
11 jakov
 
23.03.07
23:21
Удалось решить проблему.

Видимо это трабла 1С_v8.
На группу "Покупатели" стояло ограничение некоего Пользователя, этих ограничений  в Справочнике пользователей Конфигурации "Торговля" видно не было (удалить пользователя не удавалось из-за ошибки)... После удаления этого пользователя в Конфигураторе, в конфигурации "Торговля" для данного пользователя появились непонятные ограничения область данных для которых была пуста (отсюда и ошибка). Удаление этих ограничений и последующее удаление пользователя, решило проблему для записи в справочник "Контрагентов" всех остальных пользователей.

Артефакты какие-то....