Вход | Регистрация



Проведение в режиме ОбменДанными

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

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

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

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

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

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

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

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

и

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует