Имя: Пароль:
1C
 
Проведение в режиме ОбменДанными
,
0 Franchiser
 
гуру
03.11.18
19:16
Почему нельзя выполнить такой код:
Док.ОбменДанными.Загрузка = Истина;
Док.Записать(РежимПроведенияДокумента.Проведение);

Если же просто Записать() сколько сначала сделает, то работает
1 yzimin
 
03.11.18
19:21
Видимо программист позаботился о своей конфигурации от вас
2 Franchiser
 
гуру
03.11.18
19:27
В отладчике отловить даже не удается почему возникает ошибка. Нигде отказ не виден
3 Serg_1960
 
03.11.18
19:59
(2) Почему, почему... потому, что это азбука - отключение бизнес-логики объекта:
Процедура ОбработчткХХХОбъекта(Отказ)
Если ОбменДанными.Загрузка Тогда
     Возврат;
КонецЕсли;
...
4 Serg_1960
 
03.11.18
20:03
(0) Если хочешь проводить, то для БСП можно, но это извращение, указать:

Док.ОбменДанными.Загрузка = Истина;
Док.ДополнительныеСвойства.Вставить("ОтключитьМеханизмРегистрацииОбъектов");
Док.Записать(РежимПроведенияДокумента.Проведение);
5 Cyberhawk
 
03.11.18
21:05
Перепись наркоманов? В режиме загрузки провести нельзя
6 Cyberhawk
 
03.11.18
21:05
Это платформенное ограничение
7 Cyberhawk
 
03.11.18
21:06
Еще и неправильно использовано перечисление РежимПроведенияДокумента...
8 Serg_1960
 
04.11.18
12:49
(5) Имхо, чистое ламповое звучание платформы в БСП испортили программными фильтрами, правилами и прочим "расширенным" самого понятия РИБ :(

Не знаю зачем так, но уже можно штатно использовать "конвертацию" объектов при обмене объектами в РИБ-базе за счет подключения обработчиков объектов с бизнес-логикой подчиненного узла. Да, да вы не ослышались, теперь в РИБ одни и те-же объекты, в принципе, могут не соответствовать друг другу по узлам.
9 Cyberhawk
 
04.11.18
13:02
(8) "испортили ... самого понятия РИБ" // Оно и никогда не означало равенство как объектов БД, так и логики их обработки
10 Aleksey
 
04.11.18
14:00
(8) Информационная система, состоящая из нескольких информационных баз 1С:Предприятия (узлов), обладающих идентичными конфигурациями и обменивающихся данными в офф-лайн режиме. Характеризуется жесткой иерархической структурой узлов и наличием одного главного узла.
(с) https://its.1c.ru/db/v8devgloss#content:111:hdoc
11 Franchiser
 
гуру
04.11.18
14:21
(7) опечатался: РежимЗаписиДокумента
12 Franchiser
 
гуру
04.11.18
14:23
(4) у меня цель чтобы в обработчике ПередЗаписью() и ПриЗаписи() отключить различные проверки без доработки модуля , но проведение чтобы выполнялось штатно. Все это для ускорения записи и проведения.
13 Cyberhawk
 
04.11.18
14:26
(12) Штатное проведение в любом случае будет проходить через указанные тобою обработчики.
У тебя два пути оптимизации: либо использовать отложенное проведение (типовые так и делают), либо использовать доп. свойства, _частично_ отключающе логику некоторых проверок.
Одновременно и проводить при загрузке, и отключить _всю_ логику (завязавшись на режим загрузки, он же ОбменДанными.Загрузка = Истина) не получится.
14 Cyberhawk
 
04.11.18
14:27
Но походу раз приходится тебе это тут расписывать, то (5) и (6) ты не проникся, а значит не в коня корм
15 Franchiser
 
гуру
04.11.18
14:29
(14) Вообще то цель было понять где написано про это платформенные ограничение? Ссылка есть на ИТС?
16 Cyberhawk
 
04.11.18
14:55
О боже
17 Serg_1960
 
06.11.18
01:37
(9) Я не буду говорить, что Вы местами не правы, я только напомню: данные, поступающие с обменом, принимаются в базу "как есть", без каких-либо изменений, без какого-либо анализа, проверок и других дополнительных условий.

Т.е можно сказать однозначно, что "логика их обработки" всё таки есть и она - единая, неделимая и соответствует тому узлу, который добавил/изменил эти данные.

Надеюсь я донёс ло своих оппонентов вот такой внутриплатформенный "нюанс"? А также то, что теперь это "не всё так однозначно"(цы):
https://its.1c.ru/db/v8std#content:-2145782874:hdoc
18 GANR
 
06.11.18
01:48
(12) Допустим, у Вас не хватает товара на складе, а документ реализация проведется. Вы представляете что будет, если 1С будет разрешать проводить документы без проверки? Проведенный документ, значит проверенный документ.
19 Cyberhawk
 
06.11.18
07:57
(17) По твоей же ссылке пункт 4 (и до конца статьи) противоречит тому, что ты написал в своем первом предложении:
"данные, поступающие с обменом, принимаются в базу "как есть", без каких-либо изменений, без какого-либо анализа, проверок и других дополнительных условий" // Конечно же это не так
20 Web00001
 
06.11.18
08:15
(8)Можно использовать, можно не использовать. Что в этом плохого? Лучше иметь возможность, чем не иметь?
21 Индиго
 
06.11.18
08:25
(0)Помоему запрет проведения при ОбменДанными.Загрузка=Истина прописан на уровне платформы
22 Serg_1960
 
06.11.18
09:23
(19) "Конечно же это не так" - а давайте не будем обобщать и отделим мух от котлет - платформу от конфигурации:

"Это необходимо для того, чтобы никакая бизнес-логика объекта не выполнялась при записи объекта через механизм обмена данными, поскольку она уже была выполнена для объекта в том узле, где он был создан. В этом случае все данные загружаются в ИБ «как есть», без искажений (изменений), проверок или каких-либо других дополнительных действий, препятствующих загрузке данных."
23 Cyberhawk
 
06.11.18
09:46
(22) Хз о каком отделении ты толкуешь, Я платформу нигде и не подразумеваю
24 Serg_1960
 
06.11.18
09:52
(23) См. (6)
25 Cyberhawk
 
06.11.18
10:15
(24) Ну так посмотри и предваряющее сообщение (5). Вроде же не это уже обсуждаем?
26 Serg_1960
 
06.11.18
11:22
Не знаю что "мы" обсуждаем :), но я всего лишь хотел уточнить один нюанс современных конфигураций.

Если раньше во время обмена при "ОбменДанными.Загрузка = Истина" конфигурации однозначно поддерживали платформу и отключали логику бизнес процессов ("Процедура ПередЗаписью(Отказ) Если ОбменДанными.Загрузка Тогда
     Возврат... и т.д.", то теперь, если автор захочет невозможного - проведение во время обмена - есть возможность штатно включить исполнение обработчиков. Например, в ЗУП 3.1:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(ЭтотОбъект) Тогда
        Возврат;
    КонецЕсли;
...
КонецПроцедуры

Функция ОтключитьБизнесЛогикуПриЗаписи(Знач Объект) Экспорт
    
    Возврат Объект.ОбменДанными.Загрузка И (НЕ Объект.ДополнительныеСвойства.Свойство("ПроверятьБизнесЛогикуПриЗаписи"));
        
КонецФункции
27 Cyberhawk
 
06.11.18
15:32
(26) Так очевидно же, что этот "нюанс" не для случаев, когда надо провести или отменить проведение, сделан
28 Serg_1960
 
06.11.18
20:18
(27) Да, согласен, но никто и ничто не мешает это использовать, в том числе для "Проведение в режиме ОбменДанными"(цы).
29 Cyberhawk
 
06.11.18
20:37
(28) Конкретно эта залипуха "ОтключитьБизнесЛогикуПриЗаписи" никак в сценарии проведения документа не может быть использована, т.к. первая половинка условия (слева от И) будет всегда "Ложь".
30 d4rkmesa
 
06.11.18
20:48
(0) Кстати, в новых конфах зачастую и так проведение идет без значительной части проверок, которые работают в интерактивном режиме. Заметил еще, когда первые переходы на БП 3 пошли, делаешь правила через КД2, проведение обычное через постобработчик, документ не дозаполнен, но при этом проведен. Поначалу удивляло, по сравнению с БП2.
31 hhhh
 
06.11.18
20:53
в типовых правилах вроде особо не парятся с этим, просто пишут

Объект.Записать();

и

Объект = Объект.Ссылка.ПолучитьОбъект()
32 Cyberhawk
 
06.11.18
20:54
(31) Это где в типовых пишут "Записать"? Что за жесть