Имя: Пароль:
1C
 
Как избавиться от ошибки
,
0 LivingStar
 
06.06.19
15:22
{ОбщийМодуль.ОбщегоНазначенияУТКлиент.Модуль(1836)}: Ошибка при вызове метода контекста (Записать)
    Результат = Форма.Записать(ПараметрыЗаписи);
по причине:
Данные были изменены или удалены другим пользователем


После выполнения кода.


    Если Не Рез.Пустой() Тогда
        ОбъектЗаказПоставщику = Объект.Ссылка.ПолучитьОбъект();
        //
        Выборка = Рез.Выбрать();
        Пока Выборка.Следующий() Цикл
             Отбор = Новый Структура();
             Отбор.Вставить("Номенклатура", Выборка.Номенклатура);
             //
             НайденноеЗначение = ОбъектЗаказПоставщику["Товары"].НайтиСтроки(Отбор);
             Если НайденноеЗначение.Количество() > 0 Тогда
                 Сч = 0;
                 Пока НайденноеЗначение.Количество() > Сч Цикл
                     //Сообщить(НайденноеЗначение[Сч].Номенклатура);
                     НайденноеЗначение[Сч].ЦенаСравнения  = Выборка.Цена;
                     НайденноеЗначение[Сч].СуммаСравнения = НайденноеЗначение[Сч].Количество * НайденноеЗначение[Сч].ЦенаСравнения;
                     Сч = Сч + 1;
                 КонецЦикла;
             КонецЕсли;            
         КонецЦикла;
         ОбъектЗаказПоставщику.Записать(РежимЗаписиДокумента.Запись);
    КонецЕсли;
1 Tonik992
 
06.06.19
15:33
(0) Вы хотите сказать, что вы сначала:
Результат = Форма.Записать(ПараметрыЗаписи);

а потом где-то внутри для этого объекта выполняете:
ОбъектЗаказПоставщику = Объект.Ссылка.ПолучитьОбъект();
.....
ОбъектЗаказПоставщику.Записать(РежимЗаписиДокумента.Запись); ?

Ошибка очевидна
2 LivingStar
 
06.06.19
15:34
Подскажите пожалуйста как с этим быть?
При выполнении кода потом документ не записывается.
А при открыти повторно в нем есть все нужные данные!
Как нужно правильно делать?
3 novichok79
 
06.06.19
15:34
(0) перечитать объект из ссылки
4 Вафель
 
06.06.19
15:35
чтоб на форме отображать данные, не обязательно их в объект записывать
5 novichok79
 
06.06.19
15:35
так объекту надо сначала "реквизитформывзначение" сделать, тогда он из данныеформыструктура превращается в необходимый объект БД, далее уже с ним делать все операции
6 LivingStar
 
06.06.19
15:35
(3) вот эже

  ОбъектЗаказПоставщику = Объект.Ссылка.ПолучитьОбъект();
7 novichok79
 
06.06.19
15:36
ну и после записи - значениевреквизитформы
8 novichok79
 
06.06.19
15:36
дичь какая-то имхо
9 LivingStar
 
06.06.19
15:39
Как будет правильно?

    Если Не Рез.Пустой() Тогда
        ДокОбъект = РеквизитФормыВЗначение("Объект");
        //ОбъектЗаказПоставщику = Объект.Ссылка.ПолучитьОбъект();
        //
        Выборка = Рез.Выбрать();
        Пока Выборка.Следующий() Цикл
             Отбор = Новый Структура();
             Отбор.Вставить("Номенклатура", Выборка.Номенклатура);
             //
             НайденноеЗначение = ДокОбъект["Товары"].НайтиСтроки(Отбор);
             Если НайденноеЗначение.Количество() > 0 Тогда
                 Сч = 0;
                 Пока НайденноеЗначение.Количество() > Сч Цикл
                     //Сообщить(НайденноеЗначение[Сч].Номенклатура);
                     НайденноеЗначение[Сч].ЦенаСравнения  = Выборка.Цена;
                     НайденноеЗначение[Сч].СуммаСравнения = НайденноеЗначение[Сч].Количество * НайденноеЗначение[Сч].ЦенаСравнения;
                     Сч = Сч + 1;
                 КонецЦикла;
             КонецЕсли;            
         КонецЦикла;
         //
         ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
         //ОбъектЗаказПоставщику.Записать();
    КонецЕсли;
10 novichok79
 
06.06.19
15:41
(9) Андрей Анатольевич, попробуйте запустите код, вы же работали программистом и дорабатывали ERP 2. погуглите сначала в конфигурации, прежде чем задавать такую элементарщину на форуме.