|
|
| ||
Zareshivatel 10.10.16 - 20:36 | Регистр независимый, периодический. Возникает ошибка времени выполнения: ошибка при вызове метода контекста(записать) в модуле...
Вот такой код: Попытка НачатьТранзакцию(); НаборЗаписей = РегистрыСведений.озм_ИсполнителиЗаказов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Заказ.Установить(Заказ); НаборЗаписей.Отбор.Исполнитель.Установить(Исполнитель); НаборЗаписей.Отбор.Этап.Установить(Этап); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество() = 0 Тогда НовыйИсполнитель = НаборЗаписей.Добавить(); НовыйИсполнитель.Заказ = Заказ; НовыйИсполнитель.Исполнитель = Исполнитель; НовыйИсполнитель.Комментарий = Комментарий; НовыйИсполнитель.Этап = Этап; ИначеЕсли НаборЗаписей.Количество() = 1 Тогда НовыйИсполнитель = НаборЗаписей[0]; НовыйИсполнитель.Комментарий = Комментарий; ИзменитьСуществующуюЗадачу(Заказ, Исполнитель); КонецЕсли; НаборЗаписей.Записать(); ЗафиксироватьТранзакцию(); Исключение ОтменитьТранзакцию(); КонецПопытки; Ошибка возникает на строк НаборЗаписей.Записать(); Все отборы и присваиваемые значения по типам соответствуют измерениям (заказ, этап, исполнитель) и реквизиту (комментарий). В чем косяк, товарищи? | ||
Zareshivatel 1 - 10.10.16 - 20:37 | Если это вдруг важно: сейчас регистр пустой | ||
shuhard 2 - 10.10.16 - 20:43 | |||
RomanYS 3 - 10.10.16 - 20:43 | Викторина, угадай какой текст ошибки у ТС. | ||
Zareshivatel 4 - 10.10.16 - 20:48 | (3) я же написал "ошибка времени выполнения: ошибка при вызове метода контекста(записать) в модуле...". Там дальше ссылка на модуль и строку кода.
"По причине..." - этого нет. | ||
RomanYS 5 - 10.10.16 - 20:50 | (4) "Там дальше ссылка на модуль и строку кода. "
Так открой - ошибка в той самой строчке кода. | ||
Zareshivatel 6 - 10.10.16 - 20:50 | (2) Как же я уберу "исключение", если у меня вверху есть "Попытка"?) Или ты вообще предлагаешь эту конструкцию убрать? | ||
hhhh 7 - 10.10.16 - 20:51 | (4) ну проверь все процедуры ПередЗаписью и ПриЗаписи. Если их меньше десяти, можешь их сюда выложить. | ||
Zareshivatel 8 - 10.10.16 - 20:52 | |||
Zareshivatel 9 - 10.10.16 - 20:56 | (7) Ошибка возникает при записи в регистр сведений. Это модуль формы | ||
hhhh 10 - 10.10.16 - 20:59 | (9) какая разница? Вс1 равно по-полной вызываются всен 70 процедур при записи и перед записью. Или сколько их у вас? | ||
Zareshivatel 11 - 10.10.16 - 21:01 | (10) 0, например :) | ||
hhhh 12 - 10.10.16 - 21:03 | (11) ну если ты записываешь регистр, значит должна вызываться процедура при записи этого регистра. Правильно? | ||
RomanYS 13 - 10.10.16 - 21:03 | (8) тогда смотри модуль объекта и лови отладчиком Отказ = Истина в одном из обработчиков (перед/при записи) | ||
Zareshivatel 14 - 10.10.16 - 21:09 | (13) Это самописная обработка, модуль объекта пустой
(12) Регистр я сам создал, нет было у меня в модуле набора записей ничего. Подумал, что, быть может, обязано быть, скопировал процедуру "перед записью" из другого РС: Процедура ПередЗаписью(Отказ, Замещение)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
КонецПроцедуры
ничего не изменилось | ||
Zareshivatel 15 - 10.10.16 - 21:10 | Раньше подобные вещи делал уже - ошибок не было. Да и где им тут взяться, казалось бы. Единственный нюанс: у меня нет ресурсов в этом регистре. Как-то может влиять? | ||
hhhh 16 - 10.10.16 - 21:11 | (14) не у обработки. У регистра смотри. | ||
RomanYS 17 - 10.10.16 - 21:13 | (14) у регистра конечно. Может он(регистр) в какие-то общие подписки попал | ||
hhhh 18 - 10.10.16 - 21:13 | (14) подписки на события все проверь | ||
Zareshivatel 19 - 10.10.16 - 21:13 | (16) я и говорю: регистр этот мой. Модуль менеджера и модуль набора записей у него пустой. Соответственно, нет там процедур, связанных с записью | ||
RomanYS 20 - 10.10.16 - 21:18 | (19) остановись отладчиком на НаборЗаписей.Записать(); и включи замер производительности - увидишь весь код, который исполняется при обработке записи | ||
Zareshivatel 21 - 10.10.16 - 21:23 | (20) Ага. Ну вот смотрите:
Процедура ПередЗаписьюОбщихДанных(Объект, Отказ) Если Объект.ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; ТолькоПросмотр = Ложь; АвтономнаяРаботаСлужебный.ОпределитьВозможностьИзмененияДанных(Объект.Метаданные(), ТолькоПросмотр); Если ТолькоПросмотр Тогда СтрокаОшибки = НСтр("ru = 'Изменение неразделенных данных (%1), загружаемых из приложения, в Автономном рабочем месте запрещено. |Обратитесь к администратору.'"); СтрокаОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаОшибки, Строка(Объект)); ВызватьИсключение СтрокаОшибки; КонецЕсли; КонецПроцедуры И процедура из АвтономнаяРаботаСлужебный: // Определяет возможность внесения изменений в объект // Объект нельзя записать в Автономном рабочем месте, если он одновременно соответствует следующим условиям: // 1. Это автономное рабочее место. // 2. Это неразделенный объект метаданных. // 3. Этот объект входит в состав плана обмена автономной работы. // 4. Не входит в список исключений. // // Параметры: // ОбъектМетаданных - Метаданные проверяемого объекта // Только просмотр - Булево - Если Истина, то объект доступен только для просмотра. // Процедура ОпределитьВозможностьИзмененияДанных(ОбъектМетаданных, ТолькоПросмотр) Экспорт УстановитьПривилегированныйРежим(Истина); ТолькоПросмотр = ЭтоАвтономноеРабочееМесто() И (Не ОбщегоНазначенияПовтИсп.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных.ПолноеИмя(), ОбщегоНазначенияПовтИсп.РазделительОсновныхДанных()) И Не ОбщегоНазначенияПовтИсп.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных.ПолноеИмя(), ОбщегоНазначенияПовтИсп.РазделительВспомогательныхДанных())) И Не ОбъектМетаданныхЯвляетсяИсключением(ОбъектМетаданных) И Метаданные.ПланыОбмена[ПланОбменаАвтономнойРаботы()].Состав.Содержит(ОбъектМетаданных); КонецПроцедуры В переменной ТолькоПросмотр возвращается "Ложь". То есть вроде бы все норм | ||
Zareshivatel 22 - 10.10.16 - 21:24 | Блин, что же так криво вставляет код-то...извиняюсь | ||
Zareshivatel 23 - 10.10.16 - 21:26 | (18) Как это сделать, если в erp подписок не меньше сотни?) | ||
Zareshivatel 24 - 10.10.16 - 21:31 | Мужики, отбой))) | ||
Zareshivatel 25 - 10.10.16 - 21:32 | Я вот что-то предполагал, что период автоматически система должна поставить. А нет - попробовал вручную текущую дату присвоить, прокатило.
Спасибо! | ||
RomanYS 26 - 10.10.16 - 21:32 | (23) они все должны попасть в отладку | ||
RomanYS 27 - 10.10.16 - 21:33 | (25) и система ни слова не сказала по пустой период - не верю) | ||
Zareshivatel 28 - 10.10.16 - 21:40 | |||
DrShad 29 - 10.10.16 - 21:42 | (28) наборы записей в модуле формы!? ужас | ||
RomanYS 30 - 10.10.16 - 21:43 | (28) у тебя 1с плохая)), у меня говорит {Обработка.Обработка5.Форма.Форма.Форма(6)}: Ошибка при вызове метода контекста (Записать) Набор.Записать();по причине: Запись не верна! Период не может быть пустым!: РегистрСведений3: 01.01.0001, sdsd (Регистр сведений: РегистрСведений3; Номер строки: 1) Рекламное место пустует | ||
Zareshivatel 31 - 10.10.16 - 21:46 | |||
Zareshivatel 32 - 10.10.16 - 21:47 | Не прибавится* Брр, пора спать идти) | ||
RomanYS 33 - 10.10.16 - 21:58 | а если после "исключение" вставить
Сообщить(ОписаниеОшибки());
??? | ||
Zareshivatel 34 - 11.10.16 - 06:29 | (33) Да, тогда то, что у тебя)) |
|
Список тем форума
|