Salavat, сначала у меня идёт РежимЗаписиДокумента.Запись (Данные. Добавление), чтобы не потерять документ, а потом попытка проведения.
Сеанс. Начало Нет транзакции
Сеанс. Аутентификация Нет транзакции Имя: ОбменМБ, ...
Данные. Добавление Зафиксирована 30.09.2014 10:23:53 (2816767) Документ. Поступление товаров и услуг ...
Данные. Изменение Отменена 30.09.2014 10:23:54 (2817223) Регистр сведений. Даты поступления товаров организаций
Сеанс. Завершение Нет транзакции
(4) roman77, пройдись отладчиком по ком объекту и создай его там же, должно навести на мысли с твоим сервером. И поговори с админом может стоит запрет на работу таким способом.
Ну а если банально кэш почистить? или создать новую ссылку на скульную информационную базу?
И проверь какие подписки на события срабатывают, возможно маячки в них что-нибудь расскажут в каком месте идет отказ...
И кстати попробуй если используешь ComConnector как работает то же самое с Application возможно 1с пытается тебе что-то вывести на формочке что-бы пожаловаться на тяжелую жизнь а ComConnector не дает таких возможностей...
YanTsys, при работе через V83.Application не получается получить объект документа, не работает метод <СсылкаНаОбъект>.ПолучитьОбъект() - Произошла исключительная ситуация (1C:Enterprise 8.3.5.1119): При подписке ЗаписатьВерсиюОбъекта на событие ПриЗаписи произошла ошибка. Обработчик события не найден.
Смешно, но решение заключается в отказе от V83.Application в пользу V83.COMConnector
Что-то у вас прямо ничего не работает... :)
Создайте собственную чистую конфигурацию добавьте один справочник и документ, проверьте как будет работать там...
(9) YanTsys, всё замечательно работает в режиме файловой базы. А на сервере под MS SQL не проводится. До этого я пробовал гонять базу на Postgresql, так там вообще все печально было, глюки просто аццкие. 1С следовало бы честно признать, что 1С Postgresql не поддерживает.
(21) asved.ru,
Я скачал Postgre с сайта 1С и установил его согласно прилагаемой инструкции. Где компания 1С написала о том, что помимо этого нужно выполнить еще какие-то особенные настройки, о которых я должен сам догадаться? Ссылочку, пожалуйста, в студию.
С Postgre всё работает как надо до первого "сравнить, объединить с конфигурацией из файла". После этого пропадает возможность выгрузить ИБ в *.dt. Не хилая такая подстава, правда? Возможно это был глюко конкретной платформы, но у меня больше нет желания экспериментировать. Для этого уважающие себя софтовые компании держат в своем штате тестировщиков. В 1С видимо решили: зачем платить зарплату специалистам по тестированию, когда клиенты бесплатно на своих рабочих базах выловят все глюки и сообщат о них в службу поддержки :)
ПоступлениеТоваровУслугОбъект = глCOMCоединение.Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
// .. действия с документом
ПоступлениеТоваровУслугОбъект.Записать(глCOMCоединение.РежимЗаписиДокумента.ОтменаПроведения);
В противном случае, если ПоступлениеТоваровУслугОбъект был бы объектом текущей базы, то тогда вообще бы ничего не работало. А так всё ок за исключением того, что документ не проводится.
Имеем точно такую же проблему на измененной УТ 11.
В журнале запись о доступе к таблице последовательности.
Только запись производилась в контексте той же базы, ДокументОбъект.Записать()
Значит, мы не одиноки )
Мы смогли добиться корректной работы с одной хитростью:
если программно очистить записи последовательности перед записью документа, ошибка не возникает.
Костыль, но работает
Нужно смотреть условную компиляцию (привелигированный режим)
А также проверь модуль, модули с флажком Внешнее соединение
Сервис/Параметры/Проверка галочка внешнее соединение.
roman77, Вам как-то удалось решить проблему? Столкнулись с такой же проблемой при проведении через ком. Правда ругается на независимый регистр сведений Состояние отгрузки при проведении перемещения в ут11.
(27) Boneman, Сказал, же написал код по памяти, обработку искать недосуг. Но проблема была обозначена выше - в файловой базе всё проводилось на ура, а скульной документы не проводились. Танец с бубном показал, что проблема в Сообщить.
Функция ПроведениеДокументов(МассивПредставлений, тз = "") Экспорт
ПодключитьИБ();
Результат = Истина;
Для Каждого стр Из МассивПредставлений Цикл
ДокСсылка = ПолучитьДокументПоПредставлениюCOM(стр);
Если Не ДокСсылка = Неопределено Тогда
ДокОбъект = ДокСсылка.ПолучитьОбъект();
//РежимПроведения = Коннект.РежимЗаписиДокумента.Проведение;
Попытка
ДокОбъект.Write(Коннект.РежимЗаписиДокумента.Posting);
Результат = Истина;
Исключение
Сообщить("Не удалось провести " + стр);
Результат = Ложь;
Если Не тз = "" Тогда
НовСтр = тз.Добавить();
НовСтр.НПП = тз.Количество();
НовСтр.Документ = стр;
НовСтр.Контрагент = ДокОбъект.Контрагент.Наименование;
НовСтр.Договор = ДокОбъект.ДоговорКонтрагента.Наименование;
КонецЕсли;
КонецПопытки;
Иначе
Сообщить("Не найден документ " + стр);
Результат = Ложь;
КонецЕсли;
КонецЦикла;
Коннект = Null;
Возврат Результат;
КонецФункции
Показать
Не в сообщить была проблема, помню же что была, но оказалось что не в сообщить, приношу искренние извинения......
точнее в слове Posting, по русски не проводилось. Я выложил целиком процедуру, которая работает, помню, что не сразу получилось - это последний вариант.
(32) Lumis, Я помнится нашёл затык в отладчике, как не помню, но можно попробовать убрать попытку, и посмотреть, что вылезет в ошибке. Кстати отличие - Вы устанавливаете привилигированный режим, я этим не заморачивался - проводится и так....
(37)roman77, Да вот и мне привилегированный режим не помог. Попробовала подключить технологический журнал, туда записались исключения. Но что с этим делать дальше, я не знаю
Обойти-то проблему можно - организовать на приемной стороне регламентное задание, которое будет проводить документы согласно командам, поступающим из передающей базы. Но неприятный осадок всё равно останется.
Всем страдающим от подобной ошибки, информация от 1с:
Ошибку 30012553 уже исправили в версии 8.3.6.
Исправление по ошибке 30012553 перенесли в версию 8.3.5.1255 от 27.10.2014.
------
Забавно, информация об ошибках на сайте у них обновляется с задержкой.
Проблема решилась. Оказалось, что проблема действительно в правах. Не было права на изменение на Последовательность Партии товаров организации. Почему этого права не требуется при проведении из Предприятия, я так и не поняла.
Реализация товаров и услуг не записывалась...
Посчитал количество подписок на событие - оказалось 60.
Перебрал все последовательно, отключая по одной - нашел единственную, которая не давала записать документ.
Мешающий в этом случае кусок кода поставил в скобки "Если НЕ ВнешнееСоединение Тогда" и заработало...
Кому интересно - обработка для вывода подписок на событие по типу объекта - тип объекта задается строкой (напр. "ДокументОбъект.РеализацияТоваровУслуг". Приложение обычное.
Нужно просмотреть все подписки на события, в которых Событие "ПередЗаписью" или "ПриЗаписи" и проверить что у модуля обработчика проставлено свойство "Внешнее соединение".
Здравствуйте, можете подсказать в чем, может быть, поблема.Через COM-соединение в режиме сервера не записывается документ, ссылается на ошибку "Произошла исключительная ситуация (1C:Enterprise 8.3.15.1534): Ошибка при выполнении обработчика - 'ПередЗаписью'
{Документ.СчетНаОплату.МодульОбъекта(75)}: Ошибка при вызове метода контекста (ПолучитьУникальныйИдентификаторПлатежа)
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра метода ПолучитьУникальныйИдентификаторПлатежа ()." . В методе ПолучитьУникальныйИдентификаторПлатежа (), есть параметр ЭтотОбъект,выглядит так ПолучитьУникальныйИдентификаторПлатежа (ЭтотОбъект). Что это может быть?Может кто то с подобным сталкивался?
(52) ПолучитьУникальныйИдентификаторПлатежа вероятно это метод текущей базы, куда передается объект из другой базы.
То есть надо обращаться к методу также через COM-соединение.
Если я ошибаюсь - напишите, пожалуйста, этот кусок кода.
(53)Кусок базы в которой создаю документ из другой. Эта процедура ПередЗаписью, в модуле объекта.
Если НЕ ЗначениеЗаполнено(ИдентификаторПлатежа) Тогда
ИдентификаторПлатежа = РасчетыСлужебный.ПолучитьУникальныйИдентификаторПлатежа(ЭтотОбъект);
КонецЕсли;
(55)У модуля РасчетыСлужебный галочки Клиент,Сервер,Вызов сервера. ЭтотОбъект должен быть ДокументОбъект. Но я не могу с помощью отладчика зайти в процедуру ПерезЗаписью, и не могу посмотреть какой объект передает com соединение
(56) Открываете конфигуратор целевой базы ставите автоматически подключать внешние соединения точку останова в нужном месте и отлаживаете. Я так загрузку через com-объекты из Аксапты дебажил.
Из внешнего соединения переключается на сервер в этом вызове. Есть возможность поставить нужную галку на модуле?
Отладка внешнего соединения
Для указания внешнему соединению необходимости запуска в отладочном режиме используются настройки, размещенные в xml-файле comcntrcfg.xml, который расположен в каталоге конфигурационных файлов системы «1С:Предприятие».
Пример файла comcntrcfg.xml:
(63)В модуле из который вызывают функцию ПолучитьУникальныйИдентификаторПлатежа ,есть" #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда".
А в модуле где находится функция ПолучитьУникальныйИдентификаторПлатежа, там ничего нет