|
Проведение документа через COM соединение. | ☑ | ||
---|---|---|---|---|
0
rosveta
30.10.14
✎
11:11
|
Столкнулась с очередной проблемой при работе с COM. Моя обработка подключается из розницы к УТ 11 и в УТ я создаю перемещение и пытаюсь его провести. Перемещение без проблем создается, без проблем записывается. Но при проведении документа возникает ошибка.
"Ошибка при вызове метода контекста (Write): Произошла исключительная ситуация (1C:Enterprise 8.3.4.408): Нарушение прав доступа! " Сразу скажу, что с правами пользователя это не связано. У пользователя права администратора. Если я захожу в ут и провожу там эти перемещения под тем же пользователем, то все без проблем проводится. Документ проводится как из формы так и из списка документов (то есть заполнение каких-то реквизитов при открытии формы тоже отпадает). На другом форуме обсуждалась такая же проблема. При том там опытным путем выяснили, что такое происходит именно на скл-ных базах, в файловых таких проблем не возникает. Вот часть кода. БазаУТ.SetPrivilegedMode(True); Пока ОбходПоОрганизации.Следующий() Цикл ОбходПоСкладам = ОбходПоОрганизации.Select(БазаУТ.QueryResultIteration.ByGroups); Пока ОбходПоСкладам.Следующий() Цикл ДетальныеЗаписи = ОбходПоСкладам.Select(); НовоеПеремещение = БазаУТ.Документы.ПеремещениеТоваров.CreateDocument(); НовоеПеремещение.СкладОтправитель = ОбходПоСкладам.Склад; НовоеПеремещение.Дата = ТекущаяДата(); НовоеПеремещение.Организация = ОбходПоСкладам.Организация; НовоеПеремещение.СкладПолучатель = БазаУТ.Справочники.Склады.НайтиПоНаименованию("Магазин СЦ Люмис"); НовоеПеремещение.Ответственный = БазаУТ.Справочники.Пользователи.НайтиПоНаименованию(Строка(ПараметрыСеанса.ТекущийПользователь.Наименование)); Пока ДетальныеЗаписи.Следующий() Цикл СтрокаПеремещения = НовоеПеремещение.Товары.Add(); СтрокаПеремещения.Номенклатура = ДетальныеЗаписи.Номенклатура; СтрокаПеремещения.Количество = ДетальныеЗаписи.Количество; СтрокаПеремещения.КоличествоУпаковок = ДетальныеЗаписи.Количество; КонецЦикла; НовоеПеремещение.Write(); Попытка //НовоеПеремещение.ОбменДанными.Загрузка = Истина; НовоеПеремещение.Write(БазаУТ.DocumentWriteMode.Posting); Исключение //НовоеПеремещение.Write(); //Сообщить("Не удалось провести перемещение № " + Строка(НовоеПеремещение.Номер) + Строка(ОписаниеОшибки())); КонецПопытки; КонецЦикла; КонецЦикла; БазаУТ.SetPrivilegedMode(false); |
|||
1
Cube
30.10.14
✎
11:14
|
(0) У тебя при проведении документа идет обращение к куче общих модулей. И, возможно, у кого-то из этих модулей нет галочки "Внешнее соединение"...
|
|||
2
Cube
30.10.14
✎
11:15
|
(1) Хотя не, в таком случае была бы ошибка "Процедура с указанным именем не обнаружена"....
|
|||
3
Cube
30.10.14
✎
11:17
|
А ОписаниеОшибки() не содержит ничего интересного?
|
|||
4
rosveta
30.10.14
✎
11:28
|
Описание ошибки содержит Ошибка при вызове метода контекста (Write): Произошла исключительная ситуация (1C:Enterprise 8.3.4.408): Нарушение прав доступа!
Но это наверно идет из розницы описание ошибки, я пыталась получить описание ошибки из торговли, написав вот так //Сообщить("Не удалось провести перемещение № " + Строка(НовоеПеремещение.Номер) + Строка(БазаУТ.ОписаниеОшибки())); Но не вышло. Сейчас попробую ОписаниеОшибки() заменить на англоязычный код. |
|||
5
Fish
30.10.14
✎
11:32
|
А что написано в ЖР? На какой конкретно объект нет прав?
|
|||
6
rosveta
30.10.14
✎
11:33
|
(5), В ЖР Отмена происходит при записи в независимый регистр сведений "Состояние отгрузки"
|
|||
7
Cube
30.10.14
✎
11:49
|
(4) А Перемещение твое в УТ, случайно, не обработано напильником? Ну, там, движения по нетиповому регистру может добавлены в подписке на событие?...
|
|||
8
rosveta
30.10.14
✎
11:54
|
Само перемещение не доработано. Но в базе есть внешний журнал регистрации, который на данные момент отключен. Поэтому есть подписка на событие, где источником являются все документы объекты.
|
|||
9
Cube
30.10.14
✎
12:09
|
(8) Попробуй в этой подписке в источник поставить какой-нибудь левый документ (один документ, а не все документы). Базу сохрани, обнови и проверь проведение.
|
|||
10
rosveta
30.10.14
✎
16:02
|
(9), Попробовала. Тоже не помогло.
|
|||
11
Defender aka LINN
30.10.14
✎
16:43
|
(0) "Сразу скажу, что с правами пользователя это не связано" - скажи это громко, четко, 2 раза в порт сетевой карты сервера.
|
|||
12
Ник второй
30.10.14
✎
16:49
|
(0) Прав доступа не хватает.
|
|||
13
rosveta
30.10.14
✎
17:07
|
Я имела в виду права пользователя 1с на регистры и прочие объекты конфигурации, возможно, я что-то путаю. Скажите как решить эту проблему? Где какие права можно посмотреть или настроить?
|
|||
14
Defender aka LINN
30.10.14
✎
17:08
|
(13) Как всегда: позвать программиста
|
|||
15
Михаил Козлов
30.10.14
✎
17:09
|
Попробуйте не через коннектор, а через приложение.
|
|||
16
rosveta
30.10.14
✎
17:18
|
(14) я им и являюсь
|
|||
17
Defender aka LINN
30.10.14
✎
17:20
|
(16) Спасибо, давно так не смеялся
|
|||
18
Serginio1
30.10.14
✎
17:31
|
Ты не оттуда?
http://forum.infostart.ru/forum86/topic117638/ |
|||
19
rosveta
30.10.14
✎
17:32
|
(18), да
|
|||
20
Alamo-10
30.10.14
✎
17:36
|
(13) Ну судя по контексту сообщения в (11), человек имеет ввиду какие-то другие права, но, видимо, делиться своими познаниями с широким кругом лиц он не намерен.
Поддержу ТС, тоже сталкивался с такой проблемой, хотелось бы найти какое-либо адекватное решение. Хотя бы направление, в котором нужно копать |
|||
21
kumena
30.10.14
✎
19:21
|
в файловом варианте не испытывал, но у меня была такая же проблема когда я обмена, когда я проводил документ с подпиской через COM универсальной обработкой. как только подписку убирал - все хорошо. и когда грузил обработкой сам тоже хорошо - но в регл. задании была ошибка.
я так понял что в файловом режиме все хорошо потому что нет "сервера". в итоге решил отказаться от подписки. |
|||
22
kumena
30.10.14
✎
19:25
|
но ошибка была другая, не права. я бы на вашем месте попробовал записывать с полными правами, для проверки что это права.
|
|||
23
slavikzzz
30.10.14
✎
20:15
|
(22) была подобная ситуация с подпиской на событие. Использовал в ней конструкцию типа Вопрос() - все работало нормально, пока не начал настраивать обмен РИБ по расписанию. Во внешнем соединении данная конструкция недоступна - что выдавало ошибку.
Обошел проблему с помощью #Если Клиент Тогда |
|||
24
Cube
31.10.14
✎
05:29
|
(10) Тогда в таких ситуациях я делаю так:
1). Закомментирую всю процедуру ОбработкаПроведения() у этого документа. 2.1). Если ошибка ушла, то начинаю раскомментировать блоками. Нахожу проблемный участок, и понимаю причину. 2.2). Если ошибка не ушла, то удаляю все подписки на события, т.к. дело в них. И проблема проходит. Затем по одной начинаю восстанавливать подписки и ищу проблемную подписку. |
|||
25
Serginio1
31.10.14
✎
08:58
|
(24) достаточно
Проверь модуль, модули с флажком Внешнее соединение Сервис/Параметры/Проверка галочка внешнее соединение. |
|||
26
Serginio1
31.10.14
✎
11:55
|
||||
27
rosveta
03.11.14
✎
00:22
|
Спасибо. Попробую тогда еще на другой платформе это дело произвести.
|
|||
28
rosveta
05.11.14
✎
09:26
|
Проблема решилась. Воспользовалась советом (24). Оказалось, что проблема действительно в правах. Не было права на изменение на Последовательность Партии товаров организации. Почему этого права не требуется при проведении из Предприятия, я так и не поняла.
|
|||
29
Cube
05.11.14
✎
09:36
|
(28) Удачное фото неизбежно приводит к качественным ответам =))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |