|
sokol566535 0 / 0 / 0 Регистрация: 09.01.2017 Сообщений: 30 |
||||
|
1 |
||||
Ошибка в обработке удаление проведения.18.05.2017, 18:52. Показов 3458. Ответов 4 Метки нет (Все метки)
Подскажите как быть , провожу отмену проведения, конфигурация не снимает проведение, выдает ошибку как перед повторной записью. Что поменять в обработке удаления проведения?
__________________
0 |
|
841 / 604 / 211 Регистрация: 24.07.2013 Сообщений: 2,101 |
|
|
18.05.2017, 18:58 |
2 |
|
sokol566535, Очистить содержимое обоих обработчиков.
0 |
|
0 / 0 / 0 Регистрация: 09.01.2017 Сообщений: 30 |
|
|
18.05.2017, 19:00 [ТС] |
3 |
|
а как быть если мне нужно перед записью убедиться что документ не проведен , если проведен программа должна сообщать что «заказ уже оформлен»
0 |
|
1783 / 1208 / 437 Регистрация: 16.01.2015 Сообщений: 5,322 |
|
|
18.05.2017, 19:05 |
4 |
|
Решение
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) Как вариант — переместить в ОбработкаПроверкиЗаполнения, проверяется только при проведении, при распроведении игнорируется
1 |
|
0 / 0 / 0 Регистрация: 09.01.2017 Сообщений: 30 |
|
|
18.05.2017, 19:19 [ТС] |
5 |
|
спасибо все работает!!)))
0 |
Главная »
Линия консультаций » Комплексные решения 1С (КА, ERP, УПП), управленческий учет (УНФ), корпорациям » 1С:Предприятие 8. ERP Управление предприятием 2.0 » ERP Подсистема управленческого учета » Ошибка при выполнении обработчика — ‘ОбработкаУдаленияПроведения’
по причине:
Поле объекта не обнаружено (НачалоДняПорядка)
{ОбщийМодуль.ПроведениеСерверУТ.Модуль(433)}: Объект.Движения.Записать();
{Документ.ПоступлениеБезналичныхДенежныхСредств.МодульОбъекта(543)}: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);
по причине:
Ошибка при выполнении обработчика — ‘ПриЗаписи’
по причине:
Поле объекта не обнаружено (НачалоДняПорядка)
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(287)}: ВызватьИсключение(СтрШаблон(НСтр(«ru = ‘В регистрах взаиморасчетов обранужены отрицательные остатки на дату %1. Проведение невозможно.’;
{ОбщийМодуль.ОперативныеВзаиморасчетыСервер.Модуль(1570)}: ЗаполнитьОперативныеВзаиморасчеты(ОсновныеПараметры);
{РегистрНакопления.РасчетыСКлиентами.МодульНабораЗаписей(659)}: ОперативныеВзаиморасчетыСервер.РаспределитьПоИзменениям(ПараметрыИзменений, ДополнительныеСвойства);
{ОбщийМодуль.ПроведениеСерверУТ.Модуль(433)}: Объект.Движения.Записать();
{Документ.ПоступлениеБезналичныхДенежныхСредств.МодульОбъекта(543)}: ПроведениеСерверУТ.ЗаписатьНаборыЗаписей(ЭтотОбъект);
Бух-ия 1,6,25,5. Есть проведенный и заполненый документ Регистрация отплаты поставщику для НДС. Нажимаю Заполнить, 1 с спрашивает отменить проведение, нажимаю Да, табличное поле будет очищено -да. и вылетает ошибка
{Документ.РегистрацияОплатыПоставщикуДляНДС(14)}: Ошибка при вызове метода контекста (Записать)
Записать(РежимЗаписиДокумента.ОтменаПроведения);
по причине:
по причине:
Ошибка при выполнении обработчика — ‘ОбработкаУдаленияПроведения’
по причине:
{ОбщийМодуль.ОбщегоНазначения(941)}: Операция не выполнена
Записать(РежимЗаписиДокумента.ОтменаПроведения);
В конфигураторе строка 941
Для Каждого СтрокаДвижения ИЗ ТаблицаДвижений Цикл
Попытка
СтрокаДвижения.НаборЗаписей.Записать();
Исключение
// возможно «сработал» RLS или механизм даты запрета изменения
СообщитьОбОшибке(ОписаниеОшибки(), Отказ, СтрокаДвижения.Имя);
ВызватьИсключение «Операция не выполнена»;
КонецПопытки;
КонецЦикла;
Что значит возможно сработал RLS? Дата запрета стоит 30,09,2010. документ от 31,12,2010
|
Пользователь 25773 Эксперт Сообщений: 848 |
#1 0 24.01.2014 17:12:23 При выгрузке товаров получаем вот такое окно:
Ошибка возникает в последнем дополнении Битрикса для «1С Управление торговлей» 10.3.26.2. Ошибка возникает при выгрузке файла offers.xml, если ни у одного товара нет цен. ////////////////////////// Зачем написал? Чтобы все знали. Когда уже будет публичный баг-трекер , где можно увидеть все косяки той или иной версии? У нас 2 программиста 3 часа искали в 1С, почему такая ошибка. Модуль «Продвинутый обмен с 1C» http://marketplace.1c-bitrix.ru/solutions/askaron.pro1c/, создание сайтов и интеграция с 1С http://askaron.ru, |
||
|
Пользователь 25773 Эксперт Сообщений: 848 |
#2 0 27.01.2014 16:48:46 Найден баг. Строка 2404. Внутренняя обработка ОбменССайтом Кто-то из старой версии не убрал важный фрагмент и сделал одно лишнее закрытие тега XML.
Этот фрагмент следует убрать. Например так: Исходный текст:
Заменить на
Модуль «Продвинутый обмен с 1C» http://marketplace.1c-bitrix.ru/solutions/askaron.pro1c/, создание сайтов и интеграция с 1С http://askaron.ru, |
||||||
|
Администратор Сообщений: 4915 |
В ближайшей версии модуля обмена эта бага будет поправлена. |
|
Пользователь 25773 Эксперт Сообщений: 848 |
А можно тупо выложить дополнение-фикс для той же версии 1С? Вот идея — исправлять критическе ошибки в тот же день http://idea.1c-bitrix.ru/significantly-accelerate-product-updates-fix-critical-bugs/ Сколько еще ждать ближайшую версию модуля? Пол-года? |
|
Администратор Сообщений: 4915 |
Я пересобрал версию модуля вчера. На днях должна обновиться на сайте. Я кста, тоже считаю, что критичные ошибки должны правиться очень оперативно. Другое дело с адаптациями… И да, много кто уже поставил последний модуль и только от вас пришло сообщение о ошибке, поэтому ошибка не столь критична. Она вылазит только при определенных условиях. |
|
Пользователь 25773 Эксперт Сообщений: 848 |
Спасибо. Я надеюсь ошибка с частями архива тоже будет исправлена: http://dev.1c-bitrix.ru/community/forums/forum26/topic60094/ |
|
Администратор Сообщений: 4915 |
Она тоже. Но в тоже время для УПП, КА и продуктов стран СНГ пока обновлена. |
|
Пользователь 238860 Заглянувший Сообщений: 4 |
#8 0 29.01.2014 11:12:24
Поставили, ошибку получили. КА 1.1.42.2 |
||
|
Администратор Сообщений: 4915 |
В КА исправлено в модуле версии 1.1.42.4. Просто она еще не обновлена на сайте. |
|
Администратор Сообщений: 4915 |
#10 0 29.01.2014 12:25:44 По поводу размера — нужно смотреть сами XML файлы. |
|
Пользователь 238860 Заглянувший Сообщений: 4 |
#11 0 30.01.2014 14:10:45 Обновленный модуль для КА России выложен неправильно. Внутри модуль от УТ Беларуси |
|
Александр Денисюк
Администратор Сообщений: 4915 |
#12 0 30.01.2014 16:03:35
Сообщил людям. Сейчас должны поправить. |
||
|
Пользователь 238860 Заглянувший Сообщений: 4 |
#13 0 30.01.2014 16:28:22 Что то как то не сложилось с этим обновлением. Пытаюсь удалить реализацию. Вылетает ошибка
Если закоментировать
То все удаляется, но опять с ошибками. |
||||
|
Администратор Сообщений: 4915 |
#14 0 30.01.2014 21:21:45 Это все из за конфигурации. Модуль для КА делался на основе УТ. А конфигурации немного отличаются. Всех отличий не учтешь. Посмотрю в чем дело. Оказалось, что в КА(да и скорее всего УПП), нет функции ОбщегоНазначения.ЕстьТабЧастьДокумента. |
|
Пользователь 238860 Заглянувший Сообщений: 4 |
#15 0 31.01.2014 11:02:18
И тут понеслось. Обмен заказами не обновляет заказы.
|
||||
|
Администратор Сообщений: 4915 |
#16 0 31.01.2014 11:17:47 Вполне вероятно — связано с предыдущей ошибкой. Посмотрю. Сегодня думаю поправлю. |
|
Администратор Сообщений: 4915 |
#17 0 31.01.2014 11:50:23 Тут можно скачать новую версию КА. На Сайте она обновится чуть позже. Проверил подписки на события + перезапись заказов. http://yadi.sk/d/iZGB0A6fH47cC |
|
Пользователь 25773 Эксперт Сообщений: 848 |
#18 0 31.01.2014 16:28:37 исправленная версия для 10.3.26.4 http://1c.1c-bitrix.ru/ecommerce/download.php Версия с ошибками версия была для 10.3.26.2. Мы не смогли у 1С найти 10.3.26.4. Её не бывает. Следующая после 10.3.26.2 идет 10.3.27.1 Будет ли работать дополнение и оказываться техническая поддержка если мы поставим дополнение для 10.3.26.4 на 10.3.26.2? |
|
Администратор Сообщений: 4915 |
#19 0 31.01.2014 19:29:36 Эм. Это версия модуля. При запуске установщика пишется для какой она версии. Если память не изменяет 10.3.26.2. |
|
Пользователь 25773 Эксперт Сообщений: 848 |
#20 0 31.01.2014 20:03:09 Да верно, в коде у вас 2.9.26.4 для УТ 10.3.26.2. Исправьте на странице http://1c.1c-bitrix.ru/ecommerce/download.php название версии. Это ошибка. Мы заставили заказчика искать несуществующую версию 1С. Модуль «Продвинутый обмен с 1C» http://marketplace.1c-bitrix.ru/solutions/askaron.pro1c/, создание сайтов и интеграция с 1С http://askaron.ru, |
Добрый день!
После обновления программы (Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.23.165) ) перестали проводится документы Начисление зарплаты и взносов.
Ошибка при выполнении обработчика — ‘ОбработкаПроведения’
по причине:
Значение индекса выходит за границы диапазона
{ОбщийМодуль.УчетСреднегоЗаработка.Модуль(5222)}: Начисления.Удалить(ИсключаемаяСтрока);
{ОбщийМодуль.УчетСреднегоЗаработка.Модуль(3405)}: РаспределитьВТНачисленияПоБазе(МенеджерВременныхТаблиц, Регистратор, ИсключатьВПериодКомандировок);
{ОбщийМодуль.УчетСреднегоЗаработка.Модуль(3009)}: ЗарегистрироватьНачисленияДляРасчетаОбщегоСреднегоЗаработка(Движения, Отказ, МенеджерВременныхТаблиц, ИсключатьВПериодКомандировок, ЗаписыватьДвижения);
{ОбщийМодуль.УчетСреднегоЗаработка.Модуль(237)}: ЗарегистрироватьДанныеОбщегоСреднегоЗаработка(Движения, Отказ, МенеджерВременныхТаблиц, ЗаписыватьДвижения);
{Документ.НачислениеЗарплаты.МодульМенеджера(265)}: УчетСреднегоЗаработка.ЗарегистрироватьДанныеСреднегоЗаработка(Движения, Отказ, ДанныеДляПроведения.НачисленияДляСреднегоЗаработка);
{Документ.НачислениеЗарплаты.МодульОбъекта(124)}: Документы.НачислениеЗарплаты.ПровестиПоУчетам(Ссылка, РежимПроведения, Отказ, Неопределено, Движения, ЭтотОбъект, ДополнительныеСвойства);
по причине:
Значение индекса выходит за границы диапазона
В чем может быть причина?
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;
Движения.Продажи.Записывать = Истина;
// Создать менеджер временных таблиц
МенеджерВТ = Новый МенеджерВременныхТаблиц;
#Область НоменклатураДокумента
Запрос = Новый Запрос;
// Укажем, какой менеджер временных таблиц использует этот запрос
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =
«ВЫБРАТЬ
| ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
| ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры
| КАК ВидНоменклатуры,
| ОказаниеУслугиПереченьНоменклатуры.НаборСвойств,
| СУММА(ОказаниеУслугиПереченьНоменклатуры.Количество)
| КАК КоличествоВДокументе,
| СУММА(ОказаниеУслугиПереченьНоменклатуры.Сумма)
| КАК СуммаВДокументе
|ПОМЕСТИТЬ НоменклатураДокумента
|ИЗ
| Документ.ОказаниеУслуги.ПереченьНоменклатуры КАК ОказаниеУслугиПереченьНоменклатуры
|ГДЕ
| ОказаниеУслугиПереченьНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ОказаниеУслугиПереченьНоменклатуры.Номенклатура,
| ОказаниеУслугиПереченьНоменклатуры.Номенклатура.ВидНоменклатуры
| ОказаниеУслугиПереченьНоменклатуры.НаборСвойств «;
Запрос.УстановитьПараметр(«Ссылка», Ссылка);
РезультатЗапроса = Запрос.Выполнить();
#КонецОбласти
#Область ДвиженияДокумента
Запрос2 = Новый Запрос;
Запрос2.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос2.Текст = «ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура,
| НоменклатураДокумента.ВидНоменклатуры,
| НоменклатураДокумента.НаборСвойств,
| НоменклатураДокумента.КоличествоВДокументе,
| НоменклатураДокумента.СуммаВДокументе,
| ЕСТЬNULL(СтоимостьМатериаловОстатки.СтоимостьОстаток, 0) КАК Стоимость,
| ЕСТЬNULL(ОстаткиМатериаловОстатки.КоличествоОстаток, 0) КАК Количество
|ИЗ
| НоменклатураДокумента КАК НоменклатураДокумента
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиМатериалов.Остатки(
| ,
| Материал В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)) КАК ОстаткиМатериаловОстатки
| ПО НоменклатураДокумента.Номенклатура = ОстаткиМатериаловОстатки.Материал
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьМатериалов.Остатки(
| ,
| Материал В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| ИЗ
| НоменклатураДокумента)) КАК СтоимостьМатериаловОстатки
| ПО НоменклатураДокумента.Номенклатура = СтоимостьМатериаловОстатки.Материал «;
// Установим необходимость блокировки данных в регистрах СтоимостьМатериалов
// и ОстаткиМатериалов
Движения.СтоимостьМатериалов.БлокироватьДляИзменения = Истина;
Движения.ОстаткиМатериалов.БлокироватьДляИзменения = Истина;
// Запишем пустые наборы записей, чтобы читать остатки без учета данных в документе
Движения.СтоимостьМатериалов.Записать();
Движения.ОстаткиМатериалов.Записать();
РезультатЗапроса = Запрос2.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Количество = 0 Тогда
СтоимостьМатериала = 0;
Иначе
СтоимостьМатериала =
ВыборкаДетальныеЗаписи.Стоимость / ВыборкаДетальныеЗаписи.Количество;
КонецЕсли;
Если ВыборкаДетальныеЗаписи.ВидНоменклатуры =
Перечисления.ВидыНоменклатуры.Материал Тогда
// регистр ОстаткиМатериалов Расход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.НаборСвойств = ВыборкаДетальныеЗаписи.НаборСвойств;
Движение.Склад = Склад;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
// регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Стоимость = ВыборкаДетальныеЗаписи.КоличествоВДокументе * СтоимостьМатериала;
КонецЕсли;
// Регистр Продажи
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Клиент = Клиент;
Движение.Мастер = Мастер;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоВДокументе;
Движение.Выручка = ВыборкаДетальныеЗаписи.СуммаВДокументе;
Движение.Стоимость = СтоимостьМатериала * ВыборкаДетальныеЗаписи.КоличествоВДокументе;
КонецЦикла;
Движения.Записать();
#КонецОбласти
#Область КонтрольОстатков
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
// Проверить отрицательные остатки
Запрос3 = Новый Запрос;
Запрос3.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос3.Текст = «ВЫБРАТЬ
| ОстаткиМатериаловОстатки.Материал,
| ОстаткиМатериаловОстатки.НаборСвойств,
| ОстаткиМатериаловОстатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиМатериалов.Остатки(,(Материал, НаборСвойств)В
| (ВЫБРАТЬ
| НоменклатураДокумента.Номенклатура
| НоменклатураДокумента.НаборСвойств
| ИЗ
| НоменклатураДокумента)
| И Склад = &Склад) КАК ОстаткиМатериаловОстатки
|ГДЕ
| ОстаткиМатериаловОстатки.КоличествоОстаток < 0 «;
Запрос3.УстановитьПараметр(«Склад», Склад);
РезультатЗапроса = Запрос3.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = «Не хватает » + Строка(- ВыборкаДетальныеЗаписи.КоличествоОстаток) +
» единиц материала «»» + ВыборкаДетальныеЗаписи.Материал + «»»» +
» из набора свойств «»» + ВыборкаДетальныеЗаписи.НаборСвойств + «»»»;
Сообщение.Сообщить();
Отказ = Истина;
КонецЦикла;
КонецЕсли;
#КонецОбласти
КонецПроцедуры
ОбработкаУдаленияПроведения
Предопределенная процедура обработки
удаления проведения документа.
Синтаксис:
ОбработкаУдаленияПроведения()
Англоязычный синоним:
UnPostingProcess
Описание:
Процедура ОбработкаУдаленияПроведения
— предопределенная процедура. Она
не является встроенной процедурой
языка. Для нее определено только
название и синтаксис. Тело процедуры
должно быть написано разработчиком
конфигурации в Модуле документа (см.
«Виды программных модулей»). Вызов
процедуры ОбработкаУдаленияПроведения
производится в системе 1С:Предприятие
неявно при отмене проведения документа
или при удалении проведенных документов
в любом режиме — интерактивно или
программно. (см. СделатьНеПроведенным,
Удалить).
Замечание.
В предопределенных процедурах
ОбработкаПроведения
и ОбработкаУдаленияПроведения
система 1С:Предприятие сама выполняет
все действия через транзакцию (см.
«Процедуры работы с транзакциями»),
поэтому никаких специальных действий
по обработке транзакций в этих
предопределенных процедурах предпринимать
не нужно.
Если в данной предопределенной
процедуре установить статус возврата
— 0 (например, если данному пользователю
нельзя отменять проведение документа)
то отмена проведения документа не будет
выполнена и будет отменена системная
транзакция.
Замечание.
В предопределенных процедурах
ОбработкаУдаленияПроведения
и ОбработкаПроведения
нельзя использовать элементы интерактивного
управления (например, операторы
Предупреждение,
Вопрос,
ВвестиЧисло
и т. п.), т. к. в этом случае при открытой
транзакции система ожидает отклика
пользователя, а все остальные
пользователи ждут завершения транзакции
(в результате документы у всех
остальных пользователей в этот момент
не могут проводиться). Если в
конфигурации необходимо при проведении
документа выдавать пользователю
некоторые сообщения, то следует
использовать операторы Сообщить
или Состояние.
Данная предопределенная процедура
может располагаться только в Модулях
документов (см. «Виды программных
модулей»).
Пример:
Процедура
ОбработкаУдаленияПроведения()
//
Процедура выполняется при отмене
проведения
// или
удалении документа
//
Сотрудник — это реквизит документа
СпрСотрудники.НайтиЭлемент(Сотрудник);
// если
нашли сотрудника…
Если
СпрСотрудники.Выбран() = 1 Тогда
//
СтРасч — это реквизит документа
СпрСотрудники.НайтиЭлемент(СтРасч);
ВозвратРасч
= 0;
Если
СпрСотрудники.Выбран() = 1 Тогда
//
если старый расчетчик еще есть — откатим!
ВозвратРасч
= 1;
КонецЕсли;
СпрСотрудники.НайтиЭлемент(Сотрудник);
Если
ВозвратРасч = 1 Тогда
СпрСотрудники.Родитель
= СтРасч;
КонецЕсли;
СпрСотрудники.Записать();
КонецЕсли;
КонецПроцедуры
См. также:
СтатусВозврата,
СделатьНеПроведенным,
Удалить
АрхивироватьДокумент
Предопределенная процедура обработки
архивирования документа.
Синтаксис:
АрхивироватьДокумент()
Англоязычный синоним:
ArchiveDocument
Описание:
Вызов процедуры АрхивироватьДокумент
производится в системе 1С:Предприятие
неявно в процессе смены расчетного
периода журнала расчетов «вперед»
(т. н. архивация данных расчета), если
в журнале расчетов содержатся записи,
порожденные данным документом.
Тело процедуры должно быть
написано разработчиком конфигурации
в Модуле документа, вызываемом в
конфигураторе: Документ — Редактировать
— Модуль документа.
Пример:
Процедура
АрхивироватьДокумент()
//
Процедура выполняется при архивации
документа расчета
ЖР =
СоздатьОбъект(«ЖурналРасчетов.Зарплата»);
Если
Окончание > ЖР.КонецТекущегоПериода()
Тогда
Зарегистрировать(ТекущийДокумент());
КонецЕсли;
КонецПроцедуры
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
20.03.2015288.77 Кб317.doc
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Сообщение было отмечено sokol566535 как решение
