|
Обмен между базами | ☑ | ||
---|---|---|---|---|
0
PitNN
19.11.15
✎
13:26
|
Доброго всем дня)
Подскажите, разобраться никак не могу. Как происходит обмен между базами в плане логики? Т.е. имеется две базы УТ 11.1 и БП 2.0 (типовая). Обмен настроен, все работает. Данные выгружаются из УТ в БП. Правила типовые. Возникла нужда изменить типовые правила таким образом, чтобы при переносе документов поступления проставлялся счет учета номенклатуры (в типовых правилах счет учета заполняется после загрузки данных). Я недолго думая выгрузил из торговли правила обмена, нашел место где заполняются данные о документе и его табличной части и добавил туда еще одно свойство. И загрузил обратно в торговлю. При обмене вылезла ошибка: СвойствоПриемника = СчетУчета (ПланСчетовСсылка.Хозрасчетный) ОписаниеОшибки = Поле объекта не обнаружено (СчетУчета) Откуда он это взял? Получается торговля где-то еще хранит информацию о правила? |
|||
1
VikingKosmo
19.11.15
✎
13:28
|
рассказывай, куда правила грузил?
|
|||
2
PitNN
19.11.15
✎
13:37
|
(1) Выгрузил из торговли и загрузил обратно в торговлю
|
|||
3
PitNN
19.11.15
✎
13:38
|
Ошибка вылазит при выгрузке из торговли
|
|||
4
VikingKosmo
19.11.15
✎
13:40
|
загрузил в торговлю в Предприятии?
|
|||
5
БатКор
19.11.15
✎
13:41
|
"Я недолго думая выгрузил из торговли правила обмена, нашел место где заполняются данные о документе и его табличной части и добавил туда еще одно свойство" В конфигураторе пройди до момента загрузки файла обмена, скорее там при выборке не может найти этот самый реквизит.
|
|||
6
PitNN
19.11.15
✎
13:43
|
(4) Да. И выгружал тоже из режима предприятия. Правил в блокноте, без использования КД. В настройках обмена с БП указано что используются внешние правила обмена (которые шли в поставке с БП).
|
|||
7
VikingKosmo
19.11.15
✎
13:45
|
может стоит все таки править в КД?
|
|||
8
Cyberhawk
19.11.15
✎
13:46
|
Для начала внятно нарисуй картинку со схемой обмена и куда нужно тебе внести изменения
|
|||
9
БатКор
19.11.15
✎
13:47
|
(8) Браво!!!
|
|||
10
БатКор
19.11.15
✎
13:50
|
(6) "Правил в Блокноте" да же если так, то в момент загрузки файла обмена., проверяется с метаданными базы. и когда говорит ошибку как у тебя то не может найти этот самый реквизит в метаданных базы.
|
|||
11
PitNN
19.11.15
✎
13:51
|
Может, конечно, и стоит, но это не даст ответа на первый вопрос о логике процесса. Правился файл ExchangeRules.xml.
В него было добавлено следующее: <Свойство> <Код>80</Код> <Наименование>--> СчетУчета</Наименование> <Порядок>700</Порядок> <Источник Имя="" Вид=""/> <Приемник Имя="СчетУчета" Вид="Реквизит" Тип="ПланСчетовСсылка.Хозрасчетный"/> <ПриВыгрузке>Если ЗначениеЗаполнено(ОбъектКоллекции.Назначение) Тогда Значение = Истина; Иначе Значение = Ложь; КонецЕсли; </ПриВыгрузке> <ПриЗагрузке>Если Значение Тогда Значение = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.02"); Иначе Значение = ПланыСчетов.Хозрасчетный.ПустаяСсылка(); КонецЕсли; </ПриЗагрузке> </Свойство> Раз пишет что поле в приемнике не обнаружено, то получается, что торговля еще где-то хранит какие данные должны выгружаться |
|||
12
Cyberhawk
19.11.15
✎
13:54
|
ПриЗагрузке у свойств - что-то новенькое
|
|||
13
PitNN
19.11.15
✎
13:57
|
(12) Это не суть) Не в этом же ошибка. Но спасибо, посмотрю и этот момент
|
|||
14
БатКор
19.11.15
✎
13:58
|
Надо смотреть коде в момент загрузки. там обычная выборка, именно посмотреть как он проверяет
|
|||
15
PitNN
19.11.15
✎
14:03
|
(14) Там намудрили так, что не один час уйдет на отладку. Думал, может сталкивался кто, подскажет, где откуда еще цепляются правила
|
|||
16
PitNN
19.11.15
✎
15:09
|
В общем, если кому интересно.
Дело вот в чем. Если у свойства есть обработчик "ПриВыгрузке" ил "ПослеВыгрузки", то в XML структуре правил у соответствующего свойства служебное поле "НуженУзелXMLПриВыгрузке" ставится в значение "Истина". Это означает, что при выгрузке в источнике будет обращение к соответствующему свойству. Поскольку у меня обработчик есть, а поля такого в источнике нет, то и вылетает исключение. Как-то так |
|||
17
Ranger_83
19.11.15
✎
15:20
|
(0) Что-то я не понял чем типовые настройки счетов учета номенклатуры не устраивают?Они очень универсальные
|
|||
18
PitNN
19.11.15
✎
15:32
|
(17) Вы меня простите, но данный вопрос к теме не относится)
|
|||
19
PitNN
20.11.15
✎
10:14
|
Вот так правильно будет:
-- Это вставляется в описание реквизитов табличной части <Свойство> <Код>80</Код> <Наименование>--> СчетУчета</Наименование> <Порядок>700</Порядок> <Источник Имя="" Вид=""/> <Приемник Имя="СчетУчета" Вид="Реквизит" Тип="ПланСчетовСсылка.Хозрасчетный"/> <КодПравилаКонвертации>МоеПравило_Хозрасчетный </КодПравилаКонвертации> <ПередВыгрузкой>Если ЗначениеЗаполнено(ОбъектКоллекции.Назначение) Тогда Значение = Новый Структура("Код", "41.02"); Иначе Значение = Новый Структура("Код", "41.01"); КонецЕсли; </ПередВыгрузкой> </Свойство> --А это после описания блока документа <Правило> <Код>МоеПравило_Хозрасчетный</Код> <Наименование>трям</Наименование> <Порядок>100</Порядок> <НеЗамещать>true</НеЗамещать> <НеСоздаватьЕслиНеНайден>true</НеСоздаватьЕслиНеНайден> <Приемник>ПланСчетовСсылка.Хозрасчетный</Приемник> <Свойства> <Свойство Поиск="true"> <Код>1</Код> <Наименование>--> Код</Наименование> <Порядок>50</Порядок> <Источник Имя="" Вид=""/> <Приемник Имя="Код" Вид="Свойство" Тип="Строка"/> </Свойство> </Свойства> <Значения/> </Правило> На этом тема закрывается. Всем спасибо) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |