|   |   | 
| 
 | Запись из формы списка | ☑ | ||
|---|---|---|---|---|
| 0
    
        RogerRU 03.10.14✎ 16:28 | 
        Есть форма списка справочника
 при попытке программно записать данные в справочник: Товар = Справочники.ТоварыВИнтернетМагазине.Выбрать(); Пока Товар.Следующий() Цикл ЗаписатьТоварНаСервер(Товар); ТоварОб = Товар.ПолучитьОбъект(); ТоварОб.Синхронизированно = Истина; // меняем реквизит ТоварОб.Записать(); // здесь ошибка КонецЦикла; получаю ошибку: {Справочник.ТоварыВИнтернетМагазине.Форма.ФормаСписка(1203)}: Ошибка при вызове метода контекста (Записать): Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)! ТоварОб.Записать(); Предполагаю, что ошибка из за того, что справочник открыт и формой списка и при попытке записать. Как можно попытаться обойти проблему. Спасибо. | |||
| 1
    
        butterbean 03.10.14✎ 16:30 | 
        что за ЗаписатьТоварНаСервер() ??     | |||
| 2
    
        RogerRU 03.10.14✎ 16:31 | 
        (1) Моя внутренняя процедура     | |||
| 3
    
        фобка 03.10.14✎ 16:32 | 
        Сообщить(товар.получитьобъект());     | |||
| 4
    
        Nenaviwu1c20 03.10.14✎ 16:35 | 
        Твоя внутренняя процедура возвращает тебе пустую ссылку     | |||
| 5
    
        Килограмм 03.10.14✎ 16:36 | 
        Скорее всего твоя процедура меняет объект, сохранят, в итоге не соответствие версий     | |||
| 6
    
        Килограмм 03.10.14✎ 16:37 | 
        (5) хотя не, я ошибся     | |||
| 7
    
        RogerRU 03.10.14✎ 16:38 | 
        (4) Да она вообще ничего не возвращает, она пишет данные на инетсервер не меняя данных, она тут вообще не причем, ее можно вычеркнуть     | |||
| 8
    
        DmitrO 03.10.14✎ 16:39 | 
        Ошибка из-за того что этот товар был записан другим сеансом в промежуток времени между моментами выполнения строки кода:
 ТоварОб = Товар.ПолучитьОбъект(); и строки кода: ТоварОб.Записать(); Открытая форма списка текущего сеанса тут не причем. | |||
| 9
    
        Килограмм 03.10.14✎ 16:40 | 
        (7) уверен? Пробовал прогонять код с закоменченой процедурой?     | |||
| 10
    
        RogerRU 03.10.14✎ 16:43 | 
        (9) Да, заменил на
 ЗаписатьТоварНаСервер(Товар); ТоварОб = Товар.ПолучитьОбъект(); ТоварОб.Синхронизированно = Истина; ТоварОб.Записать(); Разницы - никакой | |||
| 11
    
        ВРедная 03.10.14✎ 16:46 | 
        Что происходит в "ПриЗаписи"?     | |||
| 12
    
        ВРедная 03.10.14✎ 16:46 | 
        или "ПередЗаписью"     | |||
| 13
    
        RogerRU 03.10.14✎ 16:49 | 
        (12) Не понял?
 Если ты имеешь в виду события формы списка, то ничего они пустые | |||
| 14
    
        ВРедная 03.10.14✎ 17:04 | 
        Я имею в виду соответствующие процедуры модуля объекта Товар     | |||
| 15
    
        RogerRU 03.10.14✎ 17:10 | 
        (14) Они пустые, т.е. по дефолту.
 Я почти уверен, что проблема в том, что стандартная форма списка справочника блокирует справочник на запись | |||
| 16
    
        DmitrO 03.10.14✎ 17:19 | 
        (15)
 Ловим таракана, свистим - он убегает. Ловим таракана, отрываем ему ноги, свистим - он не убегает. Вывод: таракан без ног не слышит! | |||
| 17
    
        RogerRU 03.10.14✎ 17:21 | 
        (16) Остроумно, но не по делу     | |||
| 18
    
        DmitrO 03.10.14✎ 17:22 | 
        (17)по делу было 40 минут назад     | |||
| 19
    
        ВРедная 03.10.14✎ 17:26 | 
        (15) Т.е. ты хочешь сказать, что при открытой форме списка нельзя нажать кнопку "Добавить" заполнить элемент справочника и записать его?
 Вообще отладчик в руки и ходи смотри, чем там изменялся твой объект. | |||
| 20
    
        RogerRU 03.10.14✎ 17:27 | 
        (18) если имеется в виду что по делу это (8) так вот нет.
 Код: ТоварОб = Товар.ПолучитьОбъект(); ТоварОб.Синхронизированно = Истина; ТоварОб.Записать(); Ничего не меняет | |||
| 21
    
        RogerRU 03.10.14✎ 17:30 | 
        (19) Я хочу сказать что в форме списка способ изменения данных через ПолучитьОъект() не работает (или я что то не так делаю) и прошу совета как это обойти/делать правильно     | |||
| 22
    
        RogerRU 04.10.14✎ 12:31 | 
        Вообщем разобрался.
 Ошибка была в том, что я пытался записать в открытую выборку Надо было сделать запрос потом .Выгрузить(), ну и далее как обычно. | |||
| 23
    
        Килограмм 06.10.14✎ 10:08 | 
        (22) эх, жаль что иногда ошибки так туманно описывает 1С, из одного описания и не въедешь, что дело было в этом.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |