|
Запись из формы списка | ☑ | ||
---|---|---|---|---|
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С, из одного описания и не въедешь, что дело было в этом.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |