Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Ошибка "Выполнение операции невозможно, так как строка была удалена"

Ошибка "Выполнение операции невозможно, так как строка была удалена"
Я
   alexshape
 
18.12.17 - 11:23
Привет всем, такая вот ошибка, и все это после того как я в цикле перебираю строки в модуле объекта документа, и в определенный момент выполняю метод Прочитать(); С чем может быть связанно?
 
 
   asady
 
1 - 18.12.17 - 11:26
(0) код покажи - кривой скорее всего
   Lexey_
 
2 - 18.12.17 - 11:26
(0) с тем, что строка не существует
   alexshape
 
3 - 18.12.17 - 11:28
   igorPetrov
 
4 - 18.12.17 - 11:29
(3) мдя...
   alexshape
 
5 - 18.12.17 - 11:30
(4) есть идеи?
   igorPetrov
 
6 - 18.12.17 - 11:31
(3) Что такое "Прочитать()"?
   alexshape
 
7 - 18.12.17 - 11:31
(6) ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
Прочитать (Read)
Синтаксис:

Прочитать()
Описание:

Считывает данные документа из базы данных.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Примечание:

Позволяет прочесть данные заново. Недопустим для нового объекта.
Пример:

РасходнаяНакладная.Прочитать();
   vde69
 
Модератор
8 - 18.12.17 - 11:31
(3) код следует постить СЮДА а не ссылку на картинку
   alexshape
 
9 - 18.12.17 - 11:32
(8) а какая разница?
   igorPetrov
 
10 - 18.12.17 - 11:32
(7) Ну и? Что написано в справке и что у тебя?
 
 Рекламное место пустует
   nordbox
 
11 - 18.12.17 - 11:33
Внимательно код читай
Что ты собралась ЧИТАТЬ???
   igorPetrov
 
12 - 18.12.17 - 11:33
(9) Потому, что твои картинки нах не нужны ни кому.
   alexshape
 
13 - 18.12.17 - 11:33
(10) Если ты что не напрямую, то я просто в модуле объекта выполняюсь
   vicof
 
14 - 18.12.17 - 11:33
"и в определенный момент выполняю метод Прочитать(); С чем может быть связанно?"
Ответ в вопросе.
   nordbox
 
15 - 18.12.17 - 11:34
ОбъектЗадача.Записать()
Прочитать()
Это что???
   igorPetrov
 
16 - 18.12.17 - 11:34
(13) И что из этого следует?
   igorPetrov
 
17 - 18.12.17 - 11:34
(13) Читай справку к "Прочитать()"
   alexshape
 
18 - 18.12.17 - 11:36
(12) Ты умеешь нормально выражать свои мысли?  Я спросил в чем разница между картинкой и текстом, информативность одинаковая.

(11) В модуле объекта документа, я СОБРАЛСЯ читать документ
   alexshape
 
19 - 18.12.17 - 11:37
(15) Это я перечитываю документ, на случай если в задаче я изменю его, перезапишу и тд
   nordbox
 
20 - 18.12.17 - 11:39
ОбъектЗадача.Записать()
ОбъектЗадача.Прочитать()
а чо не вот так?
   alexshape
 
21 - 18.12.17 - 11:41
(20) Я нахожусь в модуле объекта Документа, и мне надо прочитать документ, а не задчу
   DmitrO
 
22 - 18.12.17 - 11:42
(0)Это происходит потому, что при вызове Прочитать() перечитываются и пересоздаются в памяти все данные документа, в том числе и ТЧ, которую перебираешь.

Комиссия премии Дарвина берет на карандашик программистов, которые пишут такой код.
   Табуретко
 
23 - 18.12.17 - 11:45
нам за паяльником сходить или выложите весь код в студию?
   igorPetrov
 
24 - 18.12.17 - 11:46
(21) Покажи пример вызова "Прочитать()" из справки.
   alexshape
 
25 - 18.12.17 - 11:48
(23)  


Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    НужноЗаписать=Ложь;
    Если Состояние=Перечисления.CRM_ТипыСостоянийСобытий.Завершено тогда
        Для каждого стр Из Распоряжения Цикл
            
            Если стр.Задача.Выполнена=Ложь Тогда
                
                Отказ = Истина;
                Сообщение = Новый СообщениеПользователю;
                Сообщение.Текст = "Для завершения все задачи в списке должны быть выполнены!";
                Сообщение.Поле = "";
                Сообщение.УстановитьДанные(ЭтотОбъект);
                Сообщение.Сообщить();
                прервать;
            КонецЕсли; 
            
        КонецЦикла; 
    ИначеЕсли Распоряжения.Количество() > 0 
        И     ( Состояние = Перечисления.CRM_ТипыСостоянийСобытий.Запланировано 
        ИЛИ Состояние = Перечисления.CRM_ТипыСостоянийСобытий.ВРаботе)Тогда    
        
        Для каждого стр  Из Распоряжения Цикл
            
            Если ЗначениеЗаполнено(стр.Задача) Тогда
                
                Если     
                    НЕ стр.Задача.ПринятаКИсполнению 
                    И НЕ стр.Задача.Выполнена  
                    И     (стр.Задача.Описание<>стр.Описание 
                    ИЛИ стр.Задача.Исполнитель<>стр.Исполнитель 
                    ИЛИ стр.Задача.ДатаНачала<>стр.ДатаНачала 
                    ИЛИ стр.Задача.СрокИсполнения<>стр.ДатаОкончания
                    ИЛИ стр.Задача.Важность<>стр.Важность 
                    ИЛИ стр.Задача.Сложность<>стр.Сложность)  Тогда
                    
                    ОбъектЗадача = стр.Задача.ПолучитьОбъект();
                    ОбъектЗадача.Предмет                    = Ссылка;
                    ОбъектЗадача.ПредметСтрокой                = CRM_БизнесПроцессыИЗадачиСервер.ПредметСтрокой(Ссылка);
                    ОбъектЗадача.Автор                        = ПараметрыСеанса.ТекущийПользователь;
                    ОбъектЗадача.Исполнитель                = стр.Исполнитель;
                    ОбъектЗадача.Наименование                = "Распоряжение " + объектЗадача.ПредметСтрокой;
                    ОбъектЗадача.Дата                        = ТекущаяДата();
                    ОбъектЗадача.ДатаНачала                    = стр.ДатаНачала;
                    ОбъектЗадача.Описание                    = стр.Описание;
                    ОбъектЗадача.CRM_Личная                    = Истина;
                    ОбъектЗадача.Важность                   = стр.Важность;
                    ОбъектЗадача.Сложность                    = Стр.Сложность;
                    ОбъектЗадача.СрокИсполнения             = стр.ДатаОкончания;
                    Попытка
                        ОбъектЗадача.Записать();
                    Исключение
                        Отказ=Истина;
                        Сообщение = Новый СообщениеПользователю;
                        Сообщение.Текст = "Не удалось обновить информацию в задаче из "+Строка(стр.НомерСтроки)+" строки!";
                        Сообщение.Поле = "";
                        Сообщение.УстановитьДанные();
                        Сообщение.Сообщить(); 
                    КонецПопытки;    
                КонецЕсли;
                
                продолжить;
                
            КонецЕсли; 
            
            ОбъектЗадача = Задачи.ЗадачаИсполнителя.СоздатьЗадачу();
            ОбъектЗадача.Предмет                    = Ссылка;
            ОбъектЗадача.ПредметСтрокой                = CRM_БизнесПроцессыИЗадачиСервер.ПредметСтрокой(Ссылка);
            ОбъектЗадача.Автор                        = ПараметрыСеанса.ТекущийПользователь;
            ОбъектЗадача.Исполнитель                = стр.Исполнитель;
            ОбъектЗадача.Наименование                = "Распоряжение " + объектЗадача.ПредметСтрокой;
            ОбъектЗадача.Дата                        = ТекущаяДата();
            ОбъектЗадача.ДатаНачала                    = стр.ДатаНачала;
            ОбъектЗадача.Описание                    = стр.Описание;
            ОбъектЗадача.CRM_Личная                    = Истина;
            ОбъектЗадача.Важность                   = стр.Важность;
            ОбъектЗадача.Сложность                    = Стр.Сложность;
            ОбъектЗадача.СрокИсполнения             = стр.ДатаОкончания;
            
            ОбъектЗадача.АктивироватьИнтерактивно();
            Попытка
                ОбъектЗадача.Записать(); 
                Прочитать();
                стр = Распоряжения.Получить(ИндексСтроки);
                стр.Задача = ОбъектЗадача.Ссылка;
                НужноЗаписать=Истина;
            Исключение
                отказ = Истина;
                Сообщение = Новый СообщениеПользователю;
                Сообщение.Текст = "Не удалось создать задачу по "+Строка(стр.НомерСтроки)+" строке";
                Сообщение.Поле = "";
                Сообщение.УстановитьДанные();
                Сообщение.Сообщить();
            КонецПопытки;    
            
        КонецЦикла;
        
    КонецЕсли;
    
    Если НужноЗаписать Тогда    
        Записать(РежимЗаписиДокумента.Запись);
    КонецЕсли;
    
КонецПроцедуры
   alexshape
 
26 - 18.12.17 - 11:48
(24) Пример:

РасходнаяНакладная.Прочитать();
   alexshape
 
27 - 18.12.17 - 11:49
(24) И для чего этот пример?
   alexshape
 
28 - 18.12.17 - 11:50
(25)

стр = Распоряжения.Получить(ИндексСтроки);

на Это не обращайте внимания, это я начал заплатку ставить, оригинальный код без этой строки
   igorPetrov
 
29 - 18.12.17 - 11:52
(26) А у тебя, что написано?
   alexshape
 
30 - 18.12.17 - 11:53
(29) так я и так в модуле объекта, мне не нужна пресловутая "РасходнаяНакладная.", чтобы обратиться к . В это нет ошибки - это 100 %
   igorPetrov
 
31 - 18.12.17 - 11:57
(30) Что говорит отладчик когда ты останавливаешься на строке
"стр = Распоряжения.Получить(ИндексСтроки);" ?
   alexshape
 
32 - 18.12.17 - 11:59
(31) Это строка не в счет, это я начал код править и Вам скинул, без это строки код смотреть надо
   igorPetrov
 
33 - 18.12.17 - 12:00
(32) а какая в счет ? гадать будем?
 
 
   alexshape
 
34 - 18.12.17 - 12:01
(33) все остальное в счет, не надо гадать я еще в (28) это сказал
   igorPetrov
 
35 - 18.12.17 - 12:01
(34) если все не в счет, то где ошибка?
   igorPetrov
 
36 - 18.12.17 - 12:02
(34) и да, см (22) читай внимательно.
   igorPetrov
 
37 - 18.12.17 - 12:04
Интересные эти маленькие мальчики, которые не понимают основ и гнут пальчики свои. Типа крутые такие.
   nordbox
 
38 - 18.12.17 - 12:06
(37) У тебя тема как называется??
>>Ошибка "Выполнение операции невозможно, так как строка была удалена"
Может стоит мозги напрячь??


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует