|
Проведение в режиме ОбменДанными | ☑ | ||
---|---|---|---|---|
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) Это где в типовых пишут "Записать"? Что за жесть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |