Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 06:38

Пропало содержимое документа

Автор Luzer1C, 05 авг 2015, 12:15

0 Пользователей и 1 гость просматривают эту тему.

Luzer1C

Всем привет.
Есть документ Перемещение товаров. Документ совсем не старый, от 22 июня.
Содержимое документа куда-то пропало, т.е. содержимое таб части товары. А проводки по регистрам сохранились. Т.к. его когда-то проводили.
Как такое может быть?
Халамбалам.

vitasw

1. Обмены
2. Обработка справочников и документов.
В режиме ОбменДанными.Загрузка=Истина делать можно что угодно без перепроведения.

cska-fanat-kz

обработку написали, очистили ТЧ и записали без проведения.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Luzer1C

Так а в модуле объекта ПередЗаписью уже было прописано:
   Если ОбменДанными.Загрузка  Тогда
Возврат;
КонецЕсли;

ПриЗаписи - тоже самое прописано.
Халамбалам.

vitasw

"В огороде бузина, а в Киеве дядька"
Когда происходит обмен данными или при использовании обработки программно устанавливается:
<ДокументТакой-то>.ОбменДанными.Загрузка=Истина;
<ДокументТакой-то>.Записать();
В этом случае большинство проверок не производится, перепроведение не выполняется.

cska-fanat-kz

vitasw, хотелось уточнить, коллега...
никогда не сталкивался...
что правда "ОбменДанными.Загрузка = ИСТИНА" влияет на перепроведение?!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Железобенно.
Очень полезная штука, когда допиливаешь живую конфу и есть необходимость дозаполнить объекты без перепроведения.
С другой стороны имеешь эти же грабли, когда происходит обмен данными. Например натупил в правилах обмена и выгружаешь признак "Проведен". В приемнике документ имеет признак "проведен" и при этом не имеет движений.
На проведение влияет/не влияет то как происходит запись объекта. Например:
1. Конструкция вида:
Документ.Записать();//без параметров будет вызывать действия в зависимости от того в каком режиме находится существующий документ. Если проведен - то перепроведение, если записан, - то просто запись. Для новых объектов - проведение.
2. Конструкция вида
Документ.ОбменДанными.Загрузка=Истина;
Документ.Записать();
Однозначно вызывает только запись документа без перепроведения, независимо от того в каком состоянии был документ перед этим.

Добавлено: 05 авг 2015, 14:37


+ В режиме ОбменДанными.Загрузка=Истина :
- для новый объектов не генерится номер/код
- не производятся проверки заполнения (даже если свойство реквизита "проверка заполнения" стоит "вызывать ошибку".)
- по моему даже не проверяется заполненность владельца для подчиненных справочников (не проверял).

cska-fanat-kz

Цитата: vitasw от 05 авг 2015, 14:271. Конструкция вида:
Документ.Записать();//без параметров будет вызывать действия в зависимости от того в каком режиме находится существующий документ. Если проведен - то перепроведение, если записан, - то просто запись. Для новых объектов - проведение.

простите конечно, но немного не вяжется с...

ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
Записать (Write)
Синтаксис:

Записать(<РежимЗаписи>, <РежимПроведения>)
Параметры:

<РежимЗаписи> (необязательный)

Тип: РежимЗаписиДокумента.
Позволяет выбрать один из возможных режимов записи.
Значение по умолчанию: Запись
<РежимПроведения> (необязательный)

Тип: РежимПроведенияДокумента.
Позволяет выбрать один из возможных режимов проведения.
Значение по умолчанию: Неоперативный
Описание:

Записывает документ в базу данных.

и тут ничего не сказано про "текущее состояние документа".
Т.е. если ничего не передавать или передать явно РежимЗаписиДокумента.Запись, то документ только запишется, но не (пере)проведется. Все время это используем для обработок которые должны подменить данные документа но не должны тронуть проводки...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Судя по статьям в инете...
"...ОбменДанными.Загрузка=Истина" влияет исключительно на проверки при записи объекта (например отключает контроль уникальности кодов, номеров и т.д.)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

vitasw

Хм. проверил на текущем релизе 8.2 - действительно не вызывает перепровдение. Тем не мение, уверен, что в более ранних версиях платформы такая конструкция вызывала перепроведение. Уже достаточно давно не использую метод Записать() без параметров в отсутствии "Загрузка=Истина". Поэтому однозначно сказать в каком релизе натыкался на эти грабли - не могу

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск