Имя: Пароль:
1C
1С v8
Конвертация данных 2.1
,
0 MonteCarlo
 
18.09.19
15:49
Приветствую Вас, дорогие форумчане. Помоги, пожалуйста, советом ) Как в конвертации данных в правилах конвертации свойств, при передачи набора движений документа, передать этому набору элемент в дополнительные свойства? Задача собственно следующаяя. В базе приемнике, документ (Перенос данных) создается вместе с движениями от другого документа из базы Источника. В момент интерактивной записи этого регистра накопления, происходит запись в другой регистр сведений, неподчиненного регистратору. А если происходит запись в режиме обмена данными, то там перед записью стоит проверка

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

Хотелось бы эту проверку пройти. Для этого нужно, чтобы у Набора записей было дополнительное свойство "ПроверятьБизнесЛогикуПриЗаписи". Пробовал его добавлять в обработках ПКС, но не получается пока.
Буду благодарен любой помощи.
1 elCust
 
18.09.19
15:53
Обработчик ПослеЗагрузки, Объект уже создан и подготовлен, но еще не записан.
Там можно рукожопить.
2 MonteCarlo
 
18.09.19
15:56
(1) Если я правильно понял, то этот обработчик относится к документу. Как в нем обратиться к движениям документа, выгруженным вместе с ним? К сожалению такого обработчика в ПКС для набора движений нету.
3 Йохохо
 
18.09.19
16:02
бахнуть вне набора движений ВыгрузитьПоПравилу?
4 MonteCarlo
 
18.09.19
16:04
(3) Если вне набора движений, то есть вариант тот самый регистр сведений грузить отдельно, подменять в нем только документ основание. Но для этого нужно добавить в состав обмена этот регистр, а я бы не хотел этого делать и если есть возможность через движения документа это сделать.
5 elCust
 
18.09.19
16:05
(2)

Дополнительное свойство ПроверятьБизнесЛогикуПриЗаписи принадлежит не набору я так понимаю, а документу, нет?
6 Йохохо
 
18.09.19
16:07
(4) "то есть вариант тот самый регистр сведений грузить отдельно" а есть не отдельно)
7 MonteCarlo
 
18.09.19
16:10
(5) Нет. Это в событии ПередЗаписью регистра накопления вызывается функция ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(ЭтотОбъект). ЭтотОбъект это же НаборЗаписей. А дальше внутри этой функции выполняется
Возврат Объект.ОбменДанными.Загрузка И (НЕ Объект.ДополнительныеСвойства.Свойство("ПроверятьБизнесЛогикуПриЗаписи"));
8 MonteCarlo
 
18.09.19
16:11
(6) А как? Извини, не понимаю ((
9 MonteCarlo
 
18.09.19
16:11
(6) Если ВыгрузитьПоПравилу(), то значит нужно отдельное правило создавать, нет?
10 Йохохо
 
18.09.19
16:14
(9) ПКО
11 MonteCarlo
 
18.09.19
16:15
(10) Так я об этом и говорю. Чтобы в ПКО описать правило и перегружать этот регистр, нужно, чтобы он входил в состав плана обмена.
12 MonteCarlo
 
18.09.19
16:15
(11) Или вру?
13 Йохохо
 
18.09.19
16:16
(12) вру
14 Йохохо
 
18.09.19
16:16
не надо в смысле
15 Йохохо
 
18.09.19
16:27
а вообще вроде ДополнительныеСвойства через точку доступны, т.е. можно инициализировать в послезагрузки да?
16 MonteCarlo
 
18.09.19
16:30
(15) ПослеЗагрузки тоже нет в ПКС для набора движений.
17 unbred
 
18.09.19
16:38
офтоп. пишу: если .. тогда выгрузитьПоПравилу1 иначе ВыгрузитьПоПравилу2
так вот , как мне в ПКО объяснить Правилу 1 ,что оно выполняется по условию " если .. тогда выгрузитьПоПравилу1 " и забахать условие?
(типа если мы  сюда попали из условия, то ты тогда вот так делай?)
или всё-таки написать другое ПКО с блэкджэком и Ш , и его юзать вместо Правило1?
18 Йохохо
 
18.09.19
16:41
(16) там есть Объект, нет? или там объект регистрсведенийнаборзаписей?
(17) в выгрузитьпоправилу можно передать в входящиеданные исходящиеданные
19 MonteCarlo
 
18.09.19
16:43
(17) хз, может во входящих данных флаг какой-нибудь передать и по нему смотреть уже потом.
20 MonteCarlo
 
18.09.19
16:43
(18) Там это где? В событиях ПКС?
21 unbred
 
18.09.19
16:45
(18) (19) спасибо!
22 Йохохо
 
18.09.19
16:47
(20) в послезагрузки для документобъект (не пкс) инициализируем ДополнительныеСвойства
23 MonteCarlo
 
18.09.19
16:49
(22) А как мне в ПКО документа инициализировать ДополнительныеСвойства набора движений?
24 Йохохо
 
18.09.19
16:51
(23) "Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(ЭтотОбъект) Тогда
    Возврат;
КонецЕсли; " если это вся защита то похоже набор по рс будет сформирован
25 scanduta
 
18.09.19
16:51
В ПКО после загрузки попробуй так :

Объект.ДополнительныеСвойства.Вставить("ПроверятьБизнесЛогикуПриЗаписи", Истина);
26 MonteCarlo
 
18.09.19
16:52
(24) Не понял, что ты имеешь ввиду.
27 MonteCarlo
 
18.09.19
16:53
(25) Так это наверное будет Доп свойства документа, а не набора записей?
28 elCust
 
18.09.19
16:53
(26) Я думаю, что не получится сделать ровно, но я ошибаюсь скорее всего, может проще расширением в приемнике дописать?
29 Йохохо
 
18.09.19
16:53
(27) так и проверка на документ вроде, пусть ТС смотрит
30 MonteCarlo
 
18.09.19
16:55
(29) Эта проверка в событии ПередЗаписью Регистра накопления.
31 MonteCarlo
 
18.09.19
16:56
(28) Почему не получится? Мне нужно либо найти способ как доп свойство набора записей добавить, или выгружать отдельно этот регистр сведений, который пишется при записи регистра накопления.
32 Йохохо
 
18.09.19
16:59
выгрузитьпоправилу и ловить в глобальном После загрузки объекта
33 Йохохо
 
18.09.19
17:04
через Метаданные звонко шлепнется)
34 MonteCarlo
 
18.09.19
17:05
Написал выгрузить по правилу в событии ПослеВыгрузкиВФайл в самом документе. Там перед вызовом функции само собой запрос с отбором по объекту. В параметр передаю Источник. В описании написано, что Источник - Произвольный - выгружаемый объект источник (ссылка или произвольные данные). В моем случае я предполагаю, что ссылка. Но при выгрузке в базе Источника вылетает ошибка:
Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
ПараметрыЗарегистрированныхДанныхУчетаВремениСотрудников.ДокументОснование <<?>>= &Объект
35 MonteCarlo
 
19.09.19
09:51
Решил задачу написав для регистра сведений отдельные ПКО. Спасибо всем, кто пытался помочь.